I2C v AT91SAM7

Jakub Ladman ladmanj na volny.cz
Sobota Červenec 2 04:38:41 CEST 2011


Dne středa 22 Červen 2011 17:08:06 Tomáš Hamouz napsal(a):

> Frame vypadá tedy takto:
>   <start>
>   adresa zařízení + write
>   interní adresa (1-2 byty, podle periférie)
>   <repeated start>
>   adresa zařízení + read
>   1. datový byte
>   <nack>
>
> Kudy se vydat při hledání chyby?
> 
> Tomáš
> 

Možná se teď ztrapním, naposledy jsem něco s i2c programoval (driver ku i2c hw 
v LPC2294) před dvěma lety tak si pamatuju pendrek slave NACK chápe jako povel 
k ukončení přenosu. Jestli má MCU nějaký fifo na data, tak třeba je plný, nebo 
jste omylem v adrese poslal write bit a nack pochází od druhé strany než 
předpokládáte, nebo máte špatné pull-upy na sběrnici a bity se vám tam náhodně 
mění jak nabíjíte kapacitu drátů, nemáte výstupy jako open drain, nebo máte 
špatně zablokované napájení.

Tohle z wikipedie mi si beru na pomoc s tím co ten NACK může znamenat:

"After every 8 data bits in one direction, an "acknowledge" bit is transmitted 
in the other. The transmitter and receiver switch roles for one bit and the 
erstwhile receiver transmits a single 0 bit (ACK) back. If the transmitter 
sees a 1 bit (NACK) instead, it learns that:

    If the master is transmitting, the slave is unable to accept the data. No 
such slave, command not understood, or unable to accept any more data.
    If the slave is transmitting, the master wishes it to stop after this data 
byte."


Asi jsem moc nepomohl, to mám z toho že jsem se probudil v sobotu bezdůvodně 
ve 4 hodiny ráno.

Jakub Ladman


Další informace o konferenci Hw-list