0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 6
|
|
1 | |
Тактирование от HSE через PLL.30.11.2014, 18:59. Показов 6114. Ответов 2
Метки нет Все метки)
(
Добрый день, граждане!
При попытке перейти на использование внешнего кварца, словил проблему. Использую кварц на 12 Мгц, на входе в PLL делю его на 3, далее помнажаю, делю на шины и тд и тп. Код
RCC->CFGR &= ~RCC_CR_PLLON; RCC->CR =RCC_CR_HSEON|RCC_CR_CSSON; //включение работы от внешнего кварца, и включение защиты от его падения. while (!(RCC->CR & RCC_CR_HSERDY) ) {} // ждём стабилизации частоты RCC->CFGR2 = RCC_CFGR2_PREDIV1_DIV3; // Коэффициент деления частоты кварца на входе в PLL = 3 RCC->CFGR |= RCC_CFGR_SW_PLL|RCC_CFGR_HPRE_DIV2|RCC_CFGR_PPRE1_DIV8|RCC_CFGR_PPRE2_DIV4|RCC_CFGR_PLLMULL4|RCC_CFGR_PLLXTPRE_PREDIV1|RCC_CFGR_PLLSRC_PREDIV1; RCC->CFGR |= RCC_CFGR_MCO_HSE; /* По порядку PLL selected as system clock AHB = SYSCLK/2 AHB1 = (AHB\8)= 1 MHz. Timers clock = AHB1*2 = 2 MHz AHB2 = (AHB\4) = 2 MHz PLL_IN=HSE/4= 4 MHz Clock 4 MHz не делится на 2 перед попаданием на PLL PREDIV в качестве источника для PLL На выход MCO поступает сигнал HSE */ RCC->CFGR |= RCC_CR_PLLON; while (!(RCC->CR & RCC_CR_PLLRDY) ) {} RCC->APB2ENR=(RCC_APB2ENR_IOPAEN|RCC_APB2ENR_IOPBEN|RCC_APB2ENR_IOPCEN|RCC_APB2ENR_ADC1EN|RCC_APB2ENR_AFIOEN); // На второй шине врубаем тактирование всех портов,и альтернативные функции. RCC->APB1ENR=RCC_APB1ENR_TIM2EN;// врубаем тактирование таймера 2. Согласно документации делать он этого не должен (стр.130 usir manual). Вручную он скидываться тоже не захотел(первая строчка моего кода). У меня есть определенные сомнения относительно файлика начальной инициализации system_stm32f10x. В нём дохера чего выставляется, в том числе и включается PLLON. При попытке его изменить, Keil перестал "ходить" в симуляции. Извините что так много букв, прошу помощи. Камень: пинбордовский STM32f103c8 Keil 4.73
0
|
|
30.11.2014, 18:59 | |
Ответы с готовыми решениями:
2
Тактирование от PLL по HSI SYSCLK = HSE -> PLL = HSI помогите с тактированием при CSS |
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
|
|
30.11.2014, 19:42 | 2 |
Посмотри тут http://forum.iosyitistromyss.r... 35&t=19943 как правильно настраивать нужно!
0
|
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 6
|
|
11.12.2014, 17:51 | 3 |
wypuk, спасибо!
Я только сейчас вернулся к решению этой проблемы, сделал всё как было указано в теме, всё заработало кроме делителя PREDIV1 (как раз чтобы на вход PLL подать поменьше частоту). Есть какие-то особенности его использования? Да и вообще с регистром RCC_CFGR2 какие-то сомнения у меня. Его хрен где отследишь в симуляции, и похоже что он вообще как-то залочен и не изменяется.
0
|
11.12.2014, 17:51 | |
11.12.2014, 17:51 | |
Помогаю со студенческими работами здесь
3
Тактирование через NPN транзистор. STM32F100 HSE Проблемы с HSE stm32 hsi/hse STM32 HSE Кварцевый резонатор устойчивость Автоматическое определение частоты внешнего HSE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |