I2C stop till start villkor?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Gimbal
Inlägg: 8685
Blev medlem: 20 april 2005, 15:43:53

I2C stop till start villkor?

Inlägg av Gimbal »

Håller på att knåpa ihop I2C rutiner (till en atmega88) för att snacka med en BMA180 acc-sensor och lyckades nu läsa ur chip id från BMA180 (tjohoo).

Problemet är att om jag försöker läsa chip id igen så måste jag göra en liten konstpaus innan jag sätter igång, annars så tror BMA180 att jag gör en repeat start och då blir det lite fel...

Jag skickar alltså stop efter att ha mottaget en byte, men skickar jag start för snabbt efteråt så snyter det sig. Vänta jag lite går det bra. Finns det någon bit jag kan titta på? Hittar inte någon info om detta.... :humm:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C stop till start villkor?

Inlägg av TomasL »

Har du läst I2C manualen, så du vet hur I2C fungerar?
Har du läst sensorns manual så du vet hur det är implementerat?
Har du inget HW-Stöd?
Gimbal
Inlägg: 8685
Blev medlem: 20 april 2005, 15:43:53

Re: I2C stop till start villkor?

Inlägg av Gimbal »

Nej någon hel I2C manual har jag inte läst, men däremot exemplen i atmegans samt BMA180'ans dokumentation.
Ett visst hårdvarustöd finns, men det krävs också lite mjukvara. Jag har under tiden surfat runt lite mer på nätet och man nämner att "en viss tid" ska förflyta innan bussen anses fri, och tiden är beroende av hastigheten man kör bussen på. Och nu kör jag den ruskigt långsamt så det kanske inte är något större problem när jag spettar upp den i hastighet. Även om jag är smått allergisk mot "vänta en liten stund"-lösningar, hur små de än är.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C stop till start villkor?

Inlägg av TomasL »

Nja, det där "vänta en stund" beror väl på hur slaven är konstruerad, till exempel FRAM minnen, kan man tuta på för fulla segel, utan några väntetider alls.
Flashar, kan man få vänta på vid en skrivning, allt borde dock stå i sensorn datablad.
Skriv svar