Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите разобраться с приёмом символов через UART в ATmeg8

Непрочитано 18.12.2006, 18:28  
cscbyflex
Прохожий
 
Регистрация: 06.06.2005
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cscbyflex на пути к лучшему
По умолчанию Помогите разобраться с приёмом символов через UART в ATmeg8

Парни, подскажите что делаю не так...
1.инициализация UART 9600/8/1:
UBRRH = 0;
UBRRL = 12;
UCSRA = (1‹‹U2X);
UCSRB = ((1 ‹‹ RXCIE) | (1 ‹‹ RXEN) | (1 ‹‹ TXEN));

2.разрешаю прервания:
sei();

3.передача символа
void USART_Transmit(char data){
while(!(UCSRA & (1‹‹UDRE)));
UDR = data;
}

4.прерывание по приёму символа и сразу же его передача:
INTERRUPT(USART_RXC_vect) {
unsigned char data;
data = UDR;
USART_Transmit(data);
}

И на этом всё,отправлять отпаляет, а вот с приёмом что то глухо. Всё это делаю и компилю в AVR Studio.
В ЧЁМ ОШИБКА!?
Реклама:
cscbyflex вне форума  
Непрочитано 18.12.2006, 18:45  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Помогите разобраться с приёмом символов через UART в ATm

Сообщение от cscbyflex
В ЧЁМ ОШИБКА!?
У вас кварц 1 МГц или работаете со встроенным RC? Во втором случае надо учитывать его нестабильность!

А так вроде все правильно.
nml вне форума  
Непрочитано 18.12.2006, 18:52  
cscbyflex
Прохожий
 
Регистрация: 06.06.2005
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cscbyflex на пути к лучшему
По умолчанию

кварц внешний 7.370000
не работает передача с компа на мегу
cscbyflex вне форума  
Непрочитано 18.12.2006, 19:02  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от cscbyflex
кварц внешний 7.370000
не работает передача с компа на мегу
Если кварц 7.37, то для 9600 при U2X UBRR=95.
Смотрите в даташите.
nml вне форума  
Непрочитано 18.12.2006, 19:11  
cscbyflex
Прохожий
 
Регистрация: 06.06.2005
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cscbyflex на пути к лучшему
По умолчанию

у меня вопрос к приёму символов в Мегу. С передачей и инициализацией всё нормально работает.
cscbyflex вне форума  
Непрочитано 18.12.2006, 19:22  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от cscbyflex
у меня вопрос к приёму символов в Мегу. С передачей и инициализацией всё нормально работает.
Я на ваш вопрос и отвечаю. Скорость приемника и передатчика одинаковы. Следовательно, вы ошибаетесь, что все нормально с приемом на комп. С вашими данными (UBRR=12, U2X=1) скорость 9600 должна получаться при тактовой = 1 МГц.

Ну загляните же в даташит на страницу 156!

Еще рискну предположить - что кварц у вас "для виду", то есть припаян, а фузы не выставлены. МК работает на 1 МГц встроенном. Комп принимает - ну, может, у компа меньшая чувствительность к ошибке скорости, а может, у вас просто в приемной части ошибка в схеме.

Для COM порта допускается погрешность тактовой в 2.5%. Возможно, что при комнатной температуре и стабильном питании вы и добъетесь работоспособности. Но будет это весьма ненадежно.
nml вне форума  
Непрочитано 18.12.2006, 19:44  
cscbyflex
Прохожий
 
Регистрация: 06.06.2005
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cscbyflex на пути к лучшему
По умолчанию

Да даташит почитал, такт точно стоит 1.000.000Гц, выставить фузе биты не знаю как. Но скорость менять научился, а что делать с приёмом на мегу, так и не разобрался ни в чём...
cscbyflex вне форума  
Непрочитано 18.12.2006, 21:07  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

попробуйте это - avr123.nm.ru/z5.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 19.12.2006, 08:13  
prottoss
Прописка
 
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
prottoss на пути к лучшему
По умолчанию

Посмотри мой драйвер USART на http://pinokio3000.narod.ru/sourches/AVR_USART.htm
там мои подробные комментарии плюс константы для UBRR высчитываются препроцессором компилятора автоматом по заданной тактовой частоте и желаемой скорости передачи. Работа по прерываниям и с кольцевыми FIFO
__________________
http://prottoss.com
prottoss вне форума  
Непрочитано 19.12.2006, 09:15  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 259
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию

Сообщение от cscbyflex
Да даташит почитал, такт точно стоит 1.000.000Гц, выставить фузе биты не знаю как. Но скорость менять научился, а что делать с приёмом на мегу, так и не разобрался ни в чём...
Уважаемый, а вы чем контроллер прошиваете???
Например я прошиваю PonyProg'ом, там есть команда Security and Configuration bits...Там все фьюзы и выставляю...
Prime вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR и UART через прерывание - help :) code-by Микроконтроллеры, АЦП, память и т.д 13 05.12.2008 12:31
Как реализовать на ATmeg8 или ATtiny датчик случайных чисел Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 20 03.05.2008 21:06
Проблемы с приемом данных через UART Tiny 2313 SoapMaker Микроконтроллеры, АЦП, память и т.д 0 08.04.2008 10:35
Помогите разобраться с UART masterpc Микроконтроллеры, АЦП, память и т.д 10 13.02.2007 17:49
Помогите с UART !!! alll Микроконтроллеры, АЦП, память и т.д 0 15.11.2006 22:15


Часовой пояс GMT +4, время: 16:03.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.