UART - работает только при разных скоростях девайсов.

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

В ПРОТЕУС :
1. atMega8 + atMega8 - обмениваются нормально если у обоих скорость UART стоит по 9600
2. atMega8 + виртуальный терминал - работают только если mega8 = 9600 а терминал 1200

в реале :
3. atMega8 + PuTTy терминал в компе - работают только если mega=9600 , PuTTy = 1200

Почему так ? А как же равенство скоростей ?

PS не знаю важно или нет но всегда у меня atMega работает на 8 Mhz без внешнего кварца
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

По протеусу: вы ковыряли программу, видели как там на самом деле организован алгоритм? Уверен, что нет.
По реалу: осциллом тыкнитесь. Вот тогда можно будет говорить про реал.
Docendo discimus
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

т.е. без осцилографа никак ?
его нет у меня .
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

либо мега работает не на 8 МГц (а на 1МГц), либо в UBRR пишется не 51.
в протеусе есть виртуальный осциллограф
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

А какая связь с частотой меги и скоростью выставляемой для обмена по UART ?
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Реклама
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

А откуда синхронизация для UARTа берётся? У него своего личного генератора нет.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

да я имею ввиду - как все это рассчитывать то ?
например мега у меня 8 Mhz , UART задаю 9600 - значит в реале УАРТ будет в 8 раз медленнее работать ? нет ? Где вот эту теорию найти почитать ?
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

ну есть же таблица уже рассчитанных значений UBRR для основных значений тактовой частоты. у меня таблица 62 на стр 161 даташита для 8 МГц.
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

что за даташит ? на мегу8 ? - нету - только что смотрел .
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

да что Вы говорите... на любую мегу и тайни с уартом есть эти таблицы. может, даташит урезанный? у меня всего 310 страниц. раздел USART -> Examples of Baud Rate Setting

ps. а как Вы рассчитывали значение для UBRR для 9600?
Последний раз редактировалось a_skr Ср фев 06, 2013 08:04:35, всего редактировалось 1 раз.
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

ага - таблицы нашел .
регистр UBRR выставляется во фьюзах ?

Уж простите за ламерские вопросы - но с такими нюансами впервые столкнулся
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

:facepalm: значение в регистр UBRR записывается из программы
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

в Bascome никто не подскажет как определить регистр UBRR /
пока курю яндекс - не нахожу
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

что значит "определить"? он также изначально определен, как и все другие регистры ввода-вывода (состоит из старшей UBRRH и младшей UBRRL частей)
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

опечатка вышла :)
не определить а записать данные в него .

Опять же - может есть ссылка на теорию по UART ?
Пока в голове путаница :
1. выставляем частоту МК
2. задаем скорость обмена по UART
3. реальная скорость обмена по UART будет зависить от частоты МК , выставленной скорости и того значения что записанно в регистре UBRR ?
yfabuf так сложно придумали то ?
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

olegkomak писал(а):yfabuf так сложно
чтобы под любую частоту тактирования ядра можно выставить любую скорость протокола. Как коробка передач на авто.
Docendo discimus
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

почитайте здесь теорию: (а еще в конце статьи есть комментарии с частыми вопросами - их тоже почитайте)
http://easyelectronics.ru/avr-uchebnyj- ... -uart.html
Ставим плюсы: )
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

table52.PNG
(48.58 КБ) 431 скачивание
:facepalm:
pyzhman писал(а):чтобы под любую частоту тактирования ядра можно выставить любую скорость протокола. Как коробка передач на авто.
Ну не совсем любую, при некоторых комбинациях слишком большая ошибка в скорости получается (в таблице в процентах написана)
Последний раз редактировалось Engineer_Keen Ср фев 06, 2013 08:28:40, всего редактировалось 2 раза.
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

olegkomak писал(а):2. задаем скорость обмена по UART
как Вы ее задаете? она задается только значением регистра UBRR исходя из тактовой частоты (для Вашего простейшего случая).
Встал на лапы
Аватара пользователя
Сообщения: 123
Зарегистрирован: Пт янв 08, 2010 16:21:41
Откуда: Тамбов

Сообщение olegkomak »

начало кода в Bascom

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Талантам надо помогать, бездарности пробьются сами! (Л.Гольдберг)
Контактная информация:
Ответить

Вернуться в «AVR»