Страница 1 из 1

Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 20:35:32
mehanik_all
Передающий ATmega16. Принимающий ATmega8. Скорость передачи одинаковая - 2400 бод. Соединив RxD и TxD на ATmega8 всё работает нормально (отправляет и принимает). Как только передаю с МК или СОМ-порта через терминал контроллер молчит, ничего не принимает. Не пойму, где кот зарыт! Помогите разобраться!

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 20:41:00
igor-x
кот зарыт на кладбище домашних животных.
подбери подходящую терминалку, или настрой ту на которой дергаеш ATmega8

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 21:05:28
blackx
Схему подключения всего и вся - фстудию!

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 21:19:02
EDSedov
mehanik_all писал(а): Как только передаю с МК или СОМ-порта через терминал контроллер молчит, ничего не принимает
Насколько мне известно, UART (который в мк) и RS-232 (который на СОМ-порте) почти одинаковые интерфейсы, различающиеся только уровнями напряжения лог.1 и лог.0, отсюда вопрос: у вас преобразователь уровней есть?

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 22:39:36
mehanik_all
Схема простая, через полевики управление релюшками. Тактирование от внешнего кварца 8 МГц. Переходник UART<>COM на микросхеме ADM232AARN, рабочий. Проблема в том, что не принимает с других передатчиков, только со своего. ( Симулировал в протеусе, всё работает. Переношу на железо, МК молчит. Фьюзы выставлены на внешний кварц.

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 23:18:16
blackx
В обе стороны не идут данные? Каким терминалом пользуетесь на компе? Проверили схему преобразователя интерфейсов, все конденсаторы подключены как указано в даташите?

Если нет осцилла/лог. анализатора, берем светодиод с резистором 1К, и проверяем где данные проходят, а где нет. Будет заметно мерцание при передаче данных. Еще можно проверить напряжения, в режиме ожидания на входах 10...13 должно быть 5 В, а на 8-9 и 14-15 - -10 В.

Не забыли ли объеденить землю схемы и ком-порта (пин 5)? Работает ли ком порт компа вообще? Если что, проверяйте на другом устройстве.

Ну и последее, самое банальное - проверяем еще раз бодрейт, количество стоп-битов, наличие бита четности и его тип, количество бит данных в блоке, нужны ли вашей программе на ПК сигналы рукопожатия (то что handshaking).

Собственно, все это уже могли проверить сами.

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 23:34:07
EDSedov
СОМ-порт еще проверяют таким образом: берут и соединяют вывода TxD и RxD между собой, затем отправляют данные, в итоге, то что отправили, должно вернуться обратно на терминал, если все в порядке. Сам таким способом терминал на компе настраивал.

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 23:40:58
mehanik_all
COM порт рабочий, десять раз проверил. Задача моя установить связь не с ПК через COM, а с другим МК через UART и ИК-приёмник. Но ATmega8 не принимает даже напрямую от TxD ATmega16, только от своего передатчика принимает и работает. Исходники выше.

Re: Нету связи между МК по USART.

Добавлено: Пт ноя 29, 2013 23:51:19
blackx
Ну, это сильно картину не меняет. Я бы советовал на комповом порту сначала добиться работы, затем уже прикручивать другой МК.
В общем, все проверяйте и пишите как успехи.

Re: Нету связи между МК по USART.

Добавлено: Сб ноя 30, 2013 02:07:42
mehanik_all
Код
  • putchar(getchar());
работает в терминале в обе стороны! Зашиваю проверочную прошивку 02 для проверки кода, соединяю TxD и RxD - работает. Зашиваю первую прошивку и... молчок! Вынос мозга. Где-то походу проблемы с кодом. Посмотрите, пожалуйста, где я мог ошибиться? Исходник 01, скинул вверху.

Re: Нету связи между МК по USART.

Добавлено: Сб ноя 30, 2013 20:15:20
mehanik_all
Пока остановился на том, что с
  • y=getchar();
не хочет код работать, поменял на
  • y=UDR;
, пока работает. Пишу в CVAVR. Теперь разбираюсь с ИК-передачей. Может кто посоветует схему управления ИК-диодом. У меня пока схема такая: таймером1 на ногу OC1A подаю меандр 36кГц и через транзистор на ИК-диод с управлением от TxD, но диод совсем еле горит.

Re: Нету связи между МК по USART.

Добавлено: Сб ноя 30, 2013 21:33:41
codenamehawk
На светодиод подают короткие импульсы большого тока с заполнением 1/3

Поставьте дополнительный элемент 2И и с него на такую схемку.
https://sites.google.com/site/mariankmh ... edirects=0
Часть схемы, обведенная красным, срисована с рабочего пульта.

Re: Нету связи между МК по USART.

Добавлено: Сб ноя 30, 2013 22:56:18
mehanik_all
Спасибо буду пробовать. Надеюсь я правильно понял! 2И из двух И-НЕ.

Re: Нету связи между МК по USART.

Добавлено: Вс дек 01, 2013 20:59:17
codenamehawk
Должно работать.
mehanik_all писал(а):2И из двух И-НЕ.
Бывают просто 2И, без инверсии.
Вроде К155ЛИ1 такая.