Witam,
Mam problem z konfiguracją DS3231 (gotowy moduł). Czytam bez problemu rejestr Control (0x0E), otrzymuję wartość 0x1C. Aby DS3231 na pinie SQW wystawił sygnał 1 Hz powinienem w tym rejestrze zapisać wartość 0x00 (proszę mnie poprawić jeśli się mylę).
Próba modyfikacji jego zawartości kończy się niepowodzeniem. Ciągle w tym rejestrze jest wartość 0x1C a na pinie SQW wysoki stan.
Dodam, że na pinie 32kHz jest przebieg prostokątny o częstotliwości 32,768 kHz.
Próbowałem obniżyć częstotliwość taktowania magistrali I2c ze 100 do 20 kHz. Ale to nic nie dało.
Do komunikacji I2c wykorzystuję bibliotekę zaczerpniętą z książki Tomasza Francuza "Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji" wydanie II.
Program kompiluję w środowisku Atmel Studio 7 (Version: 7.0.1931).
Do debugowania używam Atmel-ICE.
Poniżej zamieszczam kod (linijka asm("nop":
; służy do ustawienia breakpointa).
Mam problem z konfiguracją DS3231 (gotowy moduł). Czytam bez problemu rejestr Control (0x0E), otrzymuję wartość 0x1C. Aby DS3231 na pinie SQW wystawił sygnał 1 Hz powinienem w tym rejestrze zapisać wartość 0x00 (proszę mnie poprawić jeśli się mylę).
Próba modyfikacji jego zawartości kończy się niepowodzeniem. Ciągle w tym rejestrze jest wartość 0x1C a na pinie SQW wysoki stan.
Dodam, że na pinie 32kHz jest przebieg prostokątny o częstotliwości 32,768 kHz.
Próbowałem obniżyć częstotliwość taktowania magistrali I2c ze 100 do 20 kHz. Ale to nic nie dało.
Do komunikacji I2c wykorzystuję bibliotekę zaczerpniętą z książki Tomasza Francuza "Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji" wydanie II.
Program kompiluję w środowisku Atmel Studio 7 (Version: 7.0.1931).
Do debugowania używam Atmel-ICE.
Poniżej zamieszczam kod (linijka asm("nop":