yakuzaa 0 8 октября, 2014 Опубликовано 8 октября, 2014 · Жалоба Добрый день всем! Меня интересует вопрос - возможно ли из прошивки как-то грубо измерить частоту HSE кварца, подключенного к STM32F4, опираясь на HSI? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 8 октября, 2014 Опубликовано 8 октября, 2014 · Жалоба Считать значения регистров RCC и вычислить. Добрый день всем! Меня интересует вопрос - возможно ли из прошивки как-то грубо измерить частоту HSE кварца, подключенного к STM32F4, опираясь на HSI? Хм... пока писал ответ, ТС изменил вопрос... Добрый день всем! Меня интересует вопрос - возможно ли из прошивки как-то промерять частоту HSE кварца, подключенного к STM32F4? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakuzaa 0 8 октября, 2014 Опубликовано 8 октября, 2014 · Жалоба Какие регистры необходимо считать? Мне кажется, что так не получится, т.к. в стандартном варианте HSE_VALUE задана константой. Т.е. тут как раз необходимо измерить, опираясь, например, на констатнту HSI (8 МГц) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 8 октября, 2014 Опубликовано 8 октября, 2014 · Жалоба Измерить период, опираясь на известный эталон времени (хоть HSI). Потом пересчитать к входной частоте. Только зачем??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakuzaa 0 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба Измерить период, опираясь на известный эталон времени (хоть HSI). Потом пересчитать к входной частоте. Только зачем??? Я правильно понимаю, что для измерения потребуется заводить выход MCO на вход какого-нибудь таймера? Или всё-таки это можно сделать по регистрам? Зачем: в проекте могут использоваться разные кварцы - это очень удобно, когда есть решение, позволяющее определить номинал кварца. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба Предлагаю посмотреть на clock tree (приложено). Очевидно, что можно RTC тактировать от кварца, а всё остальное - от HSI. Или, например, сделать 48 МГц для I2S из HSI, а остальное тактировать от кварца. И то, и другое позволяет измерить частоту кварца относительно частоты HSI. Наверняка возможны ещё какие-то комбинации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба Зачем: в проекте могут использоваться разные кварцы - это очень удобно, когда есть решение, позволяющее определить номинал кварца. А зачем разные? Вы хотите сделать партию одинаковых устройств на тех кварцах (разных), что есть в наличии? Купите пачку одинаковых и не городите гемор. Или Вам разные тактовые нужны? Так для этого кварц менять не нуна, для этого есть PLL. ЗЫ: А можно ещё номинал резисторов подтяжки определять - тоже ведь удобно Очевидно, что можно RTC тактировать от кварца, а всё остальное - от HSI. Предполагаю, что Phy USB и Ethernet также должны быть кварцованы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба А зачем разные? Вы хотите сделать партию одинаковых устройств на тех кварцах (разных), что есть в наличии? Купите пачку одинаковых и не городите гемор. Думаю человек хочет заложиться на все возможные варианты. И написать некого программного монстра, которого в какое устройство не воткни, он там себе быт наладит и работать начнет... Пока что мои опыты в этой области говорят о том что монстра все равно допиливать приходиться. А чем дальше тем он становиться больше, и тем труднее его контролировать. В итоге время настройки становиться существенно больше чем начальная конфигурация с чистого листа... А потом когда уже почти все работает, меняется проц или семейство, и до свидания мертворожденное существо... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakuzaa 0 10 октября, 2014 Опубликовано 10 октября, 2014 · Жалоба И то, и другое позволяет измерить частоту кварца относительно частоты HSI. Наверняка возможны ещё какие-то комбинации. как измерить-то? чем? можете привести пример кода? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 10 октября, 2014 Опубликовано 10 октября, 2014 · Жалоба запустите 2 таймера, один на внутреннем кварце, другой на внешнем, когда один из них отсчитает по прерыванию посмотрите что во 2. Частота внутреннего кварца известна, внешний вычислите. Один таймер внутренний проца, другой RTC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakuzaa 0 10 октября, 2014 Опубликовано 10 октября, 2014 · Жалоба запустите 2 таймера, один на внутреннем кварце, другой на внешнем, когда один из них отсчитает по прерыванию посмотрите что во 2. Частота внутреннего кварца известна, внешний вычислите. Один таймер внутренний проца, другой RTC Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 11 октября, 2014 Опубликовано 11 октября, 2014 · Жалоба Как-то в одном проекте была проблема с кварцем - что-то глючило, но непонятно. Было подозрение на неверную частоту кварца. Но грубые измерения (осциллограф) показывали полный порядок. Взял GPS-приёмник у которого есть выход 1Гц импульсов, завёл на прерывание GPIO. Померил точно им частоту, нашёл величину ошибки (стабильная величина) и почти сразу-же понял что она == 1/64000. А 64000 - это было значение делителя частоты кварца. Т.е. - при записи делителя в регистр таймера забыл из него вычесть 1. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться