AND buss mellan PICar

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

AND buss mellan PICar

Inlägg av Rick81 »

Jag håller på med en databuss mellan två PICar och har tänkt ut ett protokoll som påminner om I2C.

Protokollet har en Master som styr klocka och en/flera slavar klockas av denna.

För att minimera antalet pinnar vill jag bara använda en datapinne och ha dubbelriktad data på denna.
För att undvika att PICarna börjar driva mot varann hade jag tänkt följande:
0 = PIC har data I/O som utgång och satt till 0
1 = PIC har data I/O som ingång och en pullup till matningsspänning drar signalen hög
Detta kommer då bli en AND bus där 0 vinner över 1

Hastigheten på bussen ska vara ca 10-20 us per bit.

När jag kopplar upp detta mellan 2 PIC med 1,8k pull-up till 5V får jag inte databussen att fungera. Det verkar som att övergången mellan 1 och 0 inte hinns med. Jag ändrar endast TRIS registret så utsignalen på data bussen är alltid 0 men ändras mellan utgång och ingång.
Klockpulserna ser bra ut.

Jag tycker att detta borde fungera och undrar om jag missat något?

Det borde väl gå att skifta mellan ingång och utgång på någon 1us i en PIC?
monstrum
Inlägg: 620
Blev medlem: 13 januari 2005, 05:38:32
Ort: Göteborg

Re: AND buss mellan PICar

Inlägg av monstrum »

Har aldrig använt PIC, men jag ser inte något fundamentalt fel. Jag skulle kopplat upp ett oscilloskop och kollat hur flankerna ser ut.

Det kan vara så att du inte hinner sänka bussen tillräckligt fort då du har relativt mycket ström som går genom pullupen samtidigt som du skall ladda ur kapacitansen ur ledningen. Jag skulle gissa på att din 1-till-0-flank är många gånger längre än 0-till-1.

Funkar det om du sänker klockhastigheten (testa först med några hundra Hertz bara för att verifiera)? Kommer du upp i högre hastighet med ett par gånger större pull-up?

Vad menar du förresten med att klockpulserna ser bra ut?
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: AND buss mellan PICar

Inlägg av victor_passe »

tvärtom, din 0-1 övergång är troligtvis för långsam.
jah
Inlägg: 659
Blev medlem: 16 januari 2009, 13:00:08
Ort: Eslöv

Re: AND buss mellan PICar

Inlägg av jah »

Ställer du ut data före klockpulsen? Annars kanske mottagaren hinner reagera på klockan innan data finns tillgängligt...

Om uppåtflanken är långsam så minska resistansen. Du kan också överväga att hjälpa till och driva utgången aktivt.

Inläsningen av data kanske behöver fördröjas lite, skicka in ett gäng NOP eller nåt innan du läser porten.

Hur lång är bussen, och hur många slavar?

/J
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: AND buss mellan PICar

Inlägg av blueint »

Kika på hur SCSI-2 är uppbyggt elektriskt.

Tips.. aktiv terminering bl.a FPT.

EF: Transmission line effect..
EF: Böjning av Koax/Twisted kabel kontra frekvens.

Och självklockande signalering sparar många trådar..

Räkna med runt 50 kbit/s.
Skriv svar