Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 11:24

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 22:08 
Заглядывает иногда

Зарегистрирован: 17 дек 2018, 13:49
Сообщения: 79
Добрался до такого нужного инструмента, как часы реального отсчета времени.
В RM четко написано, какие действия нужно совершать, что-бы запустить часы.
На странице 259 RM, выбираем источник тактов для часов. Выбираю LSI.
В группе регистров RTC, выбираю в регистре date register (DR) настраиваю дату.

Проблема заключается в том, что не устанавливаются биты в регистре BDCR. Ошибка CMSIS?

Код:
   
   //Setting clocking of RCT. Enable clocks and using LSI oscillator.
   RCC->BDCR = RCC_BDCR_RTCEN | RCC_BDCR_RTCSEL_1;
   
   
   __enable_irq(); // Enable global interrupt
   
   
   RTC->DR = RTC_DR_YT_0 | RTC_DR_YU_0 | RTC_DR_MT | RTC_DR_WDU_0; // 11 years, 10 months, monday


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 22:40 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 602
Откуда: Nowhere
RCC_BDCR защищен от записи после ресета, бит DBP в регистре PWR_CR. Это учтено?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 22:51 
Заглядывает иногда

Зарегистрирован: 17 дек 2018, 13:49
Сообщения: 79
LonelyWolf писал(а):
RCC_BDCR защищен от записи после ресета, бит DBP в регистре PWR_CR. Это учтено?

Спасибо, установил данный бит в единицу, тактов нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 23:16 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
SystemEn писал(а):
. Ошибка CMSIS?
]

Настоящий программист привыкает к тому, что первым делом ищет ошибку у себя. Вторым делом еще раз проверяет самого себя.
Нужно еще подать тактирование на модуль PWR, снять защиту записи, в РТС включить режим инита, выбрать источник тактирования, запустить его, установить предделители, подождать завершения операций. Причем, запись в основные регистры РТС тоже защищена ключами (последовательности байтов).

К тому же, от LSI у вас там не особо часы получатся. LSI = 40 кГц с подстройкой в диапазоне 30 - 50 кГц и большой погрешностью, а не четко 32768 Гц.

Show кода


Последний раз редактировалось BusMaster 21 янв 2019, 23:33, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 23:32 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 602
Откуда: Nowhere
Задам попутный вопрос, дабы не плодить темы: бит DBP, его достаточно раз поставить при старте и забыть, или лучше сбрасывать после операций с RTC (надежность и все такое)?
Если второе, то получается, что на каждое прерывание от RTC, чтобы сбросить его флаг (например WUTF), надо дергать еще и DBP бит, что выглядит как-то не очень.
Что думают товарищи гуру?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 23:33 
Заглядывает иногда

Зарегистрирован: 17 дек 2018, 13:49
Сообщения: 79
BusMaster писал(а):
SystemEn писал(а):
. Ошибка CMSIS?
]

Настоящий программист привыкает к тому, что первым делом ищет ошибку у себя. Вторым делом еще раз проверяет самого себя.
Нужно еще подать тактирование на модуль PWR, снять защиту записи, в РТС включить режим инита, выбрать источник тактирования, запустить его, установить предделители, подождать завершения операций. Причем, запись в основные регистры РТС тоже защищена ключами (последовательности байтов).

К тому же, от LSI у вас там не особо часы получатся. LSI = 40 кГц с подстройкой в диапазоне 30 - 50 кГц и большой погрешностью, а не четко 32768 Гц.

Show кода

Спасибо, попробую:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 21 янв 2019, 23:49 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Изучение работы с RTC охватывает сразу несколько разделов. Задействованы: модуль питания PWR, модуль бэкапа, управление осцилляторами в RCC, ну и сам RTC.
И дабы вообще работа RTC имела какой-то смысл, как независимый отсчет времени, то после запуска МК, прежде чем приступать к любым операциям с RTC, надо проверить бит состояния работы RTC. Если они уже работают, то в них лезть больше не надо.
Ну а на этапе изучения можно это покачто проигнорировать.
Первоначальный запуск РТС начинается всегда с разблокировки выбора источника тактирования РТС. По-умолчанию, выбор заблокирован. Разблокируется методом сброса модуля бэкапа, предварительно включив разрешение на запись в регистры бекапа, а перед этим надо включить тактирование модуля питания PWR. После этого идем в модуль RTC, включаем его, записываем ключ доступа, включаем режим инита, устанавливаем прескалеры, записываем стартовые значения времени и даты, выключем режим инита, выключаем защиту записи RTC, после блогируем запись в бекап (бит защиты записи бекапа DBP), отключаем тактирование PWR (если он нам не нужен больше).
Значения времени будут доступны после появления флага синхронизации.

