реклама на сайте
подробности

 
 
> [STM32F4xx] Определение рабочей частоты кварца
Ivan Kuznetzov
сообщение Oct 8 2014, 09:28
Сообщение #1


Местный
***

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



Добрый день всем! Меня интересует вопрос - возможно ли из прошивки как-то грубо измерить частоту HSE кварца, подключенного к STM32F4, опираясь на HSI?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 11)
jcxz
сообщение Oct 8 2014, 09:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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?
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Oct 8 2014, 12:34
Сообщение #3


Местный
***

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



Какие регистры необходимо считать? Мне кажется, что так не получится, т.к. в стандартном варианте HSE_VALUE задана константой. Т.е. тут как раз необходимо измерить, опираясь, например, на констатнту HSI (8 МГц)


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 8 2014, 13:17
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Измерить период, опираясь на известный эталон времени (хоть HSI). Потом пересчитать к входной частоте.
Только зачем???
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Oct 9 2014, 05:49
Сообщение #5


Местный
***

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



Цитата(jcxz @ Oct 8 2014, 19:17) *
Измерить период, опираясь на известный эталон времени (хоть HSI). Потом пересчитать к входной частоте.
Только зачем???

Я правильно понимаю, что для измерения потребуется заводить выход MCO на вход какого-нибудь таймера? Или всё-таки это можно сделать по регистрам?
Зачем: в проекте могут использоваться разные кварцы - это очень удобно, когда есть решение, позволяющее определить номинал кварца.


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 9 2014, 06:48
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Предлагаю посмотреть на clock tree (приложено).
Очевидно, что можно RTC тактировать от кварца, а всё остальное - от HSI.
Или, например, сделать 48 МГц для I2S из HSI, а остальное тактировать от кварца.
И то, и другое позволяет измерить частоту кварца относительно частоты HSI. Наверняка возможны ещё какие-то комбинации.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 9 2014, 07:10
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Ivan Kuznetzov @ Oct 9 2014, 11:49) *
Зачем: в проекте могут использоваться разные кварцы - это очень удобно, когда есть решение, позволяющее определить номинал кварца.

А зачем разные? Вы хотите сделать партию одинаковых устройств на тех кварцах (разных), что есть в наличии? Купите пачку одинаковых и не городите гемор.
Или Вам разные тактовые нужны? Так для этого кварц менять не нуна, для этого есть PLL.

ЗЫ: А можно ещё номинал резисторов подтяжки определять - тоже ведь удобно biggrin.gif

Цитата(scifi @ Oct 9 2014, 12:48) *
Очевидно, что можно RTC тактировать от кварца, а всё остальное - от HSI.

Предполагаю, что Phy USB и Ethernet также должны быть кварцованы.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Oct 9 2014, 08:48
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
А зачем разные? Вы хотите сделать партию одинаковых устройств на тех кварцах (разных), что есть в наличии? Купите пачку одинаковых и не городите гемор.


Думаю человек хочет заложиться на все возможные варианты. И написать некого программного монстра, которого в какое устройство не воткни, он там себе быт наладит и работать начнет... Пока что мои опыты в этой области говорят о том что монстра все равно допиливать приходиться. А чем дальше тем он становиться больше, и тем труднее его контролировать. В итоге время настройки становиться существенно больше чем начальная конфигурация с чистого листа...

А потом когда уже почти все работает, меняется проц или семейство, и до свидания мертворожденное существо...
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Oct 10 2014, 19:14
Сообщение #9


Местный
***

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



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


как измерить-то? чем? можете привести пример кода?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Oct 10 2014, 19:19
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



запустите 2 таймера, один на внутреннем кварце, другой на внешнем, когда один из них отсчитает по прерыванию посмотрите что во 2. Частота внутреннего кварца известна, внешний вычислите.
Один таймер внутренний проца, другой RTC
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Oct 10 2014, 19:20
Сообщение #11


Местный
***

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



Цитата(Golikov A. @ Oct 11 2014, 01:19) *
запустите 2 таймера, один на внутреннем кварце, другой на внешнем, когда один из них отсчитает по прерыванию посмотрите что во 2. Частота внутреннего кварца известна, внешний вычислите.
Один таймер внутренний проца, другой RTC

Спасибо!


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 11 2014, 08:54
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Как-то в одном проекте была проблема с кварцем - что-то глючило, но непонятно.
Было подозрение на неверную частоту кварца. Но грубые измерения (осциллограф) показывали
полный порядок.
Взял GPS-приёмник у которого есть выход 1Гц импульсов, завёл на прерывание GPIO.
Померил точно им частоту, нашёл величину ошибки (стабильная величина) и почти сразу-же
понял что она == 1/64000. А 64000 - это было значение делителя частоты кварца.
Т.е. - при записи делителя в регистр таймера забыл из него вычесть 1. laughing.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016