Добрый вечер. 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-ов, конфигурационных файлов и настроек, библиотек уже можно сойти с ума, т.к. на самом деле иногда уже не понятно, как именно поведет себя микроконтроллер, на какую частоту реально настроится и т.д.
Благодарю за внимание!
STM32F4 и PLL
STM32F4 и PLL
Не умеешь - не берись, но не взявшись не научишься...
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32F4 и PLL
в startup есть вызов функции SystemInit, которая находится в файле system_stm32f4xx.c:
Эта функция для настройки тактирования и PLL.
ST раздавала эксель файл, который генерит system_stm32f4xx.c для любой частоты автоматически по указанным вами параметрам. Сейчас эту функцию выполняет STM32Cube initialization code generator.
Все логично и удобно - сходить с ума не надо.
Код: Выделить всё
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0Эта функция для настройки тактирования и PLL.
ST раздавала эксель файл, который генерит system_stm32f4xx.c для любой частоты автоматически по указанным вами параметрам. Сейчас эту функцию выполняет STM32Cube initialization code generator.
Все логично и удобно - сходить с ума не надо.
Re: STM32F4 и PLL
Ага, теперь все встало на свои места. Спасибо! 
Не умеешь - не берись, но не взявшись не научишься...