Cel programu
Celem programu demonstracyjnego jest umożliwienie użytkownikom mikrokontrolerów LPC1700 wejścia w tryby pracy o obniżonym poborze energii i wybudzenia z nich oraz zaprezentowanie sposobu pomiaru zużycia energii przy pomocy płytki ewaluacyjnej Keil MCB1700. Dodatkowo program pozwala użytkownikom zmierzyć pobór prądu w trybie normalnej pracy (active mode) przy częstotliwościach 12, 48 i 100 MHz. W następnych rozdziałach omówione są kolejne kroki, które należy wykonać, aby uruchomić program demonstracyjny.
Ustawienia sprzętowe
Płytka Keil MCB 1700 jest wyposażona w zworki pozwalające użytkownikowi mierzyć prądy pobierane ze źródeł napięciowych VDD(reg)(3V3) oraz VBAT. Użytkownik może podłączyć w miejsce tych zworek amperomierz.
Do wybudzania układu z trybu pracy o obniżonym poborze energii służą następujące opcje:
- Do wybudzenia z trybu Sleep można użyć przerwania UART0 (można je wygenerować wciskając którykolwiek przycisk na klawiaturze), wciśnięcie przycisku EINT0 lub przycisku RESET.
- Do wybudzenia z trybów Deep-sleep i Power-down można użyć przycisków EINT0 i RESET.
- Do wybudzenia z trybu Deep Power-down można użyć przycisku RESET.
Zworki ISP oraz RST powinny zostać zdjęte. Należy się też upewnić, że założona jest zworka INT0.
Do wyświetlania menu trybów pracy o obniżonym poborze energii wykorzystywany jest port COM0 (UART0).
Jak zostało wspomniane w rozdziale dotyczącym debugowania, aby wybudzić system z trybów Deep-sleep i Power-down, gdy program jest już załadowany poprzez interfejs JTAG/SWD, należy odłączyć od płytki adapter Keil ULINK2, a następnie dokonać resetu poprzez odłączenie i powtórne podłączenie zasilania.
Trzeba mieć świadomość tego, że gdy płytka Keil MCB1700 jest zasilana przez kabel USB, na zewnętrzny oscylator 50 MHz jest podawane zasilanie i taktuje on nóżkę ENET_REF_CLK mikrokontrolera LPC1700. Podnosi to zużycie prądu o ok. 140 µA i nie istnieje zworka, za pomocą której można ten oscylator wyłączyć. Aby poprawnie zmierzyć zużycie energii za pomocą płytki Keil MCB1700, należy z niej zewnętrzny oscylator 50 MHz wylutować (rysunek 11).
Rys. 11. Płytka Keil MCB1700
Ustawienia programu terminala
Niniejsze demo używa jako emulatora terminala programu Tera Term, a poprawne ustawienia portu szeregowego w tym programie ilustruje rysunek 12.
Rys. 12. Ustawienia programu terminala
Działanie programu
Działanie programu jest przedstawione na rysunku 13.
Widoczne poniżej menu zawiera instrukcje pozwalające mierzyć prąd pobierany w czasie zwykłej pracy dla częstotliwości 12, 48 i 100 MHz oraz wejść w każdy z czterech trybów pracy o obniżonym poborze energii i wychodzić z nich.
Rys. 13. Wygląd menu programu demonstracyjnego
Pomiary zużycia energii
W tabeli 1 zestawione zostały typowe wartości zużycia prądu mierzonego z użyciem programu demonstracyjnego uruchomionego na płytce Keil MCB1700.
Tabela 1. Typowe zużycie energii
Zwykła praca (active power mode) | Prąd Ireg(3V3) |
12 MHz, wyłączona pętla PLL, wyłączone wszystkie peryferia oprócz UART0 | 7 mA |
48 MHz, włączona pętla PLL, wyłączone wszystkie peryferia oprócz UART0 | 24 mA |
100 MHz, wyłączona pętla PLL, wyłączone wszystkie peryferia oprócz UART0 | 43 mA |
Tryby pracy o obniżonym poborze energii | Prąd Ireg(3V3) |
Tryb Sleep (48 MHz, włączona pętla PLL, wyłączone wszystkie peryferia oprócz UART0) | 14 mA |
Tryb Deep-sleep (BOD wyłączony) | 240 µA |
Tryb Power-down (BOD wyłączony) | 37 µA |
Tryby pracy o obniżonym poborze energii | Prąd Ivbat |
Tryb Deep Power-down | 500 nA |
Warunki pomiarów: Vreg(3V3) = 3,3 V, VBAT = 3,3 V, temperatura = 25°C; wszystkie peryferia wyłączone, z wyjątkiem UART0 (9600 bodów), pracującego w trybie zwykłej pracy oraz w trybie uśpienia (Sleep); zegary peryferiów (pclk) = cclk/8; wszystkie wyprowadzenia (oprócz nóżek UART0) skonfigurowane jako wyjścia GPIO i ustawione w stan niski; wewnętrzne podciąganie napięcia wyjść wyłączone; dzielnik częstotliwości zegara USB wyłączony; oscylator 50 MHz wylutowany z płytki MCB1700.
Artykuł został opracowany na podstawie noty aplikacyjnej AN10915 firmy NXP.