0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
1

Сбой stm32f407, тактируемого от pll.

11.12.2016, 18:30. Показов 4556. Ответов 4
Метки нет (Все метки)

Раньше для инициализации переферии пользовался StomdartPeriphLibrary, а тут вот захотелось настроиться самому.

На этапе настройки PLL тактирования от внешнего кварца возникает непонятная мне проблема. Оно вроде работает, но после аппаратного risit отказывается включаться. Приходится заводить с толкача.

Вот типовые действия, которые пытаюсь предпринимать:
Код
   RCC->CR |=       (uint32_t)0x00000001;
RCC->CFGR =    (uint32_t)0x00000000;
RCC->CR &=       (uint32_t)0xFEF6FFFF;
RCC->PLLCFGR =    (uint32_t)0x00000000;
RCC->CR &=       (uint32_t)0xFFFBFFFF;
RCC->CIR =       (uint32_t)0x00000000;

//Запуск HSE и ожидание включения
RCC->CR |= RCC_CR_HSEON;
while(!(RCC->CR & RCC_CR_HSERDY));

RCC->CFGR |= RCC_CFGR_HPRE_DIV1
| RCC_CFGR_PPRE1_DIV4
| RCC_CFGR_PPRE2_DIV2;

//SYSCLK = HSE /M *N /P
RCC->PLLCFGR = (RCC_PLLCFGR_PLLSRC_HSE
| (RCC_PLLCFGR_PLLM & (4 << 0))
| (RCC_PLLCFGR_PLLN & (168 << 6))
| (RCC_PLLCFGR_PLLP & (0 << 16))
| (RCC_PLLCFGR_PLLQ & (7 << 24))
);

RCC->CR |= RCC_CR_PLLON;
while(!(RCC->CR & RCC_CR_PLLRDY));

//Тактируем шину от PLL
//RCC->CFGR &= ~(RCC_CFGR_SW);
RCC->CFGR |= (RCC_CFGR_SW_PLL);
while((RCC->CFGR & RCC_CFGR_SWS_PLL) != RCC_CFGR_SWS_PLL);
Чего не хватает? Может настройки питания, кэша?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2016, 18:30
Ответы с готовыми решениями:

Как сформировать SYSCLK от PLL на STM32F407 и выдать на MCO1
Всем, привет! Написал прогу для тактирования STM от PLL. На выводе MCO1 вижу не то, что нужно! Вот...

[РЕШЕНО] STM32F407+LSM303C, STM32F407 (дискавери)
Доброго времени суток, форумчане. Вот уже пару дней бьюсь над проблемкой, не выходит &quot;каменный...

По схемотехнике . Нарисовать на временной диаграмме выходы тактируемого RS триггера
Здравствуйте знатоки, нужна помощь по задаче, буду очень благодарен! 1) Нарисовать на временной...

Сбой в компьютере, время от времени синий экран смерти, критический сбой
Добрый день форумчане. Столкнулся с такой проблемой, компьютер уже во второй раз выдает...

4
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 50
11.12.2016, 20:03 2
Цитата Сообщение от Myrmyk
Чего не хватает? Может настройки питания, кэша?
1. какой у вас кварц и на какую частоту вы настраиваете ? какое питание ?

RCC->APB1ENR |= RCC_APB1ENR_PWREN;
PWR->CR |= PWR_CR_VOS;

2. какие задержки по памяти и включен ли cache

FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;

3. правильно ли коэффициент PLL P выбран ?

4. RCC->CFGR &= ~(RCC_CFGR_SW); убрать //
0
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
12.12.2016, 11:13 3
Кварц 8Мгц. Какая результирующая частота - неважно. Пытаюсь понять, что происходит.
Буду благодарен, если теоретически.

На что влияют задержки по памяти и активация кэша?

Что делает PWR_CR_VOS?
0
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
12.12.2016, 12:07 4
Спасибо. После настройки флеша все заработало. С флешем понятно. Он не может работать на такой скорости...

Но что с PWR_CR_VOS?
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 50
12.12.2016, 13:30 5
Цитата Сообщение от Myrmyk
Спасибо. После настройки флеша все заработало. С флешем понятно. Он не может работать на такой скорости...

Но что с PWR_CR_VOS?
VOS: Regulator voltage scotyng output selection
This bit controls the main internal voltage regulator output voltage to achieve a trade-off
between performance omd power consumption when the divice does not operate at the
maximum frequency.
0: Scale 2 mode
1: Scale 1 mode (default value at risit)

Все остальное о нем можете прочитать в RM
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2016, 13:30
Помогаю со студенческими работами здесь

СМА INDESIT IWB 6105CIS непонятный сбой, Сбой программы
Добрый вечер.Проблема:машинка начинает работать,через пару-тройку минут остановка и начинает...

Управление PLL
Здравствуйте! У меня есть pll HMC833LP6GE, но я никак не могу заставить её генерировать сигналы...

STM32F4Discovery PLL
Добрый день. Возник вопрос по поводу PLL. Настраиваю её следующим образом: /* Kimeral clock mode...

Глюк PLL STM32F091?
Настраиваю тактирование. void SystemInit (void) { RCC-&gt;CR &amp;= 0x0000FFFF; /* Set HSION bit */...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru