hur skall tris-registret se ut vid i2c

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
cyprox
Inlägg: 81
Blev medlem: 1 december 2004, 14:49:35

hur skall tris-registret se ut vid i2c

Inlägg av cyprox »

Jag försöker få igång i2c mellan två pic:ar
Jag undrar om nån av er har koll på om sda och scl ska vara definierade som in- eller utgång?

Sen undrar jag vad det kan vara för problem om pic:en aldrig skickar nån startsignal... scl och sda sänks aldrig över huvudtaget... pull-upmotstånden är så pass stora så det borde inte vara några problem att lägga ut en nolla.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Vad för PICar och hårdvara eller mjukvara?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Det kan ju vara lämpligt att sätta tris till noll på mastern när den skickar kommando, annars kan linjen omöjligt ändra sig. Om mastern ska ta emot data måste de naturligtvis sättas som ingångar (etta).
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jag har kollat ett data blad, och TRIS skall vara *input* hela tiden.
MSSP modulen kommer, beroende på vad som händer på bussen,
att sedan sätta pinnarna som in eller output efter behov.

Det är för övrigt ganska normalt att en modul på detta sätt "tar över" funktionen från TRIS. Ganska rimligt att man inte skall behöva dribbla med TRIS när man kör I2C, eller hur !
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Har för mig att det är samma sak när man kör HPWM och USARTen.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Oj, nu pratar vi på många olika plan.

Om man använder en färdig funktion i ett högnivåspråk är det en självklarhet att den sätter TRIS-registret till vad som behövs. Använder man UART är det nog som sodjan säger att den också sköter TRIS-registret själv. Ska man säremot bitbanga via en egen rutin måste man självklart se till att TRIS står rätt.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Åsyftade den inbyggda Uarten i exempelvis PIC16F876A, den har inget med något högnivåspråk att göra, men sätter du register TXSTA (98h) så går uart pinnarna automatisk över till in respektive utgång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

$tiff, jo visst... :-)

Men från ditt första inlägg kunde man tro att man skall *ändra* TRIS beroende på riktningen på I2C trafiken. Med mitt inlägg ville jag bara säga att jag inte tror det. Detta har inget med högnivåspråk att göra, det handlar om hur processor i sig fungerar. Och jag sa ingenting om någon UART...
Slutligen, om man skall bitbanga så är det enklare att köra SPI, men det var väll inte aktuellt här ?
cyprox
Inlägg: 81
Blev medlem: 1 december 2004, 14:49:35

Inlägg av cyprox »

tack för alla svar... det löste sig, vi satte helt enkelt inte portarna till nåntig, det löste sig ändå. Det stora problemet var att kortet med mastern var feletsat :oops: SDA-ledningen var inte kopplad till SDA-pinnen, inte så konstigt att vi inte fick ut nåt på oscilloskopet.
Skriv svar