Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ATxMega128 i TWI - problemy... cd
#19
Nie podejrzewaj jeszcze pamięci !!!.

W tej Twojej Modyfikacji masz babola.
Wysyłasz 2 bajty adresu komórki pamięci - ok - tak powinno być.

A to co robisz w następnych liniach :
Kod:
TWIC_MASTER_ADDR = addr;                                    //adres ukladu + WR, generuje START
    while(!(TWIC_MASTER_STATUS & TWI_MASTER_WIF_bm));            //wait for WIF
    twic_result = twic_test_result();                            //wez status operacji
    if (twic_result != TWI_ACK) return 0;                        //ACK idz dalej, inny zwracaj kod bledu

    //nadaj adres do odczytu
    TWIC_MASTER_ADDR = addr | 0x01;                                //adres ukladu I2C + RD
    while(!(TWIC_MASTER_STATUS & TWI_MASTER_RIF_bm));            //czekaj na zakonczenie odbioru
    
    data = TWIC_MASTER_DATA;                                    //odczytany bajt
jest prawdopodobnie źle. Zobacz do noty producenta - strona 11

Po wysłaniu adresu komórki pamięci należy wygenerować START podając adres układu slave z ustawionym bitem READ ( addr |0x01 ).

U Ciebie - wysyłasz adres układu z bitem WRITE - generując START i następnie ponownie wysyłasz adres układu ale już z bitem READ - ponownie generując START

I tu się robi (tak mi się wydaje) zamieszanie obecnie...

73 Paweł
Odpowiedz


Wiadomości w tym wątku
ATxMega128 i TWI - problemy... cd - przez SP2GNB - 11-12-2016, 21:53

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości