4. Регистры для резервного копирования (BKP)
4.1 Введение в BKP
Резервные регистры – это 10 16-битных регистров в устройствах с низкой и средней емкостью или 42 регистра в устройствах с высокой емкостью. Соответственно, резервные регистры могут хранить в себе 20 или 84 байта данных соответственно.
Эти регистры расположены в резервном домене (backup domain), который запитывается от выхода VBAT, в случае отключения питания на VDD. Эти регистры не сбрасываются ни после выхода контроллера из режима ожидания, ни после сброса.
В дополнение ко своей основной функции, резервные регистры служат для обнаружения сигнала сброса и для калибровки часов реального времени.
После сброса доступ к регистрам заблокирован и резервный домен закрыт от возможной паразитной записи. Для разблокировки доступа к регистрам необходимо произвести следующие действия:
- Включить тактирование интерфейсов питания и резервного копирования за счет устанвки битов PWREN и BKPEN в регистре RCC_APB1ENR.
- Установить бит DBP в регистре управления питанием PWR_CR для разблокировки доступа к резервным регистрам и часам реального времени.
- Емкость регистров – 20 байт для устройств со средней и низкой емкостью, 84 байта для устройств с высокой емкостью.
- Регистр статуса/управления для управления детектированием сигнала сброса с поддержкой прерываний.
- Специальный калибровочный регистр для хранения калибровочного значения RTC
4.3 Функциональное описание BKP
4.3.1 Детектирование сброса
Пин сброса (TAMPER pin) генерирует событие сброса каждый раз при изменении состояния пина с 0 на 1 или с 1 на 0 (в зависимости от состояния бита TPAL в регистре управления резервным копированием BKP_CR).
Чтобы предотвратить потерю событий сброса, линия, используемая для определения типа фронта, соединяется логическим “И” с линией включения сброса.
- Когда TPAL=0, если на пине TAMPER был высокий уровень до включения детектирования сброса (до установки бита TPE), то дополнительное событие сброса будет сгенерировано как только будет включено обнаружение сброса.
- Когда TPAL=1, если на пине TAMPER был низкий уровень до включения детектирования сброса (до установки бита TPE), то дополнительное событие сброса будет сгенерировано как только будет включено обнаружение сброса.
Если установить бит TPIE в регистре BKP_CSR, то прерывание будет сгенерировано как только будет обнаружен сигнал сброса.
После того, как будет обнаружен и проделан сброс, пин сброса (TAMPER pin) должен быть отключен, а потом вновь включен битом TPE перед повторной записью в резервные регистры (BKP_DRx). Это ограждает прошивку от записи данных в регистры BKP_DRx пока пин сброса показывает наличие сброса. Это эквивалент определения уровня на пине сброса.
4.3.2 Калибровка RTC
Контроллер имеет возможность вывести тактирование RTC с предделителем 64 на пин сброса (TAMPER pin). Это можно включить установкой бита CCO в регистре калибровки RCT BKP_RTCCR.
Тактирование может быть замедлено до 121 ppm (part per millon) с помощью конфигурирования битов CAL[6:0].
Для более подробного ознакомления с темой калибровки RTC просьба обратьтся к AN2604.
4.4 Программирование BKP
|
Сбрасывает флаг ожидания события от пина Tamper.
Вход:
- Параметров не принимает.
Выход:
- Значения не возвращает.
|
Сбрасывает флаг ожидания прервания от пина Tamper.
Вход:
- Параметров не принимает.
Выход:
- Значения не возвращает.
|
Возвращает все регистры BKP к их первоначальному значению.
Вход:
- Параметров не принимает.
Выход:
- Значения не возвращает.
|
Проверяет, включена ли генерация события по сигналу на пине Tamper.
Вход:
- Параметров не принимает.
Выход:
- Состояние флага: SET или RESET.
|
Проверяет, включена ли генерация прерывания по сигналу на пине Tamper.
Вход:
- Параметров не принимает.
Выход:
- Состояние флага: SET или RESET.
|
Включает или отключает генерацию прерывания по фронту на пине сброса.
Вход:
NewState
– новое состояние. Принимает следующие значения: ENABLE и DISABLE.
Выход:
- Значения не возвращает.
|
Читает содержимое из указанного регистра.
Вход:
BKP_DR
– указывает регистр, из которого необходимо провести чтение. Имя имеет вид BKP_DRx, где x=1..42.
Выход:
- Содержимое регистра.
|
Указывает что необходимо выводить от RTC на пин Tamper.
Вход:
BKP_OutputSource
– указывает тип выходной характеристики. Принимает следующие значения:- BKP_RTCOutputSource_None – от RTC ничего не выводится на ногу Tamper.
- BKP_RTCOutputSource_CalibClock – выводится импульсы от RTC с предделителем 64.
- BKP_RTCOutputSource_Alarm – вывод сигнала от будильника.
- BKP_RTCOutputSource_Second – Вывод импульса каждую секунду.
Выход:
- Значения не возвращает.
|
Устанавливает калибрующее значение RTC.
Вход:
CalibrationValue
– калибрующее значение RTC. Это число в диапазоне от 0 до 0x7F.
Выход:
- Значения не возвращает.
|
Включает или отключает активацию пина Tamper.
Вход:
NewState
– состояние. Может быть ENABLE или DISABLE.
Выход:
- Значения не возвращает.
|
Устанавливает тип фронта на пине сброса (TAMPER) для реагирования на него.
Вход:
BKP_TamperPinLevel
– указывает тип выходной характеристики. Принимает следующие значения:- BKP_BKP_TamperPinLevel_High – реакция по нарастающему фронту.
- BKP_BKP_TamperPinLevel_Low – реакция по ниспадающему фронту.
Выход:
- Значения не возвращает.
|
Записывает указанные данные в регистр.
Вход:
BKP_DR
– имя регистр для записи. Имя имеет вид BKP_DRx, где x=1..42.Data
– данные для записи.
Выход:
- Значения не возвращает.
А причем тут тэг “Altium”?
Да, действительно не при чём. Спасибо!
111