03.12.2014, 10:15
|
#31
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
|
|
|
|
03.12.2014, 12:17
|
#32
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Это вы недооцениваете русских нищебродов...
100 деталек по 4 цента - это целых 4 бакса экономии, "нафиг покупать новые детальки, я запаяю б/у и на сэкономленные гроши залью целых 5 литров бензина!!!"... Или детальки в упаковках оставят себе, а впаяют что есть... Причём вне зависимости от стоимости точки пайки...
|
|
|
|
03.12.2014, 13:05
|
#33
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Нищеброды бывают не только русскими.
Некоторые в состоянии сосчитать, что только монтаж и мелочёвка дешевле, чем демонтаж и монтаж.
Это для домашнего пользования распай годится, когда стоимость работы не учитывается.
|
|
|
|
03.12.2014, 13:24
|
#34
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Сообщение от vvv998
|
Но речь идет об STM32F407.
Если кто-то ПРОБОВАЛ запустить RTC STM32F407 в режиме LSE (от внешнего кварца) и часы работают нормально, ПОЖАЛУЙСТА, сбросьте код инициализации.
|
Я запускал. Серийно начали выпускать. Обеспечивается точность заявленная в даташите. Работает калибровка. Причём калибровал даже просто по компу. Сбрасываешь калибровку, выжидаешь неделю, определяешь уход за эту неделю (обычно составляет несколько секунд) определяешь частоту ... подкалибровываешь ... ))) Ну это если точного частотомера нет.
Проверял при включенном и выключенном приборе. Проверял при качке, температуре до 60 градусов. Температура практически не влияет.
Инициализация стандартная
Код:
|
// Инициализировать RTC
uint32_t vRTCInit(void)
{
uint32_t status = RTC_OK;
uint32_t synchrostatus = 0x00;
__IO uint32_t synchrocounter = 0;
tmf2_t times;
// Проверить тактирование RTC
if(RCC-›BDCR==0) // Если первый запуск часов
{
// Запустить часовой кварц
__HAL_RCC_LSE_CONFIG(RCC_LSE_ON);
// Ждать готовности
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET);
}
// Проверить разрешение на RTC
if((RCC-›BDCR & RCC_BDCR_RTCEN)==0)
{
// то выбрать источник тактирования
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
// Разрешить тактирование RTC
__HAL_RCC_RTC_ENABLE();
// Дождаться синхронизации
// Wait the registers to be synchronised
do
{
synchrostatus = RTC-›ISR & RTC_ISR_RSF;
synchrocounter++;
} while((synchrocounter ‹ SYNCHRO_TIMEOUT) && (synchrostatus == 0x00));
}
// Проверить установку часов
if(((RTC-›DR››16) & 0xff)==0)
{
// Disable the write protection for RTC registers
RTC-›WPR = 0xCA;
RTC-›WPR = 0x53;
// Set Initialization mode
if (RTC_EnterInitMode() == ERROR)
{
status = RTC_FAIL;
}
else
{
// Set RTC CR COE Bit
RTC-›CR |= (1‹‹RTC_CRBIT_COE);
// Configure the RTC PRER
//RTC-›PRER = (uint32_t)(RTC_InitStruct-›RTC_SynchPrediv);
//RTC-›PRER |= (uint32_t)(RTC_InitStruct-›RTC_AsynchPrediv ‹‹ 16);
// Занести время и дату создания
...
// ввести время
RTC-›TR = *(uint32_t*)×.time;
RTC-›DR = *(uint32_t*)×.date;
// Exit Initialization mode
RTC-›ISR &= (uint32_t)~RTC_ISR_INIT;
// Enable the write protection for RTC registers
RTC-›WPR = 0xFF;
status = RTC_RESTART;
}
}
return (status);
} |
|
|
|
|
03.12.2014, 19:35
|
#35
|
Частый гость
Регистрация: 23.10.2011
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Если хотите высокой точности, тогда подключайте HSE.
|
|
|
|
03.12.2014, 21:28
|
#36
|
Временная регистрация
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Сообщение от Vitaliki
|
Если хотите высокой точности, тогда подключайте HSE.
|
Проблема РЕШЕНА с помощью "makser" на http://forum.easyelectronics.ru.
Он подсказал попробовать библиотеку http://mikrocontroller.bplaced.net/w.../?page_id=1629.
Библиотека у меня есть, но она конфликтовала с моим проектом в IAR , а потом в пылу борьбы с RTC я о ней попросту забыл.
БОЛЬШОЕ СПАСИБО "makser"!
Библиотека http://mikrocontroller.bplaced.net/w.../?page_id=1629 РАБОЧАЯ.
RTC в режиме LSE при частоте кварца 32.769 kHz работает как в ПК.
Проверял в СооСох.
"Притирка" библиотеки к проекту на IAR (у меня конфликтует) - чисто техническая работа.
СПАСИБО ВСЕМ, кто по делу откликнулся на проблему .
|
|
|
|
03.12.2014, 21:34
|
#37
|
Временная регистрация
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Сообщение от SasaVitebsk
|
Я запускал. Серийно начали выпускать. Обеспечивается точность заявленная в даташите. Работает калибровка. Причём калибровал даже просто по компу. Сбрасываешь калибровку, выжидаешь неделю, определяешь уход за эту неделю (обычно составляет несколько секунд) определяешь частоту ... подкалибровываешь ... ))) Ну это если точного частотомера нет.
Проверял при включенном и выключенном приборе. Проверял при качке, температуре до 60 градусов. Температура практически не влияет.
Инициализация стандартная
Код:
|
// Инициализировать RTC
uint32_t vRTCInit(void)
{
uint32_t status = RTC_OK;
uint32_t synchrostatus = 0x00;
__IO uint32_t synchrocounter = 0;
tmf2_t times;
// Проверить тактирование RTC
if(RCC-›BDCR==0) // Если первый запуск часов
{
// Запустить часовой кварц
__HAL_RCC_LSE_CONFIG(RCC_LSE_ON);
// Ждать готовности
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET);
}
// Проверить разрешение на RTC
if((RCC-›BDCR & RCC_BDCR_RTCEN)==0)
{
// то выбрать источник тактирования
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
// Разрешить тактирование RTC
__HAL_RCC_RTC_ENABLE();
// Дождаться синхронизации
// Wait the registers to be synchronised
do
{
synchrostatus = RTC-›ISR & RTC_ISR_RSF;
synchrocounter++;
} while((synchrocounter ‹ SYNCHRO_TIMEOUT) && (synchrostatus == 0x00));
}
// Проверить установку часов
if(((RTC-›DR››16) & 0xff)==0)
{
// Disable the write protection for RTC registers
RTC-›WPR = 0xCA;
RTC-›WPR = 0x53;
// Set Initialization mode
if (RTC_EnterInitMode() == ERROR)
{
status = RTC_FAIL;
}
else
{
// Set RTC CR COE Bit
RTC-›CR |= (1‹‹RTC_CRBIT_COE);
// Configure the RTC PRER
//RTC-›PRER = (uint32_t)(RTC_InitStruct-›RTC_SynchPrediv);
//RTC-›PRER |= (uint32_t)(RTC_InitStruct-›RTC_AsynchPrediv ‹‹ 16);
// Занести время и дату создания
...
// ввести время
RTC-›TR = *(uint32_t*)×.time;
RTC-›DR = *(uint32_t*)×.date;
// Exit Initialization mode
RTC-›ISR &= (uint32_t)~RTC_ISR_INIT;
// Enable the write protection for RTC registers
RTC-›WPR = 0xFF;
status = RTC_RESTART;
}
}
return (status);
} |
|
СПАСИБО "SasaVitebsk"!
Попробую Ваш код инициализации в IAR.
О результате обязательно сообщу.
|
|
|
|
04.12.2014, 11:10
|
#38
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Склероз и ахтунг, день морозный! СТМ виноват, ИАР виноват, RTC просто глючный - жизнь просто яд!
Сообщение от STM32F0
|
Чушь несусветная! Вы не хотите разбираться и подстраивать, а часы не хотят точно идти! Ожидаемая закономерность!
|
|
|
|
|
04.12.2014, 12:48
|
#39
|
Временная регистрация
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Точность RTC STM32F407VG в режиме LSE (внешний кварц 32.768)
Сообщение от STM32F0
|
Склероз и ахтунг, день морозный! СТМ виноват, ИАР виноват, RTC просто глючный - жизнь просто яд!
|
На дурацкие коменты отвечать стыдно.
Насколько крепкие нервы у Модератора.
СПАСИБО "SasaVitebsk"!
Ваш код инициализации действительно работающий.
И ничего не надо подстраивать.
Точности кварцевого генератора от -40 град. хватает.
Нашел попутно и у себя ошибку.
Еще раз СПАСИБО ВСЕМ кто откликнулся ПО ДЕЛУ !
Последний раз редактировалось vvv998; 04.12.2014 в 12:52.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:08.
|
|