Бит WUTF не относится к защищаемой области (стоит в исключениях) и для его сброса НЕ нужно разблокировать запись


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 01:52 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 602
Откуда: Nowhere
BusMaster писал(а):
Бит WUTF не относится к защищаемой области (стоит в исключениях) и для его сброса НЕ нужно разблокировать запись
Я тоже так думал, но оказалось, что в моем девайсе (L1 и L4 процы) его не сбросить когда включена защита (DBP бит сброшен). Или я что-то делаю не так?

Например, следующий код работает:
Код:
if (_whether_RTC_should_be_initialized_) {
  PWR->CR1 |= PWR_CR1_DBP; // Enable access
  ... initialize RTC
  PWR->CR1 &= ~PWR_CR1_DBP; // Disable access
}

void RTC_WKUP_IRQHandler(void) {
  PWR->CR1 |= PWR_CR1_DBP; // Enable access
  ... reset WUTF flag
  PWR->CR1 &= ~PWR_CR1_DBP; // Disable access
}
Но если в IRQHandler'е убрать манипуляции с DBP, то флаг сбрасываться перестанет и WKUP прерывание сработает всего раз.

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

Собственно вопрос был в том, надо ли сбрасывать DBP бит после инициализации и настройки RTC, а потом любые манипуляции с RTC или BKPxR регистрами оборачивать в установку/сброс DBP бита.
Добавит ли это какой-нить безопасности девайсу или это пустая лишняя морока и достаточно сделать так:
Код:
PWR->CR1 |= PWR_CR1_DBP; // Enable access
if (_whether_RTC_should_be_initialized_) {
  ... initialize RTC
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 10:44 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
... а можно просто взять настройки RTC после CubeMX. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 20:53 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Пардон за невнимательность, писал в позднее время! Я писал про защиту записи RTC ключом CA53 :)))
Да, конечно же, бит защиты бэкапа и RTC полностью блокирует запись в RTC. И это - нормально! На то защита и придумана, иначе какой толк в ней.
Правилом хорошего тона считается включение защиты бекапа обратно после операций записи в него или в RTC. "Лишние" действия вовсе не лишние, они обеспечивают сохранность данных.
Мало ли как там где-то "везде" пишут. "Везде" пишут еще и так: ожидают запуска LSE ("часовой" кварц) прямо тут же, в блокирующем цикле. А вы знаете, сколько времени запускается "часовой" кварц? Ааа, во-во, 1,5-2 секунды. И на это время при включении всё тупо молчит.
По-хорошему, если кварц используется для часов, то часы все равно первоначально запускаются с нулевыми значениями и требуют переустановки. Поэтому, запускаем LSE в секции настройки частот и спокойно идем дальше, ничего там больше не трогая. А настройку и включение RTC можно сделать либо по прерыванию от готовности LSE, либо по запросу пользователя при первоначальной установке часов через меню пользователя. И тогда при первом включении уже не будет этого тупизма.

