[i] Выключение генератора HSI (обход errata)
К устройствам с автономным питанием предъявляются весьма жёсткие требования к энергопотреблению. Внутренний генератор HSI является неточным источником тактовой частоты, поэтому вместо него чаще всего используют генератор HSE, работающий от внешнего кварцевого резонатора или генератора. При этом, чтобы снизить потребление, в МК есть возможность выключить неиспользуемый генератор HSI.
В данной статье рассмотрены особенности выключения внутреннего генератора HSI в МК семейства К1986ВЕ9x, МК семейства К1986ВЕ1x, МК К1901ВЦ1QI, МК К1986ВК214 и К1986ВК234.
Разрешением работы генератора HSI управляет бит HSION в регистре BKP_REG_0F. В состоянии логического "0" генератор выключен, в состоянии логической "1" генератор включен. Однако, из-за аппаратной ошибки (errata, "Невозможность выключить генератор HSI при нулевом ALRF") при выключении генератора HSI есть несколько особенностей.
1. Бит разрешения работы HSION в регистре BKP_REG_0F батарейного домена может быть сброшен в "0" только при взведённом в "1" флаге ALRF часов реального времени. Установить флаг ALRF можно, только включив часы реального времени и дождавшись, когда значение в регистре RTC_CNT сравняется с заданным значением в регистре RTC_ALRM. Только после этого, когда установлен флаг ALRF, бит HSION может быть сброшен, в противном случае попытка сброса бита HSION не оказывает никакого влияния.
2. После успешного сброса бита HSION (генератор HSI выключен), сброс флага ALRF приводит к взведению бита HSION, и генератор HSI снова начинает работать. Таким образом, генератор HSI может находится в выключенном состоянии только при установленном в "1" флаге ALRF. Сброс часов (бит RTC_RESET в регистре BKP_REG_0F) приводит к сбросу флагов, в том числе и ALRF, что также приведёт к включению HSI.
Сохранить статью в PDF