Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC23XX backup Battery RAM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vesago
Друзья, у кого есть опыт работы с данным узлом? Вроде все просто - RAM с 32 битным доступом. Но у меня, если к примеру в основном цикле постоянно читать по адресу 0, гарантированно в дата аборт уходит. IDE - IAR. В файле линкера описал соответствующий сегмент, в проекте объявил массив 32 битных слов в данном сегменте размером 2048/4. Читаю как я говорил по индексу 0. В чем может быть загвоздка?
AVI-crak
Для этой памяти нужно отдельно запускать питание, монитор общего питания, и транслятор уровня. Потому как это очень медленная память, со своим личным стабилизатором, и с очень нежными ячейками памяти - которые мало кушают, и забиваются мусором от любого чиха на линии питания.
Перед тем как проц теряет напряжение - нужно успеть отключить транслятор уровня. Иначе содержимое разрушится.
Читайте доку.
vesago
На плате батарейка подключена к VBAT. Я вроде как поправил дело. Принудительно задаю тип индекса массива - ансигнед лонг.
AVI-crak
Подключить батарейку мало, нужно запустить стабилизатор питания, транслятор уровня, и монитор питания.
vesago
Транслятор уровня, монитор питания - речь о внешних узлах? В мануале не нашел упоминания про такое.
AVI-crak
UM10211.pdf
Искать 4.8.11 Power domains
Искать 26.9 Battery RAM
Это дока общая для LPC23XX, конкретная реализация зависит от полного названия чипа.
Бегло, PVD механизма контроля питания в lpc - нет. В этом случае нужно использовать внешний аппаратный монитор питания. В навороченном варианте - это отдельный чип, в простом - резисторный делитель напряжения питания до стабилизатора чипа, например 5в. Подобрать номиналы до уверенного срабатывания лог уровня на ноге чипа, использовать внешнее прерывание с максимальным приоритетом.




vesago
Спасибо, все понятно.
gte
Цитата(AVI-crak @ Jun 11 2017, 13:34) *
UM10211.pdf

И что, там написано про "запустить стабилизатор питания, транслятор уровня, и монитор питания"?
Что такое транслятор уровня?
AVI-crak
Цитата(gte @ Jun 11 2017, 18:00) *
И что, там написано про "запустить стабилизатор питания, транслятор уровня, и монитор питания"?
Что такое транслятор уровня?

Применимо к кортексу в целом - это запуск резервного домена питания. Домен связан с часами реального времени не только питанием, но и системной шиной. (или наоборот) В lpc это просто один бит, в stm больше движений - но и возможностей по более.
Нужно смотреть документацию конкретно на этот узел от lpc, точнее под конкретный чип. Потому как BKPSRAM имеет питание 2,1в, и очень низкую частоту такта. Подать питание на память - это пол дела, транслятор уровня заметно кушает - и его не всегда держат в рабочем режиме.
В данном случае транслятор уровня - это разрешение доступа к памяти.

Нужен конкретный чип, без xxx.
gte
Цитата(AVI-crak @ Jun 11 2017, 16:22) *
Применимо к кортексу в целом - это запуск резервного домена питания.

Вы путаете. LPC23xx это не кортекс.
AVI-crak
Цитата(gte @ Jun 12 2017, 04:28) *
LPC23xx это не кортекс.

Да это вообще не из этого мира.
Часть инстала часов реального ремни.
Код
int rtc_initialize (void)
{
    /* Enable PCLK to the RTC */
    __set_PCONP(PCRTC);
    /* Start RTC with external XTAL */
    RTC_CCR = 0x11;
    /* Stop PCLK to the RTC to reduce battery power consumption */
    __clr_PCONP(PCRTC);
    return 1;
}

Я-ж говорил - всего один бит....
gte
Цитата(AVI-crak @ Jun 12 2017, 02:41) *
Я-ж говорил - всего один бит....

Пусть это будет тот самый бит. Но эту рекомендацию-
Цитата
Перед тем как проц теряет напряжение - нужно успеть отключить транслятор уровня. Иначе содержимое разрушится.
для этого бита выполнять не надо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.