Firma STMicroelectronics - o czym doskonale wiedzą uważni Czytelnicy EP - także intensywnie rozwija energooszczędne linie swoich mikrokontrolerów, oferując konstruktorom dwie rodziny: 8-bitowych STM8L oraz 32-bitowych mikrokontrolerów z rdzeniem Cortex-M3 (@32 MHz) - STM32L. Ta druga jest intensywnie rozwijana przez producenta, w ostatnich dniach pojawiła się nowa podrodzina mikrokontrolerów STM32L nazwana Value Line, która zgodnie z nazwą jest nie tylko energooszczędna, ale także zoptymalizowana konstrukcyjnie pod kątem zminimalizowania drugiego istotnego parametru - ceny zakupu.
Jednym z rozwiązań technicznych, mających na celu obniżenie poboru mocy, jakie zaimplementowano w mikrokontrolerach STM32, są peryferia włączane dynamicznie w zależności od aktualnych wymogów aplikacji. Kolejnym rozwiązaniem jest możliwość zmiany wartości napięcia zasilającego mikrokontroler, a także częstotliwość taktowania CPU i pozostałych bloków peryferyjnych.
Te rozwiązania - jakkolwiek skutecznie wspomagające ograniczanie poboru mocy - zaburzają łatwość oszacowania wynikowego poboru mocy przez działający mikrokontroler, a także jego realną moc obliczeniową, bo ta zależy od częstotliwości taktowania, prędkości "budzenia" bloków peryferyjnych oraz czasom wchodzenia i wybudzania z trybów obniżonego ponoru mocy CPU.
Z myślą o konstruktorach chcących przybliżyć się do realnych liczb przed podjęciem prac konstrukcyjnych, firma STMicroelectronics przygotowała prostą w obsłudze aplikację o nazwie Power Consumption Calculator (PCC), za pomocą której można uzyskać dokładne dane o najważniejszych parametrach działania energooszczędnej platformy sprzętowej bazującej na mikrokontrolerach z rodziny STM8L lub STM32L.
Działanie tego programu zostało podzielone na logicznie uzasadnione etapy:
- po uruchomieniu PCC wyświetla się główne okno tego programu (rysunek 1), w którym należy wybrać rodzinę ewaluowanych mikrokontrolerów (spośród STM8 i STM32), następnie podrodzinę (obecnie dostępne są wyłącznie STM8L i STM32L), w kolejnym kroku wybieramy typ docelowego mikrokontrolera (w przypadku STM32L dostępne są wszystkie typy STM32L15x),
- następnie ustalamy typ ogniwa zasilającego (lista zawiera kilkanaście typów standardowych ogniw chemicznych różnego rodzaju), jak pokazano na rysunku 2. Szacowanie poboru energii w aktualnie dostępnej wersji PCC odbywa się dla temperatury otoczenia wynoszącej +25°C i przy napięciu maksymalnym, dopuszczalnym dla danego typu mikrokontrolera, wartości tych parametrów nie dają się modyfikować,
- po zatwierdzeniu konfiguracji sprzętowej przechodzimy do okna konfiguracji cyklu pracy mikrokontrolera (rysunek 3), w którym zadajemy czas trwania danego kroku, definiujemy sposób i częstotliwość taktowania CPU, aktywne peryferia, konfigurację pamięci programu itp. parametry mające wpływ na pobór prądu. Edytor jest dość wygodny w obsłudze, ale nie ma przydatnych w definiowaniu dłuższych sekwencji narzędzi typu powtórz krok, co zmusza użytkownika do definiowania całego cyklu krok-po-kroku,
- po zdefiniowaniu wszystkich kroków opisujących realizacje zadanego przez nas algorytmu, możemy wyświetlić graf ilustrujący zmiany natężenie prądu pobieranego przez mikrokontroler podczas każdego kroku sekwencji (rysunek 4), program oblicza także średnią wartość natężenia pobieranego prądu, średnią wydajność obliczeniową mikrokontrolera w DMIPS oraz szacuje czas działania wybranego ogniwa zasilającego.
Prezentowany kalkulator pozwala na uwzględnienie w obliczeniach dodatkowych, zewnętrznych obciążeń prądowych, mających wpływ na długość życia ogniwa zasilającego. Dzięki temu można z dobrym przybliżeniem oszacować realne warunki funkcjonowania systemu, optymalizując zarówno sposób i źródło zasilania, jak i modyfikować oprogramowanie mikrokontrolera balansując pomiędzy wymaganą prędkością wykonywania programu i poborem energii.
Alternatywnym do PCC narzędziem o podobnej funkcjonalności (i - co ważne - bogatszych bibliotekach!) jest planowany do publicznego udostępnienia pakiet MicroXplorer nowej generacji (rysunek 5), w którym kalkulator PCC zostanie zintegrowany z dotychczas stosowanym konfiguratorem linii GPIO.
Andrzej Gawryluk