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

 
 
 
Reply to this topicStart new topic
> Тактирование UART на AVR, Использовать кварц нестандартной частоты
paskal
сообщение Jul 3 2009, 20:49
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Есть ATMEGA48. Его надо тактировать частотой 12 Мгц, т.е. не кратной стандартной частоте COM порта. Но в то же время надо обменяться с компутером на скорости 115200. Можно ли задать такую частоту, например, дополнительным генератором? Или какие вообще есть варианты?
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Jul 4 2009, 06:19
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Никаких, кроме как прочитать сначала страницу 175, а потом страницы 188-189 даташита.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jul 4 2009, 07:03
Сообщение #3


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(paskal @ Jul 4 2009, 00:49) *
Есть ATMEGA48. Его надо тактировать частотой 12 Мгц, т.е. не кратной стандартной частоте COM порта. Но в то же время надо обменяться с компутером на скорости 115200. Можно ли задать такую частоту, например, дополнительным генератором? Или какие вообще есть варианты?


И что вас смущает.

Asynchronous Double Speed mode (U2Xn = 1) UBRRn = (fOSC/(8*BAUD)) (стр. 174 Datasheet)

При ваших значения UBRRn = 12.

Пересчитываем обратно BAUD = fOSC/(8*(UBRRn + 1)) = 115384.62

Что дает 0.16 % ошибки.

RS232 допускает 5% ошибки.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
=AK=
сообщение Jul 4 2009, 07:34
Сообщение #4


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(dimka76 @ Jul 4 2009, 16:33) *
RS232 допускает 5% ошибки.

Во-первых, не RS232, а UART. Ведь RS232 всего лишь оговаривает величины напряжений сигналов и т.п., но ничего не говорит о длительностях.

Обычный UART, принимающий посылку, высланную с идеально правильной бодовой скоростью, настраивается на прием по старт-биту. По падающему фронту старт-бита он выставляет фазу своего тактового генератора. Обычно он это делает с точностью примерно 1/16 от длительности бит-интервала. Затем он самплирует приходящие данные один или три раза в середине каждого своего бит-интервала. На последнем, 9-м или 10-м по счету от старт-бита, середина его собственного интервала будет заметно не совпадать со серединой пришедшего интервала. При 5% на 10-м бит-интервале ошибка составит 50%, что будет на грани работоспособности при прочих идеальных условиях. Однако учитывая неидеальность настройки начальной фазы, а также искажения фронтов сигналов в тракте передачи, 5% рассогласование бодовой скорости приемника и передатчика вполне может привести к неработоспособности связи.

Учитывая, что передатчик тоже может иметь неидеальную бодовую скорость, точность настройки должна быть лучше, чем половина от 5%. Обычно стараются выдержать погрешность не более 2%.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jul 4 2009, 07:54
Сообщение #5


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(=AK= @ Jul 4 2009, 11:34) *
Учитывая, что передатчик тоже может иметь неидеальную бодовую скорость, точность настройки должна быть лучше, чем половина от 5%. Обычно стараются выдержать погрешность не более 2%.


Виноват. Ошибся.

Но при 12 МГц Fcpu на скорости 115200, получается ошибка 0.16 %, что много меньше 2%.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post

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

 


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


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