Skocz do zawartości

[C] Komunikacja I2C - brak ACK od slave'a


kampo

Pomocna odpowiedź

Witam.

Od jakiegoś czasu próbuję nawiązać komunikację pomiędzy AtMega8 (slave) i AtMega128 (master) poprzez I2C, ale nie mogę tego uruchomić 🙁 SDA i SCL mam połączone, do tego na każdej linii jest rezystor 4k7 podłączony do Vcc (5V), obydwa mikrokontrolery są taktowane na 8MHz.

Wynalazłem jakieś takie biblioteki do mastera i slave'a.

Problem polega na tym, że po wysłaniu bitu start i adresu urządzenia slave, nie dostaję od niego bitu ACK, do tego przerwanie TWI w slave się nie uruchamia, więc slave żadnych danych raczej nie wyśle.

Master:

I2C_init();

while(1) {
I2C();

_delay_ms(500);
}

Slave:

I2C_init(0x10);

sei();

while(1) {
}

Nie wiem, jakie informacje się jeszcze przydadzą. Proszę o pomoc 🙂

Pozdrawiam.

Link do komentarza
Share on other sites

Dlatego że twoja wynaleziona biblioteka nie wspiera Atmegi128. Musisz ją przerobić.

3. Supported devices

Though I have only tested this library on an ATmega328P it should be running on all major ATmega AVRs like:

ATmega644

ATmega32

ATmega16

ATmega328/P

ATmega168/P

ATmega88/P

ATmega44/P

ATmega8

If your device is not supported you can probably adapt this library easily to your needs by having a look at the your device's datasheet and changing the register names appropriately

The ATtiny range of microcontrolles is not supported as they only provide a USI peripheral which is completely different from the TWI peripheral used on the other controllers

Link do komentarza
Share on other sites

Widziałem to, sprawdzałem datasheet od AtMegi128, w którym są przykłady kodu i nie znalazłem nic podejrzanego - nazwy rejestrów się zgadzają i ogólnie obsługa TWI.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.