STM32F4 и PLL

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

STM32F4 и PLL

Сообщение Arlleex »

Добрый вечер. STM32F407, как и все остальные STM32, стартует на внутреннем генераторе HSI.
Каким образом переключаться на HSE или включить PLL? Это из main делать, или это делают startup файлы?
Когда мы создаем проект (среда Keil), в разделе Target вкладки Flash/Configure Flash Tools есть поле Xtal (MHz). На что влияет это поле?
В файле stm32f4xx.h тоже есть #define HSE_VALUE и HSI_VALUE. А эти на что влияют?
Т.е. фактически есть 2 различных определения - в самой среде и в конфигурационных файлах. Какие именно за что отвечают?
И опять же, сейчас контроллер работает на частоте 8 МГц (плата STM32F4-Discovery), т.к. на плате установлен кристалл на эту частоту (и в файле stm32f4xx.h я подправил HSE_VALUE на 8000000). По умолчанию STM32F4 стартует на внутреннем HSI частотой 16 МГц. Однако судя по всему startup файлы настраивают микроконтроллер на синхронизацию от HSI и он начинает работать действительно на 8 МГц. Дальше куда двигаться, чтобы настроить PLL на 168 МГц?

P.S. От этих startup-ов, конфигурационных файлов и настроек, библиотек уже можно сойти с ума, т.к. на самом деле иногда уже не понятно, как именно поведет себя микроконтроллер, на какую частоту реально настроится и т.д.
Благодарю за внимание!
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32F4 и PLL

Сообщение oleg110592 »

в startup есть вызов функции SystemInit, которая находится в файле system_stm32f4xx.c:

Код: Выделить всё

                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0

Эта функция для настройки тактирования и PLL.
ST раздавала эксель файл, который генерит system_stm32f4xx.c для любой частоты автоматически по указанным вами параметрам. Сейчас эту функцию выполняет STM32Cube initialization code generator.
Все логично и удобно - сходить с ума не надо.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Re: STM32F4 и PLL

Сообщение Arlleex »

Ага, теперь все встало на свои места. Спасибо! :)
Не умеешь - не берись, но не взявшись не научишься...
Ответить

Вернуться в «ARM»