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