Да я пока не могу ее сформулировать толком. В основе l476. У устройства получаются 2 режима 1. Рабочий: периодически опрашиваем цифровые и аналоговые входы (ориентировочно период 1 мс, но может и реже), копим данные, периодически сбрасываем во флэш или SD карту 2. Интерактивный: взаимодействие с пользователем, передача данных. Переходим в него при активации протокола коммуникации (uart, USB) или если пользователь кнопку ткнул. Основной затык лично у меня в выборе режима энергосбережения для первого сценария Глубоко засыпать не вариант - просыпаться обратно до полной частоты почти 1 мс, значит, надо подремывать
Комментарии: 12
Odnonogiy
1. Что за лайф-критикал контроль с 1мс периодом? Это для любых задач дохрена. Взрывчатку пластифицировать и мет варить так точно не надо, даже квадрику столько много. 2. Зачем для опроса полная частота? 3. И все же имхо спать и будить по прерыванию таймера - самое то.
Serge
1. В тз написано 1 мс 2. Не нужна, я опрашивать буду в режиме lp run у l4 это до 2мгц, АЦП хочет минимум 1.4. Но все равно ок 200мкА, если правильно помню. 3. Насколько глубоко? Стабилизация частот это вроде до 1мс, но тут надо почитать рефман - если кварц внешний и pll x1, может, и меньше.
Odnonogiy
Навскидку отсюда https://www.compel.ru/lib/75312 и даже на русском.
Serge
Я ориентировался на вот это "Собственно выход процессора из сна здесь — наименьшая проблема, при частоте 4,2 МГц он занимает примерно 10 мкс. А вот стабилизация кварца может занимать до 1 мс (хотя обычно для высокоскоростных резонаторов всё же быстрее, порядка нескольких сотен микросекунд), выход на режим PLL — ещё 160 мкс" https://habr.com/ru/post/430218/
Odnonogiy
Заключение прямо радует. И это еще ни разу не упомянута хоть одна errata.
Serge
Как грамотно проверить фактическую скорость пробуждения и устаканивания? Можно купить отладку на l4, вывести osc ноги и взять хороший осцил, но у меня недостача по обоим пунктам)
Odnonogiy
Осцилл больше 100МГц не нужен точно. В любом случае я бы пробовал именно практически, если есть задачи, для которых ровное тактирование критично, надо просто дергать состояния и смотреть на вносимый эффект. С другой стороны, для работы тех же АЦП это же не настолько критично (но тут опять же смотреть под конкретную задачу). Так или иначе, подобный дебаг лично я всегда гоняю на стенде. Кстати, в некоторых случаях может быть эффективней использовать не один чип, дергая его туда-сюда, а два, но тут надо понимать сценарий нагрузки более детально.
Serge
Кстати, уточню по тз, как быстро надо кричать про упячку. Может, получится стопить ядро наглухо и юзать АЦП+DMA и gpio+DMA. И разгребать буферы редко-редко.
Odnonogiy
Отличное решение. Почти уверен, что в итоге это возможно
Aleksey
Многое от контроллера зависит, если нужно быстрое просыпание используйте внешний TCXO
Odnonogiy
Тут вопрос сейчас немного в другом. Для понимания сценария/циклов энергосбережения нужно более детальное понимание тз. В частности, я все еще не верю, что нужно сбрасывать данные с частотой в килогерц, в 99% случаев оказывается, что это родилось мыслью "а давайте ебанем по максимуму!".
Serge
Но надо поиграться с выходом на hsi без pll, а не на внешний и полные обороты