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

STM32G030 – jak uśpić mikrokontroler na określony czas i wybudzić z RTC?

dktr 10 Lip 2025 13:03 348 6
REKLAMA
  • #1 21602753
    dktr
    Poziom 26  
    Posty: 937
    Pomógł: 45
    Ocena: 729
    Podpowie ktoś lub naprowadzi jakimś przykładem usypiania mikrokontrolera STM32G030, udało mi się przygotować środowisko VisualStudio platformio pod ten mikrokontroler, blink już mi działa, wgrywanie przez stlink też. Teraz szukam informacji co trzeba zrobić aby uśpić ten mikrokontroler na określony czas tak aby pobierał możliwie mały prąd, po wybudzeniu zrobił to co ma do zrobienia w setup() i poszedł spać ponownie na ustalony czas. Wszelkie chatyGPT, claude, google, bing poległy - nie dały działającego przykładu - program się nie kompilował, albo nie działał - nie wybudzał układu. Wcześniej robiłem takie rzeczy na esp8266, esp32, esp32c3 i na tym ostatnim udało się zejść do 9μA w deep_sleep, ale szukam czegoś mniejszego, a to moje pierwsze starcie z STM32
  • REKLAMA
  • REKLAMA
  • #3 21603965
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 21603992
    dktr
    Poziom 26  
    Posty: 937
    Pomógł: 45
    Ocena: 729
    Większość linków z google to wpisy że komuś coś nie działa albo inne dziwne problemy. Pomęczyłem jeszcze claude i w końcu zadziałało, udało się zejść do 5.9 µA przy uśpieniu z aktywnym RTC, uśpionym radiem SX1276 i jednym czujnikiem DS18b20. Uśpiony sam STM32G030 schodził do 1 µA. Załączam platformio.ini i kod którego zadaniem jest odczyt czujnika, napięcia zasilania i wysłanie tego przez radio LoRa do bramek które opisałem tu.. Może ktoś ma jeszcze jakieś pomysły jak zejść z poborem prądu niżej bez kombinacji z odłączaniem komponentów tranzystorami. Może istnieje coś lepszego od LoRa.sleep(), albo np usypianie ds18b20.
    Załączniki:
    • platformio_ini.txt (395 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
    • lora_stm.c (6.49 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 21604167
    Konto nie istnieje
    Poziom 1  
  • #6 21604186
    dktr
    Poziom 26  
    Posty: 937
    Pomógł: 45
    Ocena: 729
    >>21604167 Będę jeszcze eksperymentował, STM32 z tego wątku wyleciał już na "produkcję" do lasu wysyłać pomiary. Ogólnie jestem zaskoczony - fajne te STM'y, jak pisałem to moje pierwsze starcie z nimi i całkiem pozytywnie zaskoczony. Mam zewnętrzny pullup 4.7k na 1wire i 470k na SPI przy LoRa - bez nich w sleep prąd skakał do dziwnych wartości całkiem losowo, wystarczyło dotknąć palcem SPI i się uspokajało, pewnie jakieś stany nieustalone. Myślałem aby DS18b20 zasilić prosto z GPIO i se go uruchamiać kiedy potrzeba, to jeszcze będę testował.
    Na zdjęciu urządzenie które wisi w lesie i wysyła pomiary temperatury, według obliczeń ta bateria (3.6 V 17 Ah) powinna wystarczyć na 8 lat, pomiary wysyła co 7 minut.

    STM32G030 – jak uśpić mikrokontroler na określony czas i wybudzić z RTC?
  • #7 21689341
    Matx91
    Poziom 9  
    Posty: 30
    A może Watch dog by coś pomógł w tym zagadnieniu? Średnio się jeszcze znam, dopiero zaczynam z tym przygodę.

Podsumowanie tematu

✨ Dyskusja dotyczy sposobów uśpienia mikrokontrolera STM32G030 na określony czas z wykorzystaniem RTC, aby osiągnąć minimalny pobór prądu. Autor przygotował środowisko VisualStudio z platformio, uruchomił prosty program blink i szukał działającego przykładu uśpienia i wybudzenia układu. Po problemach z przykładami znalezionymi w sieci i narzędziach AI, udało się osiągnąć pobór prądu 5.9 µA przy uśpieniu z aktywnym RTC, uśpionym radiem SX1276 i czujnikiem DS18b20, a sam STM32G030 schodził do 1 µA. Wskazano, że zewnętrzne rezystory podciągające można odłączać przez ustawienie pinu GPIO w stan wysokiej impedancji, co zmniejsza prąd upływu. Autor planuje dalsze eksperymenty, m.in. zasilanie DS18b20 bezpośrednio z GPIO, aby jeszcze bardziej ograniczyć pobór energii. Urządzenie z STM32G030 i LoRa działa w terenie, wysyłając pomiary temperatury co 7 minut, z przewidywanym czasem pracy baterii 3.6 V 17 Ah około 8 lat. Pojawiła się też sugestia rozważenia użycia Watchdoga do wybudzania mikrokontrolera.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA