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

 
 
> PIC24F сбои UART-ов при переключении режима DOZE, Т.е. при динамическом переключении частоты CPU
Baser
сообщение Jan 21 2018, 15:07
Сообщение #1


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Не сталкивался ли кто с таким эффектом, что при применении режима DOZE с динамическом переключении частоты CPU, начинают глючить UART-ы на прием.
Т.е. при включении бита ROI (CLKDIV): Recover on Interrupt bit, который автоматически увеличивает частоту CPU при вхождении в прерывание,
или при ручном вкл/выкл бита DOZEN (CLKDIV): Doze Enable bit, который меняет частоту CPU там, где хочется обработать функцию побыстрее.

Сбои выглядят так, что случайным образом при приеме взводятся биты ошибок приема Frame Err и Overrun Err
При этом софт бракует принятый пакет и обмен рушится.

Немного подробностей:
PIC24F32KA304 работал на кварце 7.3728 МГц
Два UART-а на 115.2 кбит/с, загрузка не слишком большая, несколько пакетов в секунду.
Такой вариант выпускался несколько лет сотнями, проблем не было.

Решил я ускорить обработку, запустил PLL x 4. На этой частоте работает периферия. CPU можно включать на кратной пониженной частоте.
Так вот, при статическом режиме, когда я не переключаю на ходу делители, все работает стабильно:
Fosc=7.3728 МГц, PLL x 4, CPU 1:1 или 1:2 или 1:4

Как только начинаю динамически переключать тактирование CPU 1:1/1:2 или 1:1/1:4 - работа UART-ов рушиться.
Причем все остальное вроде работает, средние токи потребления PIC24F32KA304 соответствуют выставляемым делителям.
Такое впечатление, что из-за скачков потребления самопроизвольно взводятся флаги ошибок.

В Errate ничего не нашел...
Go to the top of the page
 
+Quote Post



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

 


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


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