Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: несколько вопросов по УАРТ
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
chief_olimp
Доброго времени суток!!!
Наконец дошли руки до UART. Есть ряд вопросов:
собрал макетку подключил ЖКИ, когда посылаю данные то часто приходят ложные посылки (3 из 4). Скорость 9600 8 1 при 4 МГц UBRR 25. В микролабе все нормально, в протеусе тоже. К MAX232CPE, на сколько понял по спецификации, идет 5 конденсаторов 1мкФ, втулил электролиты, может проблема в них? И самое интересное, данные не отправляются на комп, т.е. может и уходят но софт не позволяет их увидеть. Кто какой терминалкой пользовался поделитесь. У меня их куча а толку пока нет. В общем я пока сам разбираюсь но жду от вас замечаний и полезных советов.
bodja74
Я работал с СОМ ,правда немного в другой роли,на МАХ232 ставил кондеры по 10мкф.
Если софт под ПК для СОМ писали сами ,соедините между собой TXD и RXD,в буфере приема
должны быть отправленные Вами байтики,нетрудно будет проверить.
eXeC001er
а компутер на что настроен?! скорость должна быть одинакова, не пробовал ли другие скорости?!
в качестве терминала можно юзать тот что идет в CodeVision, конечно с нею не всегда удобно, но всетаки.
bodja74
Да еще...

МАХ232 инвертирует сигнал.

Надеюсь про это не забыли?
Laptop
1. конденсаторы конечно лучше керамику по 0,1 мкф и не забыть на питание конечно
2. использовать любую нормальную терминалку типа TeraTerm...
3. не забывать что перед посылкой следующего байта надо проверить успел ли передаться предыдущийsmile.gif
haker_fox
To chief_olimp:

1. Соедините между собой выводы txd и rxd на разъеме COM-порта и проверьте терминалкой принмаются ли переданные байты. Этим Вы проверите работы последовательного порта и настройки терминалки.

2. Если 1 пункт прошел успешно, то соедините между собой выводы на микросхеме MAX232, которые идут на микроконтроллер. От МК их лучше отсоеденить. И попробуйте также послать несколько байт. Терминалка их должна принять. Этим Вы проверите работу кабеля, микросхемы MAX232.

3. Если п.2 прошел успешно, то верните соединение MAX232 и микроконтроллера. А в программу МК "загоните" простой тест, задача которого принять байт с USART, например изменить его (для ощущения результата), и вернуть назад. Терминалка должна все зарегистрировать.

Такой примерно последовательностью я пользовался, когда сам изучал UART. Помогало, мне по крайней мере smile.gif
dimkadat
я пользуюсь в качестве терминалки Device Monitor , удобно и безплатно.
Aleks17
Все советы в куче:
- Питание какое - 5V млм 3.3. MAX232 требует 5 насколько я знаю.
- Терминалку рекомендую teraterm (см вложение).
- Проверь провода - надо 3 (GND, RXD и TXD)
- Загони в МК программу, которая циклически гонит тексттовую строку в терминалку.
- Проверь, что ты успеваешь принимать байты (т.е. что компьютер выдаёт их медленнее, чем ты принимаешь).
Насчёт софта - если пишешь свой, не забывай что in out под виндами не работают (даже под 95-м, хотя там система и не ругается но работы нормальной не выйдет). Нужно пользовать CreateFile и т.п.

Все советы в куче:
- Питание какое - 5V млм 3.3. MAX232 требует 5 насколько я знаю.
- Терминалку рекомендую teraterm (см вложение).
- Проверь провода - надо 3 (GND, RXD и TXD)
- Загони в МК программу, которая циклически гонит тексттовую строку в терминалку.
- Проверь, что ты успеваешь принимать байты (т.е. что компьютер выдаёт их медленнее, чем ты принимаешь).
Насчёт софта - если пишешь свой, не забывай что in out под виндами не работают (даже под 95-м, хотя там система и не ругается но работы нормальной не выйдет). Нужно пользовать CreateFile и т.п.
PowerF1
На мах232 два порта для приемки/передачи. И путать линии портов нельзя. Посмотрите, может там что-то. Последовательность связи такая.
TXD(мк)-TIN(MAX); TOUT(MAX)-RXD(com pin2)
RXD(мк)-ROUT(MAX); RIN(MAX)-TXD(com pin3)
chief_olimp
Да бывает smile.gif Человек хоть и умное создание но тупит больше всех smile.gif Из-за наличия отсутствия разьема "мама" соединил два "папы" "подручными средствами" RD TD как ни странно не спутал а вот сигнальная земля успешно села на DCD. Отсюда и неприятности. По поводу терминалок в ттерм я не врубился (может под ХР не работает) а вот Device Monitor хотел бы посмотреть, если можно киньте ссылку или на мыло v_gavenko@mail.ru Во всем остальном проблем не было и MAX232 тоже есть smile.gif. Я выше говорил что данные принимаются и выводятся на ЖКИ.
Всем спасибо кто откликнулся. И не делайте моих ошибок...
Aleks17
Teraterm работает под XP без вопросов. А насчёт "не врубился" - не понимаю.
Выбираешь связь через COM-порт (есть ещё вариант TCP/IP) - это на вкладке Setup|General
затем настраиваешь COM-порт Setup|Serial port
+ настройка внешнего вида Setup|Terminal - там полезно local echo включить, чтоб терминалка отображала те данные которые ты вводишь (иначе она только принимаемые будет выводить).
Всё!
Laptop
В дополнение Aleks17:)
У teraterm затем можно сохранить конфигурацию в файл и запускать его с этим файлом в коммандной строке. Получаем одним кликом сразу настроенную под свою задачу терминалкуsmile.gif
Наличие лога в файл тоже приятное дополнение.
chief_olimp
После устранения вышеописаной ошибки программа заработала и очень радует, спасибо smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.