|
[STM32F4xx] Определение рабочей частоты кварца |
|
|
|
 |
Ответов
(1 - 11)
|
Oct 8 2014, 09:45
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Считать значения регистров RCC и вычислить. Цитата(Ivan Kuznetzov @ Oct 8 2014, 15:28)  Добрый день всем! Меня интересует вопрос - возможно ли из прошивки как-то грубо измерить частоту HSE кварца, подключенного к STM32F4, опираясь на HSI? Хм... пока писал ответ, ТС изменил вопрос... Цитата(Ivan Kuznetzov @ Oct 8 2014, 15:28)  Добрый день всем! Меня интересует вопрос - возможно ли из прошивки как-то промерять частоту HSE кварца, подключенного к STM32F4?
|
|
|
|
|
Oct 9 2014, 05:49
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Цитата(jcxz @ Oct 8 2014, 19:17)  Измерить период, опираясь на известный эталон времени (хоть HSI). Потом пересчитать к входной частоте. Только зачем??? Я правильно понимаю, что для измерения потребуется заводить выход MCO на вход какого-нибудь таймера? Или всё-таки это можно сделать по регистрам? Зачем: в проекте могут использоваться разные кварцы - это очень удобно, когда есть решение, позволяющее определить номинал кварца.
--------------------
Разработчик
|
|
|
|
|
Oct 9 2014, 06:48
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Предлагаю посмотреть на clock tree (приложено). Очевидно, что можно RTC тактировать от кварца, а всё остальное - от HSI. Или, например, сделать 48 МГц для I2S из HSI, а остальное тактировать от кварца. И то, и другое позволяет измерить частоту кварца относительно частоты HSI. Наверняка возможны ещё какие-то комбинации.
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 9 2014, 07:10
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Ivan Kuznetzov @ Oct 9 2014, 11:49)  Зачем: в проекте могут использоваться разные кварцы - это очень удобно, когда есть решение, позволяющее определить номинал кварца. А зачем разные? Вы хотите сделать партию одинаковых устройств на тех кварцах (разных), что есть в наличии? Купите пачку одинаковых и не городите гемор. Или Вам разные тактовые нужны? Так для этого кварц менять не нуна, для этого есть PLL. ЗЫ: А можно ещё номинал резисторов подтяжки определять - тоже ведь удобно  Цитата(scifi @ Oct 9 2014, 12:48)  Очевидно, что можно RTC тактировать от кварца, а всё остальное - от HSI. Предполагаю, что Phy USB и Ethernet также должны быть кварцованы.
|
|
|
|
|
Oct 10 2014, 19:14
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Цитата(scifi @ Oct 9 2014, 12:48)  И то, и другое позволяет измерить частоту кварца относительно частоты HSI. Наверняка возможны ещё какие-то комбинации. как измерить-то? чем? можете привести пример кода?
--------------------
Разработчик
|
|
|
|
|
Oct 10 2014, 19:20
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Цитата(Golikov A. @ Oct 11 2014, 01:19)  запустите 2 таймера, один на внутреннем кварце, другой на внешнем, когда один из них отсчитает по прерыванию посмотрите что во 2. Частота внутреннего кварца известна, внешний вычислите. Один таймер внутренний проца, другой RTC Спасибо!
--------------------
Разработчик
|
|
|
|
|
Oct 11 2014, 08:54
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Как-то в одном проекте была проблема с кварцем - что-то глючило, но непонятно. Было подозрение на неверную частоту кварца. Но грубые измерения (осциллограф) показывали полный порядок. Взял GPS-приёмник у которого есть выход 1Гц импульсов, завёл на прерывание GPIO. Померил точно им частоту, нашёл величину ошибки (стабильная величина) и почти сразу-же понял что она == 1/64000. А 64000 - это было значение делителя частоты кварца. Т.е. - при записи делителя в регистр таймера забыл из него вычесть 1.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|