STM32. Система тактирования и сброса.
Вставка
- Опубліковано 2 бер 2019
- Лектор - Казиахмедов Эдгар.
Сообщество проекта: drec_courses
Репозиторий с материалами курса: github.com/edosedgar/stm32f0_ARM
Приняли участие в создании:
- Филипп Микоян philalala
- Владислав Молодцов molvlad
- Прутьянов Виктор vprutyanov
Снято на базе студии Физтех-Live при поддержке Фонда Целевого Капитала МФТИ. - Наука та технологія
Небольшое добавление по поводу FCLK и HCLK:
FCLK это независимо работающая версия HCLK, то есть тактирование по этой линии не прекращается при переходе в режим сна. Эта линия нужна, чтобы обрабатывать события в режиме сна и будить ядро (так как тактирование ядра идет от линии HCLK)
Это не совсем очевидно исходя из диаграммы (где показано, что FCLK выходит из HCLK), но тем не менее так и есть.
Понятное объяснение
Спасибо за материал!
Хороший урок, эта тема раньше практически не встречалась
Привет! В каком файле определена функция delay()?
Или её руками надо написать через счётчик SysTick?
А как схематически и электрически связан таковый сигнал с сигналами передачи данных?То есть где , в какой части заканчивается тактирование и начинается работа микроконтроллера ? Где это соприкосновение ? Как организовано электрически тактирование на схемах видео не понять , но мне кажется что этот узел находится на транзисторе . Тогда тактирование это подключение к базе или GATE на полярном транзисторе . Эти логические транзисторы объединены в структуры где единицы и нуля превращаются в коды , потом они шифруются или дешифруются . В общем этой части нет в этом уроке
да, нет самого интересного
Добрый день. Почему если не включать и не настраивать HSE и PLL, то регистры HSERDY и PLLRDY всегда стоят в 1, а не в 0? Хотя вроде логично, что они должны быть выставлены в 0, что вроде и показано в RCC register map? Или они становятся в значение 0 только когда например HSE перестает работать и мк автоматически переключается на HSI? Но тогда посему в RCC register map изначально указанно значение 0 данных регистров?
а вы в этом уверены? как вы проверяли?
@@EdosEdgar Спасибо за внимание к вопросу. Проблема решена. Причина была банальная при создании проекта был взят файл стартапа с настройкой тактирования. Банальная оплошность.
Нашёл. LL функция задержки пишется как
LL_mDelay(1000);
4:11 "Частота обязательно делиться на два" - обманываете вы не обязательно. "Частота RC - сильно плавает", насколько сильно и для чего это важно. Ну плавает и плавает и что с того?
Очень просто. Точность HSI в случае stm32f0 это ±5%, теперь посчитайте абсолютное отклонение исходя из вашей частоты, а ещё можете посчитать после умножителей.
Для простого устройства это не критично, но если вы работаете с интерфейсом, для которого критичны тайминги, то тут далеко с HSI вы не пойдете, ну и часы точно идти не будут.
Я думаю человеческая глупость🆔))) _****