Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32L1xx... калибровка HSI. Непонятный глюк.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Budek
Доброго времени всем!
Решил я замахнуться на STM и почти сразу же отказаться от кварца (оставив только часовой).
Вроде изучил AN3300, ее firmware (на основе чего и запускаю кусок в своем проекте).
Но тут заметил, что при записи калибровочных бит HSITRIM в регистр RCC_ICSCR почему то изменяются ReadOnly биты HSICAL.
Мои конкретные данные:
После сброса читаю регистр... - 0x006EB073
Пытаюсь записать (в биты 8-12) значение 0x0C (двумя вариантами):
а) буржуйской функцией RCC_AdjustHSICalibrationValue(0x0C);
б) просто строкой RCC->ICSCR = 0x006EAC73;
при любой попытке читаю регистр:... 0x006E0C6F
Как вообще такое возможно?
Fedor
Цитата(Budek @ Oct 12 2012, 22:48) *
Доброго времени всем!
Решил я замахнуться на STM и почти сразу же отказаться от кварца (оставив только часовой).
Вроде изучил AN3300, ее firmware (на основе чего и запускаю кусок в своем проекте).
Но тут заметил, что при записи калибровочных бит HSITRIM в регистр RCC_ICSCR почему то изменяются ReadOnly биты HSICAL.
Мои конкретные данные:
После сброса читаю регистр... - 0x006EB073
Пытаюсь записать (в биты 8-12) значение 0x0C (двумя вариантами):
а) буржуйской функцией RCC_AdjustHSICalibrationValue(0x0C);
б) просто строкой RCC->ICSCR = 0x006EAC73;
при любой попытке читаю регистр:... 0x006E0C6F
Как вообще такое возможно?

Привет
а ты дождался
The HSIRDY flag in the RCC_CR indicates wether the HSI oscillator is stable or not. At
startup, the HSI RC output clock is not released until this bit is set by hardware.
?
стр 88/809
Doc ID 15965 Rev 5
Budek
Не совсем понял... Какая связь? Я просто читаю регистр, в котором есть биты только для чтения. Но они почему то изменились...
Fedor
Цитата(Budek @ Oct 14 2012, 12:05) *
Не совсем понял... Какая связь? Я просто читаю регистр, в котором есть биты только для чтения. Но они почему то изменились...

Было предположение, что не дождался процесса окончания калибровки, то бишь стабильной работы генератора от HSI.



Цитата(Budek @ Oct 14 2012, 12:05) *
Не совсем понял... Какая связь? Я просто читаю регистр, в котором есть биты только для чтения. Но они почему то изменились...

Еще как вариант из того же аппнота

For the MSI oscillator, the calibration value is loaded in the MSICAL[7:0] bits after reset.
Eight trimming bits MSITRIM[7:0] are used giving a wide tuning range. The calibration
is based on adding the default MSICAL[7:0] bits (reset value) to the MSITRIM[7:0] bits.
The result is stored in MSICAL[7:0]:



Гугл дает перевод следующий

ля MSI генератор, калибровки значение загружается в MSICAL [7:0] бита после сброса.
Восемь обрезки бит MSITRIM [7:0] используются предоставляя широкий диапазон перестройки.калибровка
основан на добавлении по умолчанию MSICAL [7:0] биты (сброс значения) MSITRIM [7:0] биты.
Результат сохраняется в MSICAL [7:0]:
Doc ID 18148 Rev 2
7/28


Т.е. вроде как бы логично, когда пишешь в калибровочный трим регистр число обрабатывается и перезаписывается в MSICAL.
Хотя по твоему примеру значение в MSICAL должно быть другим, поэтому как раз может и надо дождаться процесса окончания калибровки.
Budek
В firmware от st вообще все примитивно...
Подгон частоты осуществляется записью в трим-биты всех возможных значений и выборе лучшего.
При записи нового значения даже ничего более не делается... Хотя даже мне кажется, что по идее после каждого изменения "подгонки" надо рестартануть HSI...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.