Проблемы с UART.

Обсуждаем контроллеры компании Atmel.
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Проблемы с UART.

Сообщение Vadim_Stupakov »

Здравствуйте, уважаемые! В процессе освоения МК, пришло время разобраться с UART. Написал маленькую тестовую программку.
С ПК посылаю символ, '1' светодиод горит, '2' - светодиод гаснет. Но проблема, ничего не происходит. Со стороны ПК данные идут( RxD замкнул с TxD). Использую шнур USB->COM. Не понятно, где косяк :-(

Программу на ПК писал с использованием библиотек Qt.
Программу для МК писал в IDE ATMEL Studio , компилятор avr gcc.
МК - AVR ATmega8a
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Проблемы с UART.

Сообщение igor-x »

покажите что написали в программах? без исходников так то можно только гадать
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

В общем, как я понял, какие-то проблемы с кодировкой. Сделал эхо проверку. Отправляю символы на контроллер, а потом с контроллера обратно. Отправляю '1' а принимаю 'L' и не нашел никакой закономерности, не понятно, что происходит...
Код программы собственно:

Код: Выделить всё

#define F_CPU 4000000UL
#include <avr/io.h>
#include <util/delay.h>

void Init_USART();

int main(void)
{
   volatile char rc;
   Init_USART();
   DDRB |= 1<<0;
   DDRD &= ~(1<<0);
   PORTD |= 1<<0;;
   //sei();
    while(1){
      if ((UCSRA & (1<<7))){
         rc = UDR;
         UDR = rc;
      }
      if(rc == 49) PORTB |= 1<<0;
      else if(rc == 50) PORTB &= ~(1<<0);
   }
}
void Init_USART(){
   // USART initialization
   // Communication Parameters: 8 Data, 1 Stop, No Parity
   // USART Receiver: On
   // USART Transmitter: On
   // USART Mode: Asynchronous
   // USART Baud Rate: 110
   UCSRA=0x00;
   UCSRB=0x18;
   UCSRC=0x86;
   UBRRH=0x08;
   UBRRL=0xE0;
}
Вложения
Terminal.PNG
(40.89 КБ) 299 скачиваний
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Проблемы с UART.

Сообщение igor-x »

USART Baud Rate: 110


маловато будет...
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

А какая разница? Чем меньше - тем меньше потерь, как я понимаю.
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

Выставил USART Baud Rate: 2400.
В итоге теже символы что и при USART Baud Rate: 110
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Проблемы с UART.

Сообщение igor-x »

тем меньше потерь


на расстоянии 5 метров можно смело гонять скорости до 115200 .

самое главное - чтобы скорость на стороне терминала и МК была одинакова. я поэтому засомневался что терминалка может на такой низкой скорости работать.

ну хотябы 9600 сделайте
AaNnDdRrEeYy
Встал на лапы
Сообщения: 100
Зарегистрирован: Ср дек 24, 2008 11:59:24
Откуда: Москва

Re: Проблемы с UART.

Сообщение AaNnDdRrEeYy »

Скорость обмена на компе и в МК должны совпадать. В протеусе проверь, если со стороны МК проблем нет попробуй не своей прогой с компа проверить а программой "Терминал"
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

Да-да, всё совпадает. Терминалом сейчас и проверяю, эхо без МК работает, что отправляю - то и получаю. а вот эхо с МК не работает..
PS: Я прикрепил скрин с терминала.
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

Сделал 9600 - тоже самое.
Что, разве ни у кого не было проблемы с кодировкой?
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Проблемы с UART.

Сообщение igor-x »

а вот эхо с МК не работает..

тогда следующий эксперимент нужно проделать.= сделать прог. которая только передает из МК в терминалку один известный символ, постоянно .
AaNnDdRrEeYy
Встал на лапы
Сообщения: 100
Зарегистрирован: Ср дек 24, 2008 11:59:24
Откуда: Москва

Re: Проблемы с UART.

Сообщение AaNnDdRrEeYy »

У меня была, буквально вчера, моя тема под твоей. там проблема была с расчетом значения для регистра в котором скорость задается, не каждую скорость можно использовать. у меня например 9600 не завелась на частоте МК 1Мгц. пришлось использовать нестандартную 5200
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

igor-x писал(а):
а вот эхо с МК не работает..

тогда следующий эксперимент нужно проделать.= сделать прог. которая только передает из МК в терминалку один известный символ, постоянно .

МК каждые 100мс отправляет '1'. Результат я прикрепил в картинке.
Вложения
Terminal.PNG
(38.97 КБ) 532 скачивания
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

Да, кстати. Я использую внутренний RC-генератор. Думаю, что для передачи '1' он сгодится.
AaNnDdRrEeYy
Встал на лапы
Сообщения: 100
Зарегистрирован: Ср дек 24, 2008 11:59:24
Откуда: Москва

Re: Проблемы с UART.

Сообщение AaNnDdRrEeYy »

Vadim_Stupakov писал(а):Да, кстати. Я использую внутренний RC-генератор. Думаю, что для передачи '1' он сгодится.


Частота какая?
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

4 МГц
Vadim_Stupakov
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт мар 07, 2013 23:55:48
Контактная информация:

Re: Проблемы с UART.

Сообщение Vadim_Stupakov »

Не может ли такое быть из-за шнурка USB->COM ?
AaNnDdRrEeYy
Встал на лапы
Сообщения: 100
Зарегистрирован: Ср дек 24, 2008 11:59:24
Откуда: Москва

Re: Проблемы с UART.

Сообщение AaNnDdRrEeYy »

вот так программку подправь

будет работать на скорости 9600

void Init_USART(){
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 110
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
//*********************
//ВОТ ЭТИ ДВЕ СТРОКИ
//----------
UBRRH=0x00;
UBRRL=26;
//----------
}
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Проблемы с UART.

Сообщение igor-x »

шнурок ты уже проверил - rx tx коротил. значит все ок.
AaNnDdRrEeYy
Встал на лапы
Сообщения: 100
Зарегистрирован: Ср дек 24, 2008 11:59:24
Откуда: Москва

Re: Проблемы с UART.

Сообщение AaNnDdRrEeYy »

ой, не 26 а 25
UBRRL=25;
Ответить

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