Перейти к содержанию
    

LPC1768 Battery Backed RAM и RTC регистры

Случилось тут неприятное. Понял, что не влезаю в 20 байт BBRAM и надо еще с десяток битовых флагов похранить между включениями устройства. Посмотрел в даташит - вроде есть вариант отключить сравнение года аларма в alarm mask register и использовать 12 бит alarm year register в своих целях, для флагов. Алармов, отложенных более чем на год не предвидится по определению.

 

Но насколько оно безопасно? Может у кого опыт был?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Случилось тут неприятное. Понял, что не влезаю в 20 байт BBRAM и надо еще с десяток битовых флагов похранить между включениями устройства. Посмотрел в даташит - вроде есть вариант отключить сравнение года аларма в alarm mask register и использовать 12 бит alarm year register в своих целях, для флагов. Алармов, отложенных более чем на год не предвидится по определению.

 

Но насколько оно безопасно? Может у кого опыт был?

 

В документации написано

 

Detailed descriptions of the

registers follow. In these descriptions, for most of the registers the Reset Value column

shows "NC", meaning that these registers are Not Changed by a Reset.

 

и

 

The alarm registers are shown in Table 521. The values in these registers are compared

with the time counters. If all the unmasked (See Section 27.6.2.4 “Alarm Mask Register

(AMR - 0x4002 4010)” on page 563) alarm registers match their corresponding time

counters then an interrupt is generated. The interrupt is cleared when a 1 is written to bit 1

of the Interrupt Location Register (ILR[1]).

 

 

 

Т.е. на них не действует ресет по включению питания и при совпадении просто генерируются соотв прерывания и нигде не написано что содержимое этих регистров меняется. Если нет необходимости в алармах, то теоретически у Вас появляется 8 регистров различной разрядности для хранения данных.

У меня в одном проекте бэкап регистры использовались для контроля инициализированости часов. При подключённом аккумуляторе сбоев вроде не наблюдалось. Я использовал crc8 для контроля целостности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но насколько оно безопасно? Может у кого опыт был?

А интересно - как вы обеспечиваете безопасность модификации этих регистров если они у вас модифицируются в порядке чтение-модификация-запись и отключение питания прервёт эту последовательность?

Или это у вас просто набор незавимисмых друг от друга флагов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А интересно - как вы обеспечиваете безопасность модификации этих регистров если они у вас модифицируются в порядке чтение-модификация-запись и отключение питания прервёт эту последовательность?

Или это у вас просто набор незавимисмых друг от друга флагов?

 

В памяти есть защищенная контрольной суммой структура, которая отдельной подпрограммой переносится в BBRAM (тоже с КС). Рухнет оно только если питание вырубится во время записи этих 5 слов. Подумывал сделать блокировку по пропаданию внешнего питания, но пока руки не дошли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Настраивал прерывание "по пропаданию питания" и успевал записать во внутреннюю флеш-память событие о проподании питания. (правда, на STM32F1x). Так что "вырубание" питания можно корректно обработать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да - нужен или монитор питания (с прерыванием по пропаданию) или в два раза больше non-volatile памяти для дублирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...