logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] DS3231 - Wywoływanie alarmu, wysyłanie bitów, odczyt stanu alarmu, algorytm programu

szewcu12 15 Paź 2020 15:51 558 10
  • #1 18979332
    szewcu12
    Poziom 6  
    Cześć,
    Na jakiej zasadzie mam wywołać alarm w ds3231?
    Wysyłam odpowiednie bity na RTC i co dalej?
    W jakiej postaci i gdzie dostane "1" że alarm jest włączony albo ktoś jest w stanie napisać mi algorytm jak napisać program pod alaram.
  • #2 18979463
    viayner
    Poziom 43  
    Witam,
    DS3131 nie ma zadnego alarmu, moze dlatego nie mozesz go wywolac. To chip do obslugi np routerow. Czy napewno o tym samym rozmawiamy?
    Sadze ze raczej interesuje cie DS3231 a wszystko jest na stronie 12 datasheetu - czytales?
    Ineresuja cie rejestry 0x07-0x0A lub 0x0B-0x0D, moze jeszcze bity A1IE i A2IE, jezli alram ma wywolywac dzwiek, A2F i A1F jezli chcesz sam sprawdzic status.
    Pozdrawiam
    https://datasheets.maximintegrated.com/en/ds/DS3231.pdf
  • #3 18979634
    szewcu12
    Poziom 6  
    ale na jakim pinie będzie wywoływał "1" jeśli w programie SQW używam do liczenia 1s w sensie wchodzi w przerwanie co 1Hz
  • #4 18979667
    simw
    Poziom 27  
    viayner napisał:
    DS3131 nie ma zadnego alarmu

    "Two programmable time-of-day alarms and a programmable square-wave output are provided. "
    szewcu12 napisał:
    ale na jakim pinie będzie wywoływał "1" jeśli w programie SQW używam do liczenia 1s w sensie wchodzi w przerwanie co 1Hz

    Jeśli uzywasz przerwania co 1s to po prostu musisz sprawdzać w rejestrach układu czy alarm został "wyzwolony".
    Pin INT/SQW może mieć dwie funkcje jak opisano w DS:

    "Active-Low Interrupt or Square-Wave Output. This open-drain pin requires an external pullup resistor connected to a supply at 5.5V or less. This multifunction pin is determined by the state of the INTCN bit in the Control Register (0Eh). When INTCN is set to logic 0, this pin outputs a square wave and its frequency is determined by RS2 and RS1 bits. When INTCN is set to logic 1, then a match between the timekeeping registers and either of the alarm registers activates the INT/SQW pin (if the alarm is enabled). Because the INTCN bit is set to logic 1 when power is first applied, the pin defaults to an interrupt output with alarms disabled. The pullup voltage can be up to 5.5V, regardless of the voltage on VCC. If not used, this pin can be left unconnected."

    Jeśli zrezygnujesz z funkcji wystawiania fali prostokątnej, to poprzez bit INTCN w rejestrach ustawiony na 1, będziesz mógł uzyskać sygnał na pinie w momencie aktywacji alarmu.
  • #5 18979730
    szewcu12
    Poziom 6  
    Czyli po prostu wpisuje do rejestru alarmu 1 godzinę, minuty oraz sekundy i sprawdzam cały czas bit 7 w tym przypadku A1M4 czy wystawił "1" tak? a INTCN mnie nie obchodzi jesli nie chce aby mi wchodził w przerwanie kiedy alarm sie pokryje z czasem rzeczywistym
  • #7 18980636
    szewcu12
    Poziom 6  
    Przeanalizowałem całego datasheeta i trzeba w rejestrze control/status sprawdzac bit 0 A1F czy wystawił "1" tylko jak w całym rejestrze moge sprawdzać tylko ten jeden akurat?
  • #8 18980661
    viayner
    Poziom 43  
    Witam,
    simw napisał:
    viayner napisał:
    DS3131 nie ma zadnego alarmu

    "Two programmable time-of-day alarms and a programmable square-wave output are provided. "

    no bo nie ma:
    "DS3131 = BoSS40-Port, UnchannelizedBit-Synchronous HDLC", twoj cytat jest bledny.
    Pozdrawiam
  • #9 18980683
    simw
    Poziom 27  
    Autor w treści pisał o DS3231 i o tym pisałem, ale faktycznie pomyliłem się, bo odniosłeś się do DS3131.
    Autor powinien poprawić tytuł, bo jest istotnie mylący.

    Dodano po 1 [minuty]:

    szewcu12 napisał:
    tylko jak w całym rejestrze moge sprawdzać tylko ten jeden akurat?

    No musisz pobrać cały rejestr i odpowiednio zamaskować bit.
  • #10 18991548
    szewcu12
    Poziom 6  
    Zrobione, ale dalej mi "1" nie wystawia na tym bicie,
    Czy trzeba na początku gdzie inicjalizuje RTC wpisać na jakiś bit "1" żeby załączyć alarm?
  • #11 19024752
    szewcu12
    Poziom 6  
    trzeba zerować tą flagę
REKLAMA