Цитата:
if (_whether_RTC_should_be_initialized_) {
... initialize RTC

...а вот вместо вон той переменной можно проверить либо состояние работы часов, либо флаг INITS в регистре ISR. Этот флаг будет установлен, когда календаре значение года = 0.
Примечание. В серии F1xx и ей подобной со старым модулем RTC (который без календаря), отсчет ведется в одном 32-битном счетчике секунд, начиная с нуля. В таком случае, если хотят получить верные значения даты, используют unix-формат времени. И признак установки текущего времени можно определить, считав значение счетчика. Если оно меньше приблизительного значения, актуального на момент разработки устройства (примерно 1'548'000'000), то актуальное текущее время не было установлено.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 21:57 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
BusMaster писал(а):
Пардон за невнимательность, писал в позднее время! Я писал про защиту записи RTC ключом CA53 :)))
Да, конечно же, бит защиты бэкапа и RTC полностью блокирует запись в RTC. И это - нормально! На то защита и придумана, иначе какой толк в ней.
Правилом хорошего тона считается включение защиты бекапа обратно после операций записи в него или в RTC. "Лишние" действия вовсе не лишние, они обеспечивают сохранность данных.
Мало ли как там где-то "везде" пишут. "Везде" пишут еще и так: ожидают запуска LSE ("часовой" кварц) прямо тут же, в блокирующем цикле. А вы знаете, сколько времени запускается "часовой" кварц? Ааа, во-во, 1,5-2 секунды. И на это время при включении всё тупо молчит.
По-хорошему, если кварц используется для часов, то часы все равно первоначально запускаются с нулевыми значениями и требуют переустановки. Поэтому, запускаем LSE в секции настройки частот и спокойно идем дальше, ничего там больше не трогая. А настройку и включение RTC можно сделать либо по прерыванию от готовности LSE, либо по запросу пользователя при первоначальной установке часов через меню пользователя. И тогда при первом включении уже не будет этого тупизма.

Цитата:
if (_whether_RTC_should_be_initialized_) {
... initialize RTC

...а вот вместо вон той переменной можно проверить либо состояние работы часов, либо флаг INITS в регистре ISR. Этот флаг будет установлен, когда календаре значение года = 0.
Примечание. В серии F1xx и ей подобной со старым модулем RTC (который без календаря), отсчет ведется в одном 32-битном счетчике секунд, начиная с нуля. В таком случае, если хотят получить верные значения даты, используют unix-формат времени. И признак установки текущего времени можно определить, считав значение счетчика. Если оно меньше приблизительного значения, актуального на момент разработки устройства (примерно 1'548'000'000), то актуальное текущее время не было установлено.



ВОТ!
Сколько всего я избежал и пропустил!
У меня все эти годы была только одна проблема с RTC - помыть плату после припайки кварца 32768. :-)
Иначе LSE не запускался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 22:28 
Заглядывает иногда

Зарегистрирован: 17 дек 2018, 13:49
Сообщения: 79
BusMaster писал(а):
SystemEn писал(а):
. Ошибка CMSIS?
]


Show кода


RTC так и не получилось запустить. Перечитал весь раздел посвященный к PWR, собственно информацию дублируется кодом в споллере.

В чем собственно проблема, мне лично не понятна.
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 22:31 
Заглядывает иногда

Зарегистрирован: 17 дек 2018, 13:49
Сообщения: 79
Цитата:
ВОТ!
Сколько всего я избежал и пропустил!
У меня все эти годы была только одна проблема с RTC - помыть плату после припайки кварца 32768. :-)
Иначе LSE не запускался.

Я думаю, любой нормальный человек припаял бы низкочастотный кварц. Но на плате discovery его попросту нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 22:57 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 602
Откуда: Nowhere
BusMaster писал(а):
Мало ли как там где-то "везде" пишут.
Ну вот я озадачился вопросом, а не лишняя ли вся эта возня с защитой? Решил посмотреть "как люди делают"... просмотрел много проектов, в том числе и примеры куба от индусов. Нигде никто ни разу не сбросил этот бит, вот и закрались сомнения. Раз гуру говорят, что это хороший тон, значит все было не зря :)
BusMaster писал(а):
...а вот вместо вон той переменной можно проверить либо состояние работы часов, либо флаг INITS в регистре ISR
Это я "псевдокод" нарисовал, в значении "надо ли конфигурить часы". А так использую INITS для определения надо ли устанавливать дату, ну и попутно проверяю что является источником тактирования для часов и настраиваю нужное, если оно не так.

