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

 
 
> STM32L151 MSI переключение частот, Делюсь наблидениями.
MiklPolikov
сообщение Jun 15 2012, 22:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Делюсь наблюдениями :

Изменять частоту генератора MSI надо так
Код
int RCC_ICSCR_MASK;

RCC_ICSCR_MASK=RCC->ICSCR;
RCC_ICSCR_MASK&=~RCC_ICSCR_MSIRANGE;
RCC_ICSCR_MASK|=RCC_ICSCR_MSIRANGE_64KHz;
RCC->ICSCR=RCC_ICSCR_MASK;


Т.е сначала копировать весь регистр в переменную, изменять биты в переменной, и потом копировать обратно.

Если менять биты прямо в регистре , даже если при этом недопустимых комбинаций битов не образуется, и даже если в это время
от MSI ничего не тактируется, возникают удивительные глюки :
У меня , при выполении условия : вышли из спящего режима + изменили частоту MSI глохнет генератор LSE !
Причём глохнет он на строчке
RCC->ICSCR|=RCC_ICSCR_MSIRANGE_64KHz; // RCC_ICSCR_MSIRANGE_64KHz==0 !

C битами SW в CFGR наблюдаю в точности такую же ситуацию. Если после выхода из спячки переключать
биты в самом регистре RCC_CFGR то LSE глохнет, бит LSERDY сбрасывается.

Очень долго и мучительно отлавливал глюк : у меня программа всё время переключает частоты и входит/выходит из спящего режима.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:20
Рейтинг@Mail.ru


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