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

 
 
 
Reply to this topicStart new topic
> 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
Baser
сообщение Jan 23 2018, 17:26
Сообщение #2


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

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



Еще какое-то время убил, попробовал добавить керамики по питанию ПИКа: было 0.22мк х 2 шт. возле ножек.
Припаял сверху еще по 1мк х 2 шт. Ничего не изменилось.

Причем у меня для отладки на оба УАРТа возле ПИКа припаяны диодные ИЛИ, которые через MAX3232 идут на две терминальные проги на ПК, для логирования обмена. Так вот в логах битых пакетов не наблюдается.

При выключении бита ROI (CLKDIV) и исключительно программном дергании бита DOZEN, при PLL x 4, CPU 1:2 вроде все работало.
А при попытке также сделать при PLL x 4, CPU 1:4 стало глючить так, что совсем не понял что происходит.

Плюнул на все это и сделал статический вариант PLL x 4, CPU 1:2 без переключения DOZEN. Сбоев не наблюдается!

з.ы. на испытуемой плате стоит PIC24F32KA304 первой ревизии А4, на более новых не проверял...
Go to the top of the page
 
+Quote Post
amiller
сообщение Jan 24 2018, 06:17
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 170
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Я бы не рассчитывал на чудеса с самопроизвольной установкой бит по помехам.
А поискал бы в документации особенности данного переключения частоты.
Чисто теоретически могу предполагать, что если изменение тактирования происходит в середине приема байта, то не исключено появление ошибок.
Если это так, то нужна или взаимная синхронизация процессов или корректная отработка ошибочных состояний.
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 24 2018, 22:16
Сообщение #4


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

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



Это специальный режим энергосбережения у PIC24, когда периферия работает на постоянной высокой частоте, а частоту CPU можно кратно снижать (1/2, 1/4 и т.д.) переключая один бит.
Синхронизация при этом не нарушается.
Вся документация это одна страничка в мануале и две странички в аппликейшене, на которые и купился. Расписано все красиво и точно для моего случая.

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

з.ы. сегодня несколько часов гонял последний статический вариант режима - ни одного сбоя.
Go to the top of the page
 
+Quote Post

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

 


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


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