Kommunicera mellan två PICs?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
unzuf
Inlägg: 166
Blev medlem: 1 februari 2005, 18:07:08

Kommunicera mellan två PICs?

Inlägg av unzuf »

hej.. jag undrar hur man på ett smart sätt kan
kommunicera mellan två PICs? Om jag vill
skicka ett visst kommando från PIC1 till PIC2,
hur är bäst att göra?

Jag funderade på om man kan göra ungefär såhär:

RB0 på PIC1 är DATA-UT, och RB0 på PIC2
är DATA-IN. Ska man bara lägga 0or och 1or
på RB0-PIC1 med visst intervall mellan, t.ex
2 ms och sedan låta PIC2 läsa in tills den nått
en viss längd, t.ex 4 bit, och sedan tolka
4-bits kommandot?

ha det fint!

ps. inge duktig på detta men frågar man inte.. :D

edit: stavning
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Om du har USART eller liknande på dessa PICs som du inte använder till annat, använd dom. Om du måste göra det i mjukvara, använd två pinnar (data och klocka) istället. Blir mycket lättare att synka.

Istället för att behöva vänta en exakt tid mellan varje bit så är det bara att vänta på nästa flank på klock-signalen (använda gärna INT-pinnen om den är ledig så kan du använda interrupt för det också).
Användarvisningsbild
unzuf
Inlägg: 166
Blev medlem: 1 februari 2005, 18:07:08

Inlägg av unzuf »

Okej.. tack så mycket. Så, om jag använder två
pinnar så ska jag alltså lägga ett värde (0 eller 1) på
den ena pinnen, och sedan på den andra "tala om"
för PIC2 att ett nytt värde ligger där eller? Och sedan
fortsätta så..? Fattar inte riktigt.. :roll:
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Ungefär så ja, med hemsnickrat kan du ju göra lite som du vill, men det vanliga skulle väl vara såhär:

Lägg ut databiten på pinne 1
Lägg ut 1 på pinne 2
Lägg ut 0 på pinne 2
repetera

Och mottagaren läser av pinne 1 varje gång den märker att pinne 2 går hög (helst med interrupt, så att man kan göra annat samtidigt...).

Sändaren får vänta lite så mottagaren garanterat hinner med.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Du kanske ska läsa genom några enklare standarder; I2C och/eller SPI.
Dessa används ofta för kommunikation mellan andra IC's.

Mvh
speakman
Användarvisningsbild
Icecap
Inlägg: 26645
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag skulle definitivt välja UART-sättet men det beror på hur många kommandon som ska kunna skickas osv. Om det t.ex. rör sig om att välja mellan 2 lägen räcker 1 ledare helt fint men sättet med data+klock helt OK fast man måste ha någon form av synkronisering, det finns automatisk med UART i form av tidsperspektivet.

IIC är inte att rekommendera om inte man använder UART med IIC funktion och varför då krångla till det? En mjukvara-IIC är på tok för besvärlig och stjäl resurser som man kan behöva till annat.

Edit: dansk -> svensk.
Senast redigerad av Icecap 28 mars 2005, 18:20:18, redigerad totalt 1 gång.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31454
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Icecap, säger man alltid "ville" istället för "skulle" i Kristinehamn? Jag har aldrig hört någon uttrycka sig på det viset förut :)
Användarvisningsbild
unzuf
Inlägg: 166
Blev medlem: 1 februari 2005, 18:07:08

Inlägg av unzuf »

okej.. ska prova lite olika varianter och
även läsa på mer om ämnet.. :)

tack för alla svar!
Skriv svar