Wykorzystywanie trybów pracy o obniżonym poborze energii w mikrokontrolerach NXP LPC1700

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:

  1. 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.
  2. Do wybudzenia z trybów Deep-sleep i Power-down można użyć przycisków EINT0 i RESET.
  3. 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

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

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

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.

O autorze