реклама на сайте
подробности

 
 
> Не запускается кварцевый генератор на 32768Гц в STML476
serglg
сообщение Aug 18 2016, 06:56
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 146
Регистрация: 19-07-16
Пользователь №: 92 603



Есть ли жесткие требования к резонатору? Резонатор взят с другой платы, работал там с PCF8583.
Питание у меня на Vbat подано.
Емкости - 6,8 пФ (насколько жестко величина здесь?)
Ну и всё.
МК виснет на этапе ожидания запуска LSE (проект после CubeMX, поэтому там задано ожидание запуска).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Aug 18 2016, 10:02
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Я так (STM32F767) делаю:
CODE
static void rtc_stm32f4xx_initialize(void)
{
debug_printf_P(PSTR("rtc_stm32f4xx_initialize\n"));

#if defined(RCC_APB1ENR_RTCEN)
RCC->APB1ENR |= RCC_APB1ENR_PWREN | RCC_APB1ENR_RTCEN; // Включить тактирование
#else /* defined(RCC_APB1ENR_RTCEN) */
RCC->APB1ENR |= RCC_APB1ENR_PWREN /*| RCC_APB1ENR_RTCEN*/; // Включить тактирование
#endif /* defined(RCC_APB1ENR_RTCEN) */

//RCC->APB1ENR |= RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN; // STM32F1xx: Включить тактирование
__DSB();

#if 0

// Sample for STM32F207 from http://electronix.ru/forum/index.php?showt...t&p=1421489

/* PWR */
PWR->CR |= PWR_CR_DBP; // Disable Backup Domain write protection

PWR->CSR =
PWR_CSR_EWUP * 0 | // Enable WKUP pin
PWR_CSR_BRE * 1 | // Backup regulator enable
0;

/* Теперь можно включить НЧ генератор */
RCC->BDCR =
RCC_BDCR_LSEON * 1 | // External low-speed oscillator enable
// RCC_BDCR_LSERDY * 0 |
RCC_BDCR_LSEBYP * 0 | // External low-speed oscillator bypass
RCC_BDCR_RTCSEL_0 * 1 | // RTC clock source selection: LSE
RCC_BDCR_RTCEN * 1 | // RTC clock enable
RCC_BDCR_BDRST * 0 | // Backup domain software reset
0;
#endif


PWR->CR1 |= PWR_CR1_DBP; // Разрешить запись в Backup domain
while ((PWR->CR1 & PWR_CR1_DBP) == 0)
;

#if 1

/* use LSE as clock source 32.768 kHz xtal */
RCC->BDCR = (RCC->BDCR & ~ (RCC_BDCR_LSEDRV /*| RCC_BDCR_RTCSEL*/)) |
3 * RCC_BDCR_LSEDRV_0 |
1 * RCC_BDCR_LSEON |
//1 * RCC_BDCR_RTCSEL_0 |
//1 * RCC_BDCR_RTCEN |
0;

while ((RCC->BDCR & RCC_BDCR_LSERDY) == 0)
;
RCC->BDCR = (RCC->BDCR & ~ (RCC_BDCR_RTCSEL)) |
1 * RCC_BDCR_RTCSEL_0 | /* 01: LSE oscillator clock used as the RTC clock */
0;
RCC->BDCR |= RCC_BDCR_RTCEN; /* RTC clock enabled */

#else

/* test: use LSI as clock source */
RCC->CSR |= RCC_CSR_LSION;
while ((RCC->CSR & RCC_CSR_LSIRDY) == 0)
;
RCC->BDCR = (RCC->BDCR & ~ (RCC_BDCR_RTCSEL)) |
2 * RCC_BDCR_RTCSEL_0 | /* 10: LSI oscillator clock used as the RTC clock */
0;
RCC->BDCR |= RCC_BDCR_RTCEN; /* RTC clock enabled */

#endif

PWR->CR1 &= ~ PWR_CR1_DBP; // Запретить запись в Backup domain


/* Disable the write protection for RTC registers */
RTC->WPR = 0xCA;
RTC->WPR = 0x53;

RTC->CR |= RTC_CR_BYPSHAD;
local_delay_ms(10);
/* Configure the RTC PRER */
RTC->PRER =
((256 - 1) & RTC_PRER_PREDIV_S) |
(((128 - 1) << 16) & RTC_PRER_PREDIV_A) |
0;

/* Enable the write protection for RTC registers */
RTC->WPR = 0xFF;

PWR->CR1 &= ~ PWR_CR1_DBP; // Запретить запись в Backup domain
while ((PWR->CR1 & PWR_CR1_DBP) != 0)
;

/* Установка начальных значений времени и даты */
const uint_fast8_t inits = (RTC->ISR & RTC_ISR_INITS) != 0;
debug_printf_P(PSTR("rtc_stm32f4xx_initialize: INITS=%d\n"), inits);

uint_fast16_t year;
uint_fast8_t month, day;
uint_fast8_t hour, minute, secounds;
stm32f4xx_getdatetime(& year, & month, & day, & hour, & minute, & secounds);

if (inits == 0 || month < 1 || month > 12 || year < 2015 ||
day < 1 || day > 31 ||
hour > 23 || minute > 59 || secounds > 59)
{
board_rtc_settime(23, 59, 0);
board_rtc_setdate(2015, 11, 29);
}
debug_printf_P(PSTR("rtc_stm32f4xx_initialize: done\n"));
}


Сообщение отредактировал Genadi Zawidowski - Aug 18 2016, 10:03
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- serglg   Не запускается кварцевый генератор на 32768Гц в STML476   Aug 18 2016, 06:56
- - KnightIgor   Цитата(serglg @ Aug 18 2016, 07:56) МК ви...   Aug 18 2016, 07:01
- - serglg   спасибо, это проще, сейчас удалю :-)   Aug 18 2016, 07:04
- - amiller   В STM32F достаточно жесткие требования по выбору к...   Aug 18 2016, 08:54
- - serglg   Спасибо. Так хотел с наскока. :-) И кстати удалени...   Aug 18 2016, 09:18
|- - KnightIgor   Цитата(serglg @ Aug 18 2016, 10:18) И кст...   Aug 18 2016, 09:59
- - Genadi Zawidowski   Поставьте максимальное значение (3) в поле LSEDRV ...   Aug 18 2016, 09:57
- - serglg   кварц выводной, старого образца (цилиндр d2мм). Ты...   Aug 19 2016, 02:50
- - serglg   с кварцем KX-327NHT 32.768 всё запустилось. Правда...   Aug 24 2016, 14:25
- - ViKo   Выкиньте кондеры на... Дело не в них, а в питании,...   Aug 24 2016, 18:50
- - serglg   Цитата(ViKo @ Aug 25 2016, 00:50) Выкиньт...   Aug 25 2016, 07:05
- - LightElf   QUOTE (serglg @ Aug 25 2016, 10:05) Беда ...   Aug 25 2016, 08:04
- - serglg   Цитата(LightElf @ Aug 25 2016, 14:04) Для...   Aug 25 2016, 17:10


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016