Najprostszym sposobem oszczędzania energii w systemie jest wyłączenie wszystkich urządzeń peryferyjnych. Wyłączając rdzenie procesora lub obwody logiczne, zmniejszasz prąd bazowy lub prąd spoczynkowy do zera poza kontrolerem zasilania systemu. Tego typu oszczędzanie energii można realizować automatycznie za pomocą zestawu GPIO, które mogą zostać zaimplementowane w aplikacji wbudowanej.
Choć może to brzmieć jak bardzo prosta funkcja do wdrożenia, wynikowy układ oraz wpływ na bazę kodu urządzenia wcale nie muszą być takie proste. Najczęściej polegamy na funkcjach wake-sleep w konkretnych urządzeniach, o których wiadomo, że są głównymi odbiorcami mocy, takich jak duży mikrokontroler lub FPGA. Szczególnie w przypadku mikrokontrolerów funkcje te stały się bardziej powszechne i z pewnością są przydatne do wyłączania systemu wbudowanego.
Jednak w przypadku zestawu układów ASIC funkcja wake-sleep rzadko jest wbudowana w urządzenie, a często występują też inne peryferia, których nie dałoby się wyłączyć, nawet gdyby ta funkcja była zaimplementowana w Twoich układach ASIC. W takim momencie dodajesz już złożony mikrokontroler, timer i układ resetu do sterowania systemem. Zamiast tego warto przyjrzeć się temu przykładowi zastosowania dla GreenPAK, który umożliwia implementację funkcji timera wake-sleep oraz jej wyzwalanie na podstawie dowolnego zestawu warunków logicznych.
Timery wake-sleep, niezależnie od tego, czy są zaimplementowane jako część układu scalonego, czy zaprojektowane indywidualnie na PCB, pełnią dwie podstawowe funkcje:
Wydaje się to dość proste, dopóki nie zliczysz listy wymaganych obwodów: sekwencera wyłączania zasilania, sekwencera uruchamiania zasilania, timerów opóźniających, cyfrowego lub analogowego toru wejściowego do wykrywania sygnału wybudzania oraz peryferiów umożliwiających wyłączanie przez przełączanie sygnałem logicznym. Zostało to podsumowane na poniższym schemacie blokowym.
Podstawowy schemat blokowy timera wake-sleep obejmuje stopień detekcji wejściowej, który przechwytuje sygnał wybudzania, blok timera odliczający czas aktywności, sekwencer sterujący kolejnością włączania i wyłączania zasilania urządzeń peryferyjnych oraz sterowniki wyjściowe wymuszające sygnały enable lub reset na urządzeniach podrzędnych. Tor wejściowy przekazuje sygnał do timera, który po upływie czasu wyzwala sekwencer wyłączenia; po odebraniu nowego zdarzenia wybudzania sekwencer uruchamiania ponownie włącza peryferia we właściwej kolejności.
W czysto cyfrowej domenie sygnał wybudzania jest w praktyce pojedynczym bitem (lub zbiorem bitów) o wymaganym poziomie logicznym, który uaktywnia wejście lub wejścia w torze logiki wejściowej obwodu wake-sleep. W przypadku analogowego sygnału wybudzania potrzebny jest odpowiedni tor wejściowy zaprojektowany specjalnie dla danego sygnału, który zasadniczo dokonuje pewnego pomiaru sygnału (amplitudy, fazy, częstotliwości itp.), aby określić, czy warunek wybudzenia został spełniony.
Sygnały wybudzania mogą być dostarczane praktycznie z dowolnego źródła, o ile tor wejściowy w timerze wake-sleep został zaprojektowany tak, aby je obsługiwać. Otwiera to możliwość stosowania interfejsów mieszanych sygnałowo, w których wejścia cyfrowe i analogowe są używane do wyzwalania warunków wybudzenia w timerze wake-sleep.
Odpowiedź na to pytanie brzmi ogólnie: tak, ale zwiększa to złożoność standardowego obwodu timera wake-sleep. Timer wake-sleep zwykle działa na pojedynczym wejściu cyfrowym albo na pojedynczym wejściu analogowym, które przekroczyło próg wykryty za pomocą komparatora. Może to być na przykład wyjście sygnalizacyjne z urządzenia dotykowego lub przycisku albo wyjście czujnika, które przekracza określony poziom napięcia. Ogólnie rzecz biorąc, wiele sygnałów można połączyć w pojedynczy interfejs wejściowy jako część warunku wybudzenia dla tego obwodu.
Wymaga to jednak dodatkowego bloku przetwarzania logiki na wejściu timera wake-sleep. Najprostszym rozwiązaniem jest implementacja z użyciem bramek logicznych, a każdy analogowy sygnał wejściowy można zdigitalizować za pomocą komparatora. Można rozważać użycie mikrokontrolera do tego zadania, ale mija się to z celem timera wake-sleep, którego zadaniem jest zazwyczaj wyłączanie peryferiów i procesorów cyfrowych.
Programowalny mieszany sygnałowo układ scalony Renesas GreenPAK bardzo dobrze nadaje się do implementacji timera wake-sleep, ponieważ integruje komparatory analogowe, bramki logiczne, liczniki, bloki opóźniające oraz konfigurowalne wejścia/wyjścia w jednym urządzeniu. W pełni niestandardowy interfejs mieszanych sygnałów może pełnić funkcję toru wejściowego dla timera wake-sleep, jednocześnie przyjmując zarówno wejścia cyfrowe, jak i analogowe.
Na przykład komparator analogowy wewnątrz GreenPAK może monitorować napięcie czujnika, podczas gdy oddzielne wejście cyfrowe obserwuje zdarzenie o poziomie logicznym pochodzące z urządzenia peryferyjnego; sygnały te trafiają do konfigurowalnej logiki, która ocenia łączny warunek wybudzenia. Po spełnieniu kryteriów wybudzenia wewnętrzne liczniki i bloki opóźniające zarządzają sekwencją włączania i wyłączania zewnętrznych linii zasilania lub linii resetu.
Narzędzia deweloperskie Go Configure dają projektantom możliwość tworzenia w pełni niestandardowych timerów wake-sleep, które mogą implementować sygnały mieszane, a nawet interfejs szeregowy jako część funkcji wybudzania. Te programowalne procesory mieszanych sygnałów pozwalają tworzyć mniejsze i bardziej wydajne systemy.
Aby dowiedzieć się więcej, zapoznaj się z komponentami GreenPAK i przykładami referencyjnymi.
Niezależnie od tego, czy projektujesz niezawodną elektronikę zasilania, czy zaawansowane systemy cyfrowe, wykorzystaj kompletny zestaw funkcji projektowania PCB i światowej klasy narzędzia CAD oferowane przez Altium, aby wdrożyć swoje rozwiązania GreenPAK. Altium zapewnia wiodącą na świecie platformę do rozwoju produktów elektronicznych, wyposażoną w najlepsze w branży narzędzia do projektowania PCB oraz funkcje współpracy międzydyscyplinarnej dla zaawansowanych zespołów projektowych. Skontaktuj się z ekspertem Altium już dziś!