Касаемо проблемы SystemEn:
"PWR->CR = PWR_CR_DBP;" неверно, надо "PWR->CR |= PWR_CR_DBP;"
Какой проц неизвестно, но вроде как на всех биты RTCSEL можно писать только после сброса Backup domain'а.
Для начала можно попробовать делать сброс Backup сразу после установки бита DBP.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 23:20 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
SystemEn, перед переключением источника тактирования RTC, надо выполнить сброс домена бэкапа. Выполняется установкой и последующим снятием бита BDRST в регистре RCC->BDCR. Иначе тактирование просто не включится.
Я же приводил код - разве сложно сделать так же? Там выбор источника в другом куске кода, потому что я просто копирую куски текста из своих файлов.
Код:
     /* Переключение LCD clock на LSI */
      RCC->APB1ENR1 |= RCC_APB1ENR1_PWREN;

      PWR->CR1 |= PWR_CR1_DBP;         // разблокирование записи Backup
      RCC->BDCR |= RCC_BDCR_BDRST;      // сброс Backup-домена
      __NOP();
      RCC->BDCR &= ~RCC_BDCR_BDRST;
      RCC->BDCR |= RCC_BDCR_RTCSEL_1;      // переключение RTC/LCD clock на LSI



Цитата:
Но на плате discovery его попросту нет.

Так можно и припаять ведь - место под установку имеется - 4-ножная площадка. Кварц MC-306 и два кондера по 6,8 pF. И распаять две перемычки.

Цитата:
меня все эти годы была только одна проблема с RTC - помыть плату после припайки кварца 32768.

Это вы наверно с F1 работали - там простой модуль РТС. Зато как расплата за простоту модуля - программная хрень с unix-time, если хотите нормальный календарь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 22 янв 2019, 23:47 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5896
serglg, ты не многое пропустил, упавая на калокуб, а вообще все. Идиотское кредо -натыкаем в калокубе , там все за нас решили , это не прсто тупиковый путь. Это путь ардуино дегенратов...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 09:48 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
SystemEn писал(а):
Цитата:
ВОТ!
Сколько всего я избежал и пропустил!
У меня все эти годы была только одна проблема с RTC - помыть плату после припайки кварца 32768. :-)
Иначе LSE не запускался.

Я думаю, любой нормальный человек припаял бы низкочастотный кварц. Но на плате discovery его попросту нет.


Так я и говорю. В RTC это было единственной проблемой, как и поиск кварцев с малой нагр. емкостью.
Всё остальное - проблем нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 09:51 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
dosikus_2 писал(а):
serglg, ты не многое пропустил, упавая на калокуб, а вообще все. Идиотское кредо -натыкаем в калокубе , там все за нас решили , это не прсто тупиковый путь. Это путь ардуино дегенратов...


"Нельзя объять необъятное" (с)
Как я много раз уже говорил, есть масса задач, которые точно никто кроме меня не решит. Они определяются в ТЗ на само устройство.
И вот бы я тратил силы и время на инициализацию RTC.
Я уже 2 года забыл про него после того, как разобрались с кварцами, припайкой и промывкой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 11:23 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
serglg писал(а):
сть масса задач, которые точно никто кроме меня не решит.

:)))) Вот знаешь, как у нас любят говорить начальники - незаменимых людей не бывает. Отчасти, это правда. Любого человека можно ввести в курс дела, обучить. В том числе, и тех начальников, которые так говорят.
И многие задачи уже где-то когда-то были решены. Отличие только в коэффициентах.
Ну а Куб - это для слабаков :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 14:20 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
BusMaster писал(а):
serglg писал(а):
сть масса задач, которые точно никто кроме меня не решит.

:)))) Вот знаешь, как у нас любят говорить начальники - незаменимых людей не бывает. Отчасти, это правда. Любого человека можно ввести в курс дела, обучить. В том числе, и тех начальников, которые так говорят.
И многие задачи уже где-то когда-то были решены. Отличие только в коэффициентах.
Ну а Куб - это для слабаков :)))


Речь про то, что не надо делать что-то уже сделанное другими.
В Кубе инициализация RTC сделана. Зачем изобретать велосипед?
А (к примеру) индикацию в моем пульте никто кроме меня не сделает. Ну конечно меня можно заменить. :-)
Ну или еще масса уникальных мест в конкретно разрабатываемом приборе, которые никто никогда не делал.
Вот где надо на творчество тратить время.
Ну а так можно себе среду для разработки придумывать (что и делали лет 40 назад).
Или адаптер для отладки (что и сейчас кто-то делает). Да мало ли.
Когда коту делать нечего - сами знаете, чем он занят. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 15:56 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Хорошо. Фильмов про ВОВ уже снято немеряно, но все равно почему то снимают новые, которые похожи по сути на предыдущие. Зачем снимать, если уже было снято? Наверно каждый режиссер надеется снять лучше или с другой стороны.
Ну да, в Кубе инит написан. Но тащить за собой весь многокилобайтный Куб ради одного инита РТС? Ну да, я ж говорю - куб - для трусов. А трус - не играет в хоккей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 18:16 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 551
Откуда: Киев
serglg писал(а):
Ну или еще масса уникальных мест в конкретно разрабатываемом приборе, которые никто никогда не делал. Вот где надо на творчество тратить время.


Можно хоть 1 конкретный пример...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 20:32 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
MasterElectric писал(а):
serglg писал(а):
Ну или еще масса уникальных мест в конкретно разрабатываемом приборе, которые никто никогда не делал. Вот где надо на творчество тратить время.


Можно хоть 1 конкретный пример...


Так и недоделанное зарядное устройство от солнечной панели, которое заряжает индивидуально (индивидуальным током) каждую банку в аккумуляторной батарее. Банок может 2-4-6-8 штук. А панель общая для всех.
Должна быть и балансировка в процессе разряда. Банки - кислотные, 12В, 200 А/часов. Ток заряда до 40 ампер.

Я уж молчу о самых разных приблудах в нашей автозаправочной технике, где постоянно у клиентов то один каприз, то другой. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 23 янв 2019, 20:51 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 504
BusMaster писал(а):
Хорошо. Фильмов про ВОВ уже снято немеряно, но все равно почему то снимают новые, которые похожи по сути на предыдущие. Зачем снимать, если уже было снято? Наверно каждый режиссер надеется снять лучше или с другой стороны.
Ну да, в Кубе инит написан. Но тащить за собой весь многокилобайтный Куб ради одного инита РТС? Ну да, я ж говорю - куб - для трусов. А трус - не играет в хоккей.


Так я б с удовольствием только и занимался, как оттачивал инициализацию и драйвера для разной периферии STM32.
ЕСЛИ БЫ мне за это именно платили.
Но платят почему-то за конкретное законченное устройство, работающее согласно ТЗ. По заданному алгоритму.
И клиентам пофиг красота инициализации RTC. Им главное - чтоб часы тикали. И не сбивались.
И даже если батарейку поменяли, то минимум усилий для восстановления даты/времени.
У меня - минимум. :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RTC. Настройка.
СообщениеДобавлено: 24 янв 2019, 11:25 
Заглядывает иногда

Зарегистрирован: 17 дек 2018, 13:49
Сообщения: 79
Итак, часы так запустить не удалось.
Оказалось, что на официальном сайте есть документация AN3371, хорошо написанная, что дает повод думать о том, что довольно много людей не могут его настроить с первого раза.
Последовательность действий взятой из документации (стр. 5) для установки календаря выполняется четко, но есть нюанс.
1) Ключи безопасности прописываются.
2) Флаг входа в установочный режим не устанавливается.
Код:
   RCC->APB1ENR = RCC_APB1ENR_PWREN; // Power on of RTC.
   PWR->CR = PWR_CR_DBP; // Unlock backup register.   
   RCC->BDCR |= RCC_BDCR_BDRST; // Reset backup domien.
   __NOP();
   RCC->BDCR &= ~ RCC_BDCR_BDRST;
   
   RCC->BDCR = RCC_BDCR_RTCEN | RCC_BDCR_RTCSEL_1; // Clocks RTC. using LSI.
   
   RTC->WPR = 0xCA; // Protection
   RTC->WPR = 0x53; // key
   
   RTC->ISR = RTC_ISR_INIT; // Init mode.
   
   while (!(RTC->ISR & RTC_ISR_INITF)); // No effect.
   
   // Need pfescalers of 1 Hz.d
   
   //RTC->DR = RTC_DR_YT_0 | RTC_DR_YU_0; // No effect.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB