logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jaki adres ma PCF8583 oraz błędy w transmisji danych I2C

nelik1987 10 Wrz 2011 18:36 3070 3
REKLAMA
  • #1 9914002
    nelik1987
    Poziom 31  
    Witam, ostatnio zabrałem się za opanowanie interfejsu I2C (TWI).

    Staram się od dobrych 2 dni odczytać dane z układu PCF8583 (RTC).

    Napisałem gromadę funkcji do obsługi I2C, większość pochodzi z książki "Język C dla mikrokontrolerów AVR" więc sądzę że nie mają błędów.

    Pierwszym problemem jest adres jaki ma układ ma podłączone wejście A0 do zasilania czyli adres powinien wyglądać tak 1010 001 (0/1) czyli 0xA2 lub 0xA3

    a okazuje się że układ odpowiada jedynie na adresy 0xA0 i 0xA1. Jest to zastanawiające ale to nie główny problem.

    Chciał bym odczytać jakikolwiek rejestr z pamięci PCF.

    Wykonuję Kolejno czynności:
    -Inicjuję I2C (I2C_Init)
    - Wysyłam START transmisji i adres układu z 1 na końcu czyli zapis (I2C_SendStartAndSelect)
    - Wysyłam adres rejestru do odczytu (I2C_SendByte)
    - Wysyłam START transmisji i adres układu z 0 na końcu czyli odczyt (I2C_SendStartAndSelect)
    - Odczytuję dane z rejestru I2C_ReceivData_NACK();

    ale za każdym razem otrzymuję jako wynik odczytu adres urządzenia czyli w tym przypadku 161 (0xA1)

    Co robię źle?

    Załączam cały kod (jest tak spory bałagan ze względu na setki testów jakie przeprowadzałem)

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 9914274
    gaskoin
    Poziom 38  
    nelik1987 napisał:

    Wykonuję Kolejno czynności:
    -Inicjuję I2C (I2C_Init)
    - Wysyłam START transmisji i adres układu z 1 na końcu czyli zapis (I2C_SendStartAndSelect)
    - Wysyłam adres rejestru do odczytu (I2C_SendByte)
    - Wysyłam START transmisji i adres układu z 0 na końcu czyli odczyt (I2C_SendStartAndSelect)
    - Odczytuję dane z rejestru I2C_ReceivData_NACK();


    Zapis to 0 a odczyt to 1. W nocie masz napisane R/~W
  • REKLAMA
REKLAMA