Dla potrzeb nauki zastosujemy już nam znany zestaw ewaluacyjny STM32L Discovery z wbudowanym programatorem/debugerem ST-Link V2. W programach testowych dostarczanych z modułem prąd jest mierzony przez wbudowany układ i wyświetlany na LCD. To wygodne rozwiązanie, ale wymaga napisania sporego programu wykonującego pomiary.
Jego praca może w naszych przykładach powodować zafałszowanie wyników i przez to wyciąganie nieprawidłowych wniosków. Na szczęście producent modułu przewidział możliwość pomiaru prądu za pomocą zewnętrznego mikroamperomierza. Układ pomiaru prądu można włączać i wyłączać zworką JP1 (rysunek 1).
Kiedy jest ona w położeniu ON, to mikrokontroler jest zasilany przez układ pomiaru prądu. Położenie zworki w pozycji OFF powoduje ominięcie układu pomiarowego. Po całkowitym usunięciu zworki, pobór prądu można mierzyć amperomierzem włączonym pomiędzy piny 1 i 2 złącza JP1.
Dokładny pomiar małych prądów może wymagać precyzyjnego mikroamperomierza, spełnienia określonych warunków pomiaru, tym bardziej, że prąd pobierany przez mikrokontroler ma charakter impulsowy. Nam jednak nie będzie chodziło o dokładność pomiaru, ale o zaobserwowanie tendencji zmian poboru prądu.
Dlatego do pomiaru zastosowałem popularny multimetr Metex M-3800 na zakresie pomiarowym prądu stałego 200 uA. Jak już wspomniałem, zaciski miernika mają być włączone pomiędzy piny 1 i 2 złącza JP1.
Wpływ konfiguracji kompilatora
Pisząc program za pomocą kompilatora języka wysokopoziomowego (w przypadku mikrokontrolerów będzie to zazwyczaj kompilator C lub C++) możemy w pewnym stopniu decydować o właściwościach kodu programu wynikowego...
Architektura rdzenia, a pobór energii
Mikrokontrolery z rdzeniami ARM Cortex-M mogą znacznie różnić się. Nie chodzi tu o naturalne różnice wynikające z wyposażenia w układy peryferyjne, pamięć programu Flash czy pamięć danych SRAM, ale o budowę samego rdzenia. Rdzenie różnią się architekturą i listą rozkazów...
Optymalizacja kodu niezależna od kompilatora
Już wiemy, że program, który wykonuje się szybciej wymaga mniejszej ilości energii zasilającej. Optymalizacja wbudowana w kompilator to nie jest jedyna możliwość przyspieszenia działania. Można próbować tak napisać program, by nawet po optymalizacji wykonywał się jeszcze szybciej. Żeby to robić trzeba próbować różnych konstrukcji programowych i analizować jak poradzi sobie z nimi kompilator. Do tego jest potrzebna znajomość asemblera i listy rozkazów...
Wpływ konfiguracji portów GPIO na pobór energii
W układach mikrokontrolerowych, w których pobór energii jest istotnym parametrem, trzeba zwracać uwagę na układy peryferyjne. Programista powinien konfigurować i włączać tylko te, które są niezbędne do działania aplikacji. Pozostałe muszą być wyłączone i nie powinny być taktowane. Jednak w każdym mikrokontrolerze jest jeden układ peryferyjny, którego całkowicie wyłączyć nie można. Są to uniwersalne porty GPIO...
Użycie układu DMA
Kanały DMA to szybki i wygodny mechanizm przesyłania danych z układów peryferyjnych bezpośrednio do pamięci bez użycia jednostki centralnej (CPU). Zbadamy teraz czy użycie DMA wpłynie na pobór prądu przez mikrokontroler...