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

Jak uruchomić RTC, a następnie odczytywać? STM32F405.

KubaKam 15 Lut 2017 13:39 930 10
REKLAMA
  • #1 16280564
    KubaKam
    Poziom 7  
    Posty: 16
    Nie potrafię uruchomić tego zegara. W dokumentacji są podane kroki aby uruchomić RTC. A więc ustawienie bitu RTC_ISR_INIT, odczekanie aż ustawi się flaga RTC_ISR_INITF, wpisanie wartości czasu i daty (BCD) do rejestrów RTC_TR, RTC_DR, i skasowaniu bitu RTC_ISR_INIT. Ale po tej sekwencji kiedy odczytuję rejestr RTC_TR to w sekundach stale jest 0, czyli zegar nie chodzi. Do rejestru RTC_TR wpisuję sekundy 33, więc albo czas się nie wpisuje, albo źle go odczytuję. Nie znalazłem żadnego bitu typu RTC_ON itp. Jak ten zegar zainicjalizować i potem odczytywać?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 16280572
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Włączyłeś zegar dla RTC w RCC? Wyłączyłeś zabezpieczenie przed dostępem do rejestrów RTC w PWR? Odblokowałeś poprawnie dostęp do rejestrów RTC przez wpisanie odpowiedniego klucza?
  • #3 16280583
    KubaKam
    Poziom 7  
    Posty: 16
    Nie. Dużo tego, zaraz zacznę szukać. Dziękuję.

    Dodano po 58 [minuty]:

    Chyba nawet LSE nie startuje. Nie wiem czy to problem programu czy elektroniki. Mam wlutowany kwarc 32768 Hz z dwoma kondensatorkami 15pf. W STM103 te kwarce działają dobrze. A tu wiesza się na pętli bitu LSERDY.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • REKLAMA
  • #5 16280802
    KubaKam
    Poziom 7  
    Posty: 16
    To mam odblokowany BDCR, wpisaną sekwencję kluczy, włączony zegar...


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #6 16280819
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Wcale nie masz odblokowanego dostępu do BDCR. Skąd pomysł, że do rejestrów PWR można sobie pisać bez włączenia im zegara? I po co dokładnie włączasz BKPSRAM to też nie wiem. No i jakiego efektu oczekujesz od wpisywania klucza do RTC->WPR _PRZED_ włączeniem zegara dla RTC (RCC_BDCR_RTCEN)? Spróbuj usiąść, pomyśleć chwilę i zrobić to porządnie.
  • #7 16280820
    KubaKam
    Poziom 7  
    Posty: 16
    Ta sekwencja kluczy to chyba nie do tego, ale BDCR jest odblokowany i chyba LSE powinien wystartować.
  • #9 16280842
    KubaKam
    Poziom 7  
    Posty: 16
    Może teraz trochę lepiej?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Dodano po 16 [minuty]:

    Zegar dla PWR uruchomiony, odblokowany wpis do BDCR, w BDCR LSE jako zegar dla RTC, właczony LSE, właczony RTC, ale wisi na czekaniu na LSE. Szukać w sprzęcie czy jeszcze coś nie właczyłem?
  • Pomocny post
    #10 16280870
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Teraz lepiej. Możesz profilaktycznie dorzucić jeszcze resetowanie BDCR bitem BDRST (ustawić na 1, ustawić na 0) oraz ustawiać źródło zegara i włączać samo RTC dopiero po tym gdy LSE już będzie działać. Jeśli dalej nie będzie działać, to należy swoją uwagę zwrócić w kierunku spraw sprzętowych.
  • #11 16280882
    KubaKam
    Poziom 7  
    Posty: 16
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    czyli szukać w sprzęcie?

    Dodano po 27 [minuty]:

    Ok, źle wlutowane kondensatorki. Ale gdyby były wlutowane dobrze to i tak bez pomocy Chopina nie uruchomiłbym tego. Dziękuje.

Podsumowanie tematu

✨ Użytkownik ma problem z uruchomieniem zegara RTC w mikrokontrolerze STM32F405. Po wykonaniu kroków z dokumentacji, zegar nie działa, a rejestr RTC_TR pokazuje 0 sekund. W odpowiedziach zasugerowano sprawdzenie, czy zegar RTC został włączony w RCC oraz czy dostęp do rejestrów RTC został odblokowany. Użytkownik odkrył, że kwarc 32768 Hz nie działa poprawnie, co może być przyczyną problemu. Po kilku próbach i sugestiach dotyczących resetowania rejestru BDCR oraz poprawnego włączania LSE, użytkownik zidentyfikował problem z kondensatorami wlutowanymi do kwarcu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA