Witam Mircy,
Zna się ktoś na programowaniu STM32 i jest w stanie mi pomóc odpowiednio zaprogramować tryb oszczędzania energii by cały układ przechodził w stan niskiego poboru energii i co jakiś czas wybudzał się celem uzyskania zadanych pomiarów? Pierwszy raz mam z tym do czynienia i nie za bardzo wiem jakiego trybu oszczędzania energii użyć i w jaki sposób poprawnie go zaimplementować.
-STM32 Nucleo-F103RB
-Język C

#stm32 #elektronika #programowanie
Cześć mirki,
jako że mam przed sobą kilka dni wolnych pomyślałem że zrobie sobie licznik rowerowy, tylko tu się zastanawiam jaki procesor wybrać i jaki wyświetlacz patrzac pod kątem zużycia energii, jak i możliwości dalszej rozbudowy. Wiem że za 20-30 zł miałbym dość fajny licznik który miałby wszytsko co bym chciał ale tu chodzi o kwestie nauki. Zastanawiam sie również czy wybrać czujnik Halla czy może kontaktron, który w tym przypadku byłby
@Lagranzjan: Zdecydowanie czujnik Halla. Kontaktron może nie łączyć i rozłączać dość szybko, a dodatkowo będzie zwyczajnie się zużywać mechanicznie.
Polecałbym wziąć Arduino Nano v3 (albo jego klona) i wyświetlacz monochromatyczny z Nokii. Na podobnym zestawie robiłem swojego smartwatcha i w atmedze 328p spokojnie starcza flasha na obsługę wyświetlacza, fonty i grafiki.
@Lagranzjan: kup sobię płytkę stm discovery z prockiem stm32Lxxxxxx
seria L to low power, bardzo ładnie można oszczędzać prąd, trochę projektów z wyświetlaczem od nokii albo innym LCD jest. Jedna z płytek nawet ma wyświetlacz fajny zamontowany - koszt ~50zł.
Witam, mam pytanie z dziedziny #elektronika #stm32 , czy jest możliwość (sens) zasilenia układu STM32 Nucleo F103RB baterią 9V? Układem Nucleo będę chciał również mierzyć poziom naładowania baterii i sygnalizować jej rozładowanie. Czy bateria 9V nadaje się do zastosowania stabilizatora 5V i zasilenia nucleo? Obciążenie całego układu będzie niewielkie ale zastanawiam się czy taka bateria będzie w stanie go zasilić i czy będzie dało się wyznaczyć jakąś ch-ke rozładowania?
@chuckk: Dzielnik napięcia z baterii na nogę ADC procka i tyle. Bateria ma 4.2V -> naładowana, schodzi do 3.8V -> rozładowana, simple as that. Do tego stosujesz krzywą napięcia względem rozładowaina z karty katalogowej producenta ogniwa i jesteś w domu
#stm32 f103 komunikuje się z pc przez usart 1 i odbiera dane po i2c1 z mpu9250, podczas takiej pracy zawiesza się w losowych momentach i2c1 na while'u podczas sprawdzania I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED). Usart1 odbiera bajt w przerwaniu, sprawdza czy się zgadza i wysyła dane do pc. Zawiecha i2c pojawia się częściej, wraz ze wzrostem baudrate usartu. Co tu może być nie tak? W erracie nic nie znalazłem na ten temat. #elektronika
@karololo: Może wysyła jakiś nagłówek do danych, podając się jako mysz... Rozumiem że miało działać jako urządzenie szeregowe, port COM. Podobnie jak arduino...
Kupiłem sobie na ali oscyloskop-zabawkę DSO 138 na #stm32 Próbuję skompilować alternatywny otwarty firmware DLO-138 i nie jestem w stanie uzyskać zjadliwego pliku wynikowego. Binarka waży ponad 43kB, a powinna 34kB jak na githubie, i po wgraniu nie działa (świeci na biało wyświetlacz i niczego nie wysyła po serialu). Firmware kompilowany pod #arduino IDE z dogranymi płytkami SAMD Boards (32-bits ARM Cortex-M0+) i wybraną płytką Generic STM32F103C series (wariant C8). Nigdy wcześniej
@Luk_1mex: Nie robiłem dokładnego porównania. Kupiłem go z zamiarem wgrania i zmodyfikowania DLO pod swój projekt. Planuję dodać drugi kanał, a tego niestety nie da się uzyskać na oryginalnym sofcie. W DLO najniższa podstawa czasowa to 20 µs - na oryginalnym sofcie 10 µs, ale w moim przypadku to nie przeszkadza. Alternatywny soft obsługuje też enkoder z czego chcę skorzystać.
Skompilowana wersja DLO leży na githubie, więc jeśli chcesz tylko sprawdzić
Jak na #stm32 F1 zmierzyć wypełnienie 11 kanałów PWM? Na razie robię to w ten sposób, że do poszczególnych pinów mam podpięte przerwania na oba zbocze i mierzę za pomocą timera czas trwania impulsu. Dla 4 kanałów jest okej, ale jak dla większej ilości pinów to zrobić? Przerwania od 5 do 9 są już wspólne dla pinów np. PA.5 - PA.9, więc jak to rozwiązać? Chcę móc mierzyć standardowe pwm wykorzystywane w
@gravelet: kiedy dostajesz przerwanie od usart że przyszedł znak to po prostu sobie go przepisujesz do swojego jakiegoś bufora w zmiennej globalnej oraz inkrementujesz licznik znaków.

Możesz też ten proces zautomatyzować używając DMA, wtedy określasz ile bajtów ma przyjść i kiedy DMA zapełni bufor to dostaniesz przerwanie że transfer jest zakończony.
@Atexor: używałem System Workbench, i o ile znam ludzi którzy na niego nie narzekają, to ja mam z nim bardzo złe wspomnienia. Na 10% komputerów z jakimi miałem styczność trzeba było, bez żadnego logicznego powodu, gdzieśtam w parametrach kompilacji zamienić cudzysłowy na apostrofy, często zdarzało się że nagle projekt wypieprzał dosłownie tysiące errorów i trzeba było usunąć projekt z workspace i zaimportować go na nowo.
@gravelet: korzystasz z zewnętrznego kwarcu (32768)? Wewnętrzny daje taktowanie 40kHz przy błędzie 1%. Oczywiście temperatura i napięcie mają wpływa na błąd.

Ps. Ten RTC w F1 jest strasznie ubogi...( ͡° ʖ̯ ͡°)
@Kazaaa tak, co prawda jakas chinska plytka i pewnie sam kwarc to gowno

Bede musial zastosowac DS3221 ponieważ urzadzenie bedzie pracowało w duzym zakresie temperatur a tam mam kompensacje