Witam,
mam problem z ustawieniem alarmu w module DS3231. Chciałem, aby wyzwalał alarm przy zgodnej godzinie, minucie i sekundzie. Wg aplikacji, a przynajmniej to co z niej wyczytałem i zrozumiałem interesuje mnie Alarm1. Ustawiłem więc poszczególne bity:
07h: A1M1=0;
08h: A1M2=0;
09h: A1M3=0;
0ah: A1M4=1;
0eh: INTCN=1, A1IE=1
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Poprawność wpisanych wartości do bitów sprawdziłem empirycznie i są ok. Komunikacja I2C na 100% poprawna. Zrobiłem jeszcze taki myk, że odczytałem godzinę z zegara i na sztywno wpisałem ją do alarmu + 5 sek, tak żeby być pewnym, że rejestry godzin i alarmu będą identyczne. Niestety wyjście INT/SQW jak zaczarowane, nie chce wysłać impulsu alarmu. Zmieniłem także maski alarmu tak, aby dawał sygnał co sekundę (A1M1,A1M2,A1M3,A1M4=1) i też nic. Sprawdziłem także bit A1F i o dziwo był cały czas w stanie 1. Natomiast jeśli ustawię bit INTCN=0, RS1=0, RS2=0, wówczas na wyjściu SQW pokazał się sygnał 1Hz, z 50% wypełnieniem. Czyli tak jak powinno być. Już nie wiem, jak mógłbym jeszcze sprawdzić gdzie jest błąd. Skończyły mi się pomysły. Jakby ktoś wiedział jak ustawić tan cholerny alarm, będę wdzięczny.