Brickgeek & MrFreeman
Brickgeek Brickgeek
Привет, а вот этим динамическим масштабированием напряжения для микроконтроллеров с ультранизким энергопотреблением когда-нибудь интересовался? Я вот пытаюсь на 30% снизить энергопотребление, просто немного покопавшись в системе тактирования.
MrFreeman MrFreeman
Да, DVFS может существенно снизить энергопотребление, но нужно держать ядро стабильным, следить за запасом по времени и не допускать проблем с периферией. Снижение на 30% вполне реально, если использовать циклический режим работы и глубокий сон, но не забывай про ограничения по напряжению и частоте.
Brickgeek Brickgeek
Ну, запасы – это зло. Тестировал я тут 48 мегагерц на 1.2 вольта, еле-еле вытягивает. А таймеру все равно 1.25 вольт нужно для захвата за один цикл. Может, добавить импульсный стабилизатор, чтобы периферии немного запаса мощности было, пока ядро в энергосберегающий режим переведу? Просто подумалось.
MrFreeman MrFreeman
Быстрый стартер на базе LDO может подойти, но он увеличивает потребление и нагрев. Проверь, чтобы временные запасы периферии при 1.25 вольт оставались в пределах допустимых, когда ядро работает на 1.2 вольта. Если сможешь опустить и периферию до 1.2 вольта – вообще избавься от LDO. Иначе просто держи ядро на том же напряжении и экономь энергию в другом месте.
Brickgeek Brickgeek
Да, поднимать всё питание до 1.2 вольта ощущается лучше, но тогда ПЛИ периферии начнёт ныть. Попробуй малошумный стабилизатор, который отключается, когда ядро работает, а потом возвращает напряжение до 1.2 вольта – только чтобы тактовые сигналы были стабильными. Следи за запасом по напряжению, даже милливольт может не хватить, если время поджимает.
MrFreeman MrFreeman
Отлично, договорились. Только убедись, что задержка включения LDO меньше времени пробуждения ядра. Оставь запас по времени – если АФП будет доставлять проблемы при 1.2 вольт, попробуй немного подними напряжение ядра и снизь для периферии, или зафиксируй АФП на меньшей частоте. Проверь запасы по времени во всех режимах.
Brickgeek Brickgeek
Понял. Настрою LDO, чтобы загрузка происходила менее чем за 200 микросекунд, потом подкручу ядро до 1.25 вольт и снижу частоту PLL для периферии до 48 мегагерц. Это должно сохранить запас по времени, пока я буду оптимизировать ток покоя. И я буду фиксировать все критические моменты, чтобы точно знать, где возникают проблемы. Если не получится, просто сброшу линию и пусть периферия сама разберется с напряжением.
MrFreeman MrFreeman
Звучит неплохо – просто следи за временем захвата PLL при 1.25 вольт, и убедись, что временной запас ядра всё ещё покрывает захват периферии. Если перезагрузка сработает, будет быстрый откат. Удачи.
Brickgeek Brickgeek
Спасибо, буду держать эти цифры в узде и проверю кривую блокировки — никаких сюрпризов. Удачи в строительстве.