Få PIC att agera som en 1-Wire Slave.
Få PIC att agera som en 1-Wire Slave.
Hittat en LCD-display som kopplas på 1-wire bussen. Den är baserad på en PIC16F628 med en kristall på 8Mhz.
1-Wire LCD: http://www.louisswart.co.za/1-Wire_Overview.html
Har själv en 16F88 med intern 8Mhz klocka som jag tänkte programmera så den ser ut som en 1-wire slave. Har svårt att komma igång bara. Timingen kommer vara det kritiska i programmeringen och vill gärna ha lite tips på hur man kan sätta upp det hela.
Kom gärna med länkar till andra som har gjort samma sak där man får se lite kod.
1-Wire LCD: http://www.louisswart.co.za/1-Wire_Overview.html
Har själv en 16F88 med intern 8Mhz klocka som jag tänkte programmera så den ser ut som en 1-wire slave. Har svårt att komma igång bara. Timingen kommer vara det kritiska i programmeringen och vill gärna ha lite tips på hur man kan sätta upp det hela.
Kom gärna med länkar till andra som har gjort samma sak där man får se lite kod.
Lite kod, i och för sig ör master, man i allal fall... 
http://www.maxim-ic.com/appnotes.cfm/ap ... umber/2420
Annars är det väl bara att kolla specen för 1-Wire och börja "hacka"...
Parasitc power är juinte aktuellt, så det blir bara datalinjen att bekymmra sig om.

http://www.maxim-ic.com/appnotes.cfm/ap ... umber/2420
Annars är det väl bara att kolla specen för 1-Wire och börja "hacka"...
Parasitc power är juinte aktuellt, så det blir bara datalinjen att bekymmra sig om.
Har kollat på den där koden en hel del och jag börjar förstå rätt bra hur den fungerar men nu är uppgiften att skriva kod för en PIC som ska agera slave.
Funderar på om jag ska göra allt i interruptet i och med att kretsen även ska kommunicera med sin RF-modul som inte är lika tidskritisk.
Vilket interrupt tros vara smartast att använda, RB-change eller INT0 ?
Blir mycket timing att använda timer0 till. Vet dock inte riktigt på vilket sätt jag ska använda den. Om jag bara ska låta den ticka på utan att ändra TMR0 och ha en counter vid varje interrupt eller om jag ska ställa TMR0 varje gång jag vill tex kolla hur lång inkommande puls är.
När kretsen ska sända 1-wire data på samma pinne så får jag väll interrupt också.
Funderar på om jag ska göra allt i interruptet i och med att kretsen även ska kommunicera med sin RF-modul som inte är lika tidskritisk.
Vilket interrupt tros vara smartast att använda, RB-change eller INT0 ?
Blir mycket timing att använda timer0 till. Vet dock inte riktigt på vilket sätt jag ska använda den. Om jag bara ska låta den ticka på utan att ändra TMR0 och ha en counter vid varje interrupt eller om jag ska ställa TMR0 varje gång jag vill tex kolla hur lång inkommande puls är.
När kretsen ska sända 1-wire data på samma pinne så får jag väll interrupt också.
> När kretsen ska sända 1-wire data på samma pinne så får jag väll interrupt också.
Nja, dels så måste du ju sätta om den till utgång, dels så kan du ju
enkelt stänga av interrupt när du inte vill ha dom. Inget problem alls...
Interrupt ska du nog titta på rent allmänt. Det brukar underlätta.
INT0 eller IOC (Interrupt On Change) är lite svårare.
Jag skulle välja den där man kan välja "flank", om man inte kan det för båda,
vil säga. Har inte kollat. Ibland är det smart att ställa om flank on-the-fly
för att få interrupt på båda flankerna.
Nja, dels så måste du ju sätta om den till utgång, dels så kan du ju
enkelt stänga av interrupt när du inte vill ha dom. Inget problem alls...
Interrupt ska du nog titta på rent allmänt. Det brukar underlätta.
INT0 eller IOC (Interrupt On Change) är lite svårare.
Jag skulle välja den där man kan välja "flank", om man inte kan det för båda,
vil säga. Har inte kollat. Ibland är det smart att ställa om flank on-the-fly
för att få interrupt på båda flankerna.