Witajcie,
Próbuję podłączyć ATmega128 z dwoma urządzeniami za pomocą intefejsu SPI.
uC ma pracować w trybie Master. Problem pojawia się na samym początku. Analizując kod programu w symulatorze AVR Studio zauważyłem, że ATmega nie pracuje w trybie Master.
Nie wiem w czym jest problem, ponieważ procedura włączania SPI nie jest skomplikowana, u mnie wygląda następująco:
W symulatorze AVR Studio, po wykonaniu tej czynności, SPI wygląda tak:
Dodam, że Pin SS w ATmega ustawiony jest jako wejście, i nic nie jest do niego podpięte.
Czy ktoś ma pomysł jak rozwiązać ten problem?
Próbuję podłączyć ATmega128 z dwoma urządzeniami za pomocą intefejsu SPI.
uC ma pracować w trybie Master. Problem pojawia się na samym początku. Analizując kod programu w symulatorze AVR Studio zauważyłem, że ATmega nie pracuje w trybie Master.
Nie wiem w czym jest problem, ponieważ procedura włączania SPI nie jest skomplikowana, u mnie wygląda następująco:
void SPI_MasterInit(void)
{
/* Ustawia MOSI i SCK jako wyścia, pozostałe w DDRB bez zmian */
DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK);
/* Aktywuje SPI, Tryb Master, częstotliwość sygnału zegarowego fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
W symulatorze AVR Studio, po wykonaniu tej czynności, SPI wygląda tak:
Dodam, że Pin SS w ATmega ustawiony jest jako wejście, i nic nie jest do niego podpięte.
Czy ktoś ma pomysł jak rozwiązać ten problem?