Файлы  •  Ссылки  •  Прошивки  •  Правила  •  Архив  •   FAQ  •  Участники  •  Поиск
Регистрация  •  Вход

ATmega16 работа USART

Список форумов» Программное обеспечение» Микроконтроллеры
АвторСообщение
SEREGA82
Новичок
Сообщения: 19




18-02-2011 12:01

Доброго времени суток! Опять требуется помощь знающих людей. Собрал устройство на ATmega16, которое управляет одним промышленным девайсом через COM-порт. Связь через MAX232. Устанавливаю скорость 115200, контроллер отправляет то, что надо, но девайс не воспринимает команду. Отправляю тоже самое с компа- все ок. Попробовал уменьшить скорость- вообще не понятно что отправляет. Кварц 11,059 МГц, фьюзы установил правильно, USART сконфигурировал тоже правильно. Единственное но: с компа напруга на Тх примерно 10 В, а с МАХ232- 7,25 В. Подскажите пожалуйста, люди добрые. Заранее спасибо.
GarikBaza
Новичок
Сообщения: 664




18-02-2011 12:48

Дай инит порта
eufs
Участник
Сообщения: 170




18-02-2011 14:03

Соедини свое устройство с терминалкой на компьютере. Посмотри что ты передаешь и в каком формате.
SEREGA82
Новичок
Сообщения: 19




21-02-2011 06:37

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 2400
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x01;
UBRRL=0x1F;

Я так и сделал. Иначе как бы я узнал, что контроллер передает не то, что нужно.
SEREGA82
Новичок
Сообщения: 19




21-02-2011 08:58

while (!(UCSRA &(1 putsf ("\x02\xM\x41\x03"); это использовал для передачи (я новичок)

После недельной борьбы с UARTом, я его победил гы-гы Производители этого девайса не уточнили формат передачи команды. Методом научного тыка определил его сам. Теперь все работает.
BossNautilus
Новичок
Сообщения: 4




03-07-2011 00:00

Заранее прошу прощения за детский вопрос. Как настроить Мегу8 на прием-передачу. Третий день вталкиваю ей всякие рукописные творения, основанные на даташитах, уроках и примерах, с корректировкой частоты и скорости передачи, но ни приема ни передачи не получается. Описание: Мега8 , RX TX связаны с FT232 через сопротивления 510 ом. С терминала сигналы приходят, ответа нет.
настройка передатчика:
FCPU=16000000
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous

UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
//UBRRL=207; //4800
UBRRL=103; //9600
//UBRRL=68; //14400
//UBRRL=51; //19200
//UBRRL=34; //28800
//UBRRL=25; //38400


ожидания битов не выполняю, посылки с большими задержками ( 0,5-3 сек) контроллер работает (моргун тикает) а посылок нет.
GarikBaza
Новичок
Сообщения: 664




04-07-2011 13:29

void init_usart(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 115200
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x05;
}

Кварц 11059000
BossNautilus
Новичок
Сообщения: 4




04-07-2011 20:57

Насколько я понял поднимаются ещё 2 флага прерывания. С прерываниями пока не желаю работать , проблема, что контроллер работает, настройки правильные, а связи нет. Может на другой микрухе попробовать?
GarikBaza
Новичок
Сообщения: 664




04-07-2011 21:18

На 16МГЦ будет ошибка при расчете скорости, если она больше 3%, то связь может отсутствовать
А вообще, посмотри AVR306: Using the AVR UART in C on tinyAVR and megaAVR devices, сразу вопросов поубавится
BigallS
Новичок
Сообщения: 5




04-07-2011 21:27

SEREGA82 писал:
Доброго времени суток! Опять требуется помощь знающих людей. Собрал устройство на ATmega16, которое управляет одним промышленным девайсом через COM-порт. Связь через MAX232. Устанавливаю скорость 115200, контроллер отправляет то, что надо, но девайс не воспринимает команду. Отправляю тоже самое с компа- все ок. Попробовал уменьшить скорость- вообще не понятно что отправляет. Кварц 11,059 МГц, фьюзы установил правильно, USART сконфигурировал тоже правильно. Единственное но: с компа напруга на Тх примерно 10 В, а с МАХ232- 7,25 В. Подскажите пожалуйста, люди добрые. Заранее спасибо.


Есть сайт http://easyelectronics.ru/avr-uchebnyj-kurs-peredacha-dannyx-cherez-ua ... где подробно описана работа c AVR контроллерами, посмотрите.
BossNautilus
Новичок
Сообщения: 4




06-07-2011 23:41

Всем Огромное спасибо!!!! Проблема крылась в разводке. Посадил TXD на TXD, RXD на RXD вот и не разговаривала схемка ))))) Ну впервые развожу RS232. Невнимательно схемку прочитал. Всё замечательно общается. И в easyelectronics.ru я пролазил почти вдоль и поперёк.

Добавлено 06-07-2011 23:46

SEREGA82 писал:
Единственное но: с компа напруга на Тх примерно 10 В, а с МАХ232- 7,25 В.


По спецификации RS232 логическая "1" выше 3 вольт, а логический "0" ниже -3 вольт.
r_u_l
Участник
Сообщения: 60




23-08-2011 22:40

BossNautilus писал:
По спецификации RS232 логическая "1" выше 3 вольт, а логический "0" ниже -3 вольт.


Да вроде наоборот, "0" положительное напряжение, "1" отрицательное.
Не зря же преобразователи типа MAX232 являются по своей сути инверторами. А то ,что Вы привели больше подходит для UART микроконтроллеров.
Список форумов» Программное обеспечение» Микроконтроллеры» ATmega16 работа USART
Перейти:  
Текущий раздел» Программное обеспечение» Микроконтроллеры (Микроконтроллеры - AVR-ы, PIC-и и другие)


Похожая информация:
  • Atmega16
  • Чтение и прошивка Atmega16
  • Сбрасывается EEPROM ATMega16
  • ATmega16 сторожевой таймер
  • Запуск ATmega16 от резонатора 16мГц








  • Информация по ремонту для специалистов - справочники, инструкции, энциклопедия, советы и секреты ремонта,  настройка, сервисные режимы
    Powered by phpBB 2.0.18 © 2001, 2002 phpBB Group!