Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-дек-14 15:58

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: часы RTC не идут
СообщениеДобавлено: 2014-ноя-17 15:57 
Не в сети

Зарегистрирован: 2011-сен-19 08:43
Сообщения: 25
Здравствуйте.
Если устанавливать бит RTC_Enable под отладчиком то часики прекрасно функционируют, а вот ести снять питание с батарейного домена, потом подключить,
и програмно установить бит RTC_Enable, то часы не стартую. Это нормально?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-17 16:03 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1271
Откуда: АО "ПКК Миландр"
markinvv писал(а):
Здравствуйте.
Если устанавливать бит RTC_Enable под отладчиком то часики прекрасно функционируют, а вот ести снять питание с батарейного домена, потом подключить,
и програмно установить бит RTC_Enable, то часы не стартую. Это нормально?


Проверяется ли флаг MDR_BKP->RTC_CS. WEC при инициализации RTC ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-17 16:14 
Не в сети

Зарегистрирован: 2011-сен-19 08:43
Сообщения: 25
Да, перед каждой записью стоит while((BKP-RTC_CS &(1<<6) !=0)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-24 13:22 
Не в сети

Зарегистрирован: 2011-сен-19 08:43
Сообщения: 25
С часами разобрались: вот таким кодом
Код:
do{
while((BKP->RTC_CS &(1<<6) !=0)
BKP->REG_0F |= 0x10;
}while((BKP->RTC_0F & 0x10) ==0)


Иногда бит устанавливается с 43 попытки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-24 21:06 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1271
Откуда: АО "ПКК Миландр"
markinvv писал(а):
С часами разобрались: вот таким кодом
Код:
do{
while((BKP->RTC_CS &(1<<6) !=0)
BKP->REG_0F |= 0x10;
}while((BKP->RTC_0F & 0x10) ==0)


Иногда бит устанавливается с 43 попытки.
Попробуйте после записи 1 в RTC_EN просто дождаться когда он взведется (без записей). Если так, то подробней распишу, просто сейчас нет времени самому проверять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-25 09:35 
Не в сети

Зарегистрирован: 2011-сен-19 08:43
Сообщения: 25
Да, такой код ведет себя также
Код:
while((BKP->RTC_CS &(1<<6) !=0)
BKP->REG_0F |= 0x10;

do{

}while((BKP->RTC_0F & 0x10) ==0)


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

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1271
Откуда: АО "ПКК Миландр"
markinvv писал(а):
Да, такой код ведет себя также
Код:
while((BKP->RTC_CS &(1<<6) !=0)
BKP->REG_0F |= 0x10;

do{

}while((BKP->RTC_0F & 0x10) ==0)


Часы запускаются сразу после записи RTCEN, но бит который читается, это не совсем бит RTCEN который записали, это еще и флаг, что часы реально запустились. А этот флаг взводится только после первого фронта тактирования часов. А так как часы работают на малой частоте, то после записи возникает пауза от момента записи до первого фронта рабочей частоты часов, пока бит RTCEN будет читаться как ноль.
Т.е. этот цикл

Код:
do{
}while((BKP->RTC_0F & 0x10) ==0)


Это ожидание первого такта работы часов, после которого часы реально пошли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-25 15:01 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1036
Откуда: Тула
вот так вот форум превращается в кладезь отличий и особенностей...

ЗЫ:
Цитата:
но бит который читается, это не совсем бит RTCEN который записали

так и вспоминается картинка "нельзя так просто взять, и..." :lol:

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-25 15:10 
Не в сети

Зарегистрирован: 2011-сен-19 08:43
Сообщения: 25
Цитата:
Часы запускаются сразу после записи RTCEN, но бит который читается, это не совсем бит RTCEN который записали, это еще и флаг, что часы реально запустились.

Так вот если не ждать в цикле установки бита RTCEN то часы не запускаются .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-25 16:10 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1271
Откуда: АО "ПКК Миландр"
markinvv писал(а):
Цитата:
Часы запускаются сразу после записи RTCEN, но бит который читается, это не совсем бит RTCEN который записали, это еще и флаг, что часы реально запустились.

Так вот если не ждать в цикле установки бита RTCEN то часы не запускаются .


А вот тут несовсем понятно, нет ли у вас после этого еще одной операции чтения-модификации-записи регистра BKP_0F ? при котором вы считываете 0 на месте RTCEN еще не запущенных часов, и записываете его обратно нулем, выключая ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: часы RTC не идут
СообщениеДобавлено: 2014-ноя-25 17:00 
Не в сети

Зарегистрирован: 2011-сен-19 08:43
Сообщения: 25
Действительно, так и есть


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

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


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

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


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB