Sida 1 av 1

Kommunicera mellan två PICs?

Postat: 28 mars 2005, 00:29:13
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

Postat: 28 mars 2005, 00:32:46
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å).

Postat: 28 mars 2005, 00:53:20
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:

Postat: 28 mars 2005, 01:08:17
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.

Postat: 28 mars 2005, 01:21:59
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

Postat: 28 mars 2005, 09:33:32
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.

Postat: 28 mars 2005, 10:21:49
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 :)

Postat: 28 mars 2005, 11:56:20
av unzuf
okej.. ska prova lite olika varianter och
även läsa på mer om ämnet.. :)

tack för alla svar!