Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cortex M3 - определить частоту кварца
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
toweroff
Озадачился тут вот какой идеей. Делается некий универсальный бутлоадер, хотелось бы вкручивать его в различные по назначению устройства. Кварцы там могут быть разные по частоте
Чтобы не подправлять сам бут, пытаюсь оценить возможность самостоятельного определения частоты применяемого кварца.
В общем-то не до килогерц, конечно. Могут применяться 6, 8, 12, 16, 24 МГц. Пока идея только в определении времени выполнения некоего эталонного кода по таймеру, затактированному от внутреннего RC
Линейка частот кварцев вполне позволяет с хорошей точностью определить частоту.
Или есть какое-то другое решение? Но, посмотрев на схему тактирования, ничего другого в голову не приходит - источники тактирования заводятся на вход мультиплексора и более никак не участвуют. Т.е. нет там раздельных доменов, которые могли бы тактироваться от разных источников, поэтому определить частоту тактирования можно только программно, отталкиваясь от заведомо известной частоты RC (пусть и +/- 1%)

Или я ошибаюсь?

Или вообще овчинка выделки не стоит и подправить и перекомпилить бут гораздо проще biggrin.gif
SII
Можно затактировать от внешнего кварца какой-то из таймеров, а не пытаться выполнять некий код. Ну а потом сравнить, сколько натикало на RTC (от кварца на 32768 Гц, если он есть, или от внутренней RC-цепочки -- она, если память не изменяет, около 37 кГц даёт) и сколько -- на этом таймере.
toweroff
Цитата(SII @ Mar 13 2015, 15:34) *
Можно затактировать от внешнего кварца какой-то из таймеров, а не пытаться выполнять некий код. Ну а потом сравнить, сколько натикало на RTC (от кварца на 32768 Гц, если он есть, или от внутренней RC-цепочки -- она, если память не изменяет, около 37 кГц даёт) и сколько -- на этом таймере.

в том-то и дело, что источник тактирования один! он выбирается через регистр CLKSRCSEL (значащие биты 1:0, соответственно 00- RC, 01- кварц, 10- RTC)
вся периферия тактируется от этого источника (возможно - через PLL)

Есть еще WDT_CLK, у него источник RC или RTC, или USB, у которого источник кварц или уже общий PCLK

Надо посмотреть WDT, что там с его таймером, возможно ли его использовать

В любом случае, навешивать специально какие-то генераторы на таймеры не хочется, необходимо обойтись "набортной" периферией
toweroff
Вот такие у меня результаты получились...

1% trimmed RC oscillator - это брехня. Порядка 2-3%, так точнее
Погрел немного контроллер до 50-60 градусов - погрешность упала до 0.5-0.3%
Надо попробовать в морозилку запихать, посмотреть как там при низких температурах будет

Т.к. результат получается больше, чем частота кварца, то частота RC больше заявленной 4МГц при комнатной и комнатной+ температуре
К сожалению, в наличии есть только одна плата с контроллером, проверить с разными кристаллами нет возможности

UPD

Извините, сам баран или RTFM
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.