Большинство микроконтроллеров (например, AVR, MSP430, PIC и т. Д.) Поддерживают несколько различных режимов ожидания. «Самый глубокий» спящий режим - это режим с наименьшим энергопотреблением (например, «Выключение питания», «Выключение»), но все системы синхронизации обычно останавливаются в этих режимах, и мне кажется, что единственный способ « Пробуждение от них происходит через внешний стимул (например, прерывания смены штырьков, сброс микросхемы). Я что-то пропустил? Существуют ли удивительно маломощные методы генерации периодического сигнала активизации для MCU?
Предполагая, что моя цель - минимизировать энергопотребление (то есть как можно дольше спать, как можно дольше бодрствовать), периодически просыпаясь для выполнения функции, каков общий способ достижения такого типа поведения? Для дальнейшего упрощения давайте предположим, что моя функция не имеет состояния (мне не нужно ничего вспоминать из прошлого, чтобы выполнить ее).
У меня был некоторый успех с использованием WDT на MSP430, чтобы получить этот эффект. Я просто сделал своей основной подпрограммой свою функцию: последняя строка позволяет истечению времени сторожевого таймера через определенный промежуток времени и переходит в LPM4.5 или как там называется режим «глубокого сна». Чистый результат - функция выполняется, MCU спит, WDT истекает, а чип сбрасывается до тошноты. Кажется, работает, просто интересно, есть ли «лучший», «более элегантный» или «более энергоэффективный» способ получения такого типа поведения?
Я еще не пробовал этот подход с AVR, но я думаю, что WDT более «энергоемкий» в AVR, чем на MSP430, поэтому он может быть менее привлекательным для работы с низким энергопотреблением. Возможно, не существует «универсального» подхода к низкому энергопотреблению, и вам приходится использовать инструменты, предоставляемые данной линейкой продуктов? Я знаю, что в новой линейке picoPower есть множество функций, таких как Event System и Sleep Walking, которые в некоторых случаях практически не требуют пробуждения процессора, если вы можете вписать свое приложение в эту структуру ...
Хорошо, достаточно моего блуждания, давай здесь, что ты должен сказать :)
Редактировать Конкретные примеры, иллюстрирующие методы, также было бы здорово!