Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PIC16F1509 - Brak ACK przy sprzętowej komunikacji z EEPROM 24C512

mgiro 14 Lip 2012 20:03 1295 2
  • #1 14 Lip 2012 20:03
    mgiro
    Poziom 22  

    Witam,

    Mam kłopot z brakiem ACK przy zapisie/odczycie do pamięci 24C512 przez sprzętowe I2C. Procesor pracuje na zewnętrznym kwarcu 8 MHz. Układ jest połączony na płytce stykowej. Kabelki łączace sygnały SDA, SCL mają 5cm. Rezystory 4k7 też są.

    Tutaj kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Zapis:
    PIC16F1509 - Brak ACK przy sprzętowej komunikacji z EEPROM 24C512

    Odczyt:
    PIC16F1509 - Brak ACK przy sprzętowej komunikacji z EEPROM 24C512

    Gdy podłącze układ 24c16 i wykorzystam funkcje do jego obsługi, wówczas jest ACK i dana zapisane jest dobrze odczytywana.

    Funkcje do zapisu pamięci 24C512 były stosowane przy sprzętowym zapisie z wykorzystaniem mikrokontrolera ATmega32 i działały dobrze.

    Próbowałem zwiększyć prędkość na 400kHz i też nie ma ACK.

    0 2
  • #2 15 Lip 2012 10:32
    63404
    Użytkownik usunął konto  
  • #3 15 Lip 2012 13:45
    mgiro
    Poziom 22  

    Pierwsza, którą testowałem to była DIP na 5V, ale nie działalo to zmieniłem na SMD. Sprawdziłem dzisiaj rano, że jest na 3,3V. Teraz mam SMD juz na 5V i zapis działa.
    Mam drobny problem przy odczycie. Nie jest wysyłany NACK i brakuje sekwencji stop:

    PIC16F1509 - Brak ACK przy sprzętowej komunikacji z EEPROM 24C512

    Tak odczytuję przed pętlą nieskończoną for(;;;)

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Odczytuje mi wartość 30 z adresu 30, ale właśnie nie ma NACK i dlatego chyba nie ma sekwencji stop?

    0