Sida 1 av 1

AND buss mellan PICar

Postat: 14 juli 2011, 18:31:56
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?

Re: AND buss mellan PICar

Postat: 14 juli 2011, 19:10:29
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?

Re: AND buss mellan PICar

Postat: 14 juli 2011, 19:21:25
av victor_passe
tvärtom, din 0-1 övergång är troligtvis för långsam.

Re: AND buss mellan PICar

Postat: 14 juli 2011, 20:06:24
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

Re: AND buss mellan PICar

Postat: 14 juli 2011, 21:19:04
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.