| Автор | Сообщение |
SEREGA82 Новичок Сообщения: 19
|
Доброго времени суток! Опять требуется помощь знающих людей. Собрал устройство на ATmega16, которое управляет одним промышленным девайсом через COM-порт. Связь через MAX232. Устанавливаю скорость 115200, контроллер отправляет то, что надо, но девайс не воспринимает команду. Отправляю тоже самое с компа- все ок. Попробовал уменьшить скорость- вообще не понятно что отправляет. Кварц 11,059 МГц, фьюзы установил правильно, USART сконфигурировал тоже правильно. Единственное но: с компа напруга на Тх примерно 10 В, а с МАХ232- 7,25 В. Подскажите пожалуйста, люди добрые. Заранее спасибо. |
|
GarikBaza Новичок Сообщения: 664
|
|
eufs Участник Сообщения: 170
|
Соедини свое устройство с терминалкой на компьютере. Посмотри что ты передаешь и в каком формате. |
|
SEREGA82 Новичок Сообщения: 19
|
// 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
|
while (!(UCSRA &(1
putsf ("\x02\xM\x41\x03"); это использовал для передачи (я новичок)
После недельной борьбы с UARTом, я его победил Производители этого девайса не уточнили формат передачи команды. Методом научного тыка определил его сам. Теперь все работает. |
|
BossNautilus Новичок Сообщения: 4
|
Заранее прошу прощения за детский вопрос. Как настроить Мегу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
|
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
|
Насколько я понял поднимаются ещё 2 флага прерывания. С прерываниями пока не желаю работать , проблема, что контроллер работает, настройки правильные, а связи нет. Может на другой микрухе попробовать? |
|
GarikBaza Новичок Сообщения: 664
|
На 16МГЦ будет ошибка при расчете скорости, если она больше 3%, то связь может отсутствовать
А вообще, посмотри AVR306: Using the AVR UART in C on tinyAVR and megaAVR devices, сразу вопросов поубавится |
|
BigallS Новичок Сообщения: 5
|
| 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
|
Всем Огромное спасибо!!!! Проблема крылась в разводке. Посадил 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
|
| BossNautilus писал: | | По спецификации RS232 логическая "1" выше 3 вольт, а логический "0" ниже -3 вольт. |
Да вроде наоборот, "0" положительное напряжение, "1" отрицательное.
Не зря же преобразователи типа MAX232 являются по своей сути инверторами. А то ,что Вы привели больше подходит для UART микроконтроллеров. |
|