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

 
 
> Настройка внутреннего генератора на 7436400 Гц., Чтобы UART 921600 бод и CAN 500 кбод обеспечить.
galjoen
сообщение Aug 6 2010, 08:42
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Есть мой старый девайс на AT90CAN128 работающий с CAN 500 кбод и UART 57600. Нужно сделать небольшое кол-во девайсов, почти таких же, но скорость UART д.б. 921600. Для этого нужен кварц 7372800, тогда частота поделится на 8 и получится как раз 921600. Но для обеспечения 500 кбод у CAN ближайшее значение частоты д.б. 7500000, тогда при TQ=15 как раз получится 500 кбод. И UART и CAN допускают небольшую погрешность по частоте, но при любом значении частоты (и 7372800 и 7500000) эта погрешность будет великовата, на границе допустимой (или для UART или для CAN). А вот если принять среднюю частоту, т.е. 7436400, то и там и там всё будет нормально. НО таких кварцев не бывает.
Вот я и подумал, а что если подстроить частоту внутреннего генератора за счёт регистра OSCAL до требуемого значения?
Часовой кварц к процессору подключен (к таймеру), т.е. сделать это будет несложно. Но допустимо ли такое (на -7%) изменение частоты? Будут ли работать ВСЕ процессоры?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Aug 16 2010, 02:00
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(galjoen @ Aug 6 2010, 11:42) *
но при любом значении частоты (и 7372800 и 7500000) эта погрешность будет великовата

Почему рассматривали только около-восьмимегагерцовые варианты такта когда проц может работать на 16?


Цитата(galjoen @ Aug 6 2010, 11:42) *
Вот я и подумал, а что если подстроить частоту внутреннего генератора за счёт регистра OSCAL до требуемого значения?

OSCCAL'ом диапазон регулировки может быть очень большой, когда-то эксперементировал и получил
0 ~3Mhz
255 ~14Mhz

шаг ~11Mhz / 256 = ~40-45Khz.

т.е. будет у вас например вместо 7436400 - 7466400 или 7416400, да еще и нестабильных от температуры может плыть вверх или вниз. Подойдет вам такое? Думаю для таких скоростных интерфейсов не подойдет. Калиброванный RC пользовал только для соединений ~9600, для "наповыше" считаю несерьезно его пользовать.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 16 2010, 08:59
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(defunct @ Aug 16 2010, 06:00) *
Почему рассматривали только около-восьмимегагерцовые варианты такта когда проц может работать на 16?

Так там тоже самое. Два варианта 14.7456 или 15 Мгц. В USART проблема, 8 или 16 тактов на бит.
А около-восьмимегагерцовые как раз из-за того, что внутренний генератор можно подстраивать в районе 8 Мгц и выбрал.
Цитата(defunct @ Aug 16 2010, 06:00) *
OSCCAL'ом диапазон регулировки может быть очень большой, когда-то эксперементировал и получил
0 ~3Mhz
255 ~14Mhz

шаг ~11Mhz / 256 = ~40-45Khz.

т.е. будет у вас например вместо 7436400 - 7466400 или 7416400, да еще и нестабильных от температуры может плыть вверх или вниз. Подойдет вам такое? Думаю для таких скоростных интерфейсов не подойдет. Калиброванный RC пользовал только для соединений ~9600, для "наповыше" считаю несерьезно его пользовать.

40...45 Khz это лучше, чем 127 Khz ошибки при установке кварца.
А насчёт термонестабильности что то не понял. Я ведь 128 раз в секунду буду по часовому кварцу проверять реальную частоту RC генератора, и если что - подкорректирую. А за 8 милисекунд сильно убежать не успеет. Или это про термонестабильность часового кварца?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:43
Рейтинг@Mail.ru


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