Помехи UART'а

Добрый вечер, уважаемые читатели!
Я сейчас пытаюсь сделать управление двигателями постоянного тока по UART. То есть один МК отсылает инфу, другой — принимает и посылает сигнал на L293D(МК — Attiny2313). Оба МК я сначала отладил на макетке — всё работет как надо, а потом вставил в разведённую мной плату. Увы, как только я подключаю шнурок к UART'у, на ножке RXD сразу начинается какой-то непрекращающийся шум. Подскажите, пожалуйста, в чём может быть дело??
Схема: fotoifolder.ru/view_foto/wap9zaqjvq-4/
Плата: fotoifolder.ru/view_foto/i9jcbejhb9fx/
P.S. Это по сути первая плата моей разработки(до этого делал только до меня разведённые платы), так что не силён я в этом деле.

Комментарии (26)

RSS свернуть / развернуть
Где земля уарта? Я бы ее на средний пин подключил.
Какой кабель, где пролегает, длина?
Ну и питание 12В лучше рядом с потребителем — L293 — поставить.
0
  • avatar
  • Vga
  • 22 апреля 2011, 23:43
А что такое земля UART'а?
0
Возвратный провод для сигналов RX и TX. В принципе, если земли соединенных UART'ом девайсов где-то соединены — возвратные токи этих линий пройдут по тому соединению. Но тогда к ним добавятся помехи от других текущих по этой земле токов. Если же не соединены вообще — между землями устройств будет ничем не определенное напряжение, складывающееся с напряжением линий RX/TX и непредсказуемо меняющее их уровни, вплоть до превышающих предельно допустимые.
0
Понятно, спасибо.
0
какая длина провода? земли соединял? от чего питается каждое устройство?
Если длина провода больше нескольки метров, лучше использовать RS485.
0
А что, файлообменник прямых ссылок на картинки не дает?
А то как-то напрягает туда заглядывать…
+1
там бмп на 2 метра. в каждом :)
0
Себя самым опытным назвать не могу (у самого немного плат за плечами), но на первый взгляд пришли такие мысли:
1. Почему цепь питания 5V, со стабилизатора U1, ведется по сей плате с начала туда (с перемычкой) а потом обратно? Можно было ведь кинуть перемычку на верх.
3. Отсутствие шунтирующих кондеров у пинов питания микрух.

Ну и первая мысль, о том в чем проблема. Эт наличие лини питания, к то муже кинутой перемычкой, да еще и без шунтирования (шунтирующих кондеров). Вы, случаем, не смотрели что на линии питания в этом месте?

По моему плата разведена крайне не удачно, не в обиду сказано. Думаю, вам не помешает почитать хотя бы пару статей — рекомендаций. К примеру: Техника разводки печатных плат
0
Смеюсь сам над собой :)

Возможно:
Вариант 1. Проблема скорее всего в отсутствии земли в линии UART'а, как писал Vga. Относительно чего должен быть уровень RXD? Да и TXD? А писать с него побывали? Получилось?
Вариант 2. Проблема с кабелем, как и писал Vga.
Вариант 3. «Наводка от силовой линии»(еше плюс не зашунтированной), писал чуть ранее.

:) Сильно не бейте, сам новичок :)
0
Кстати, если уарт разведен дальше полуметра — есть смысл влепить MAX232 с каждой стороны. RS232 поустойчивей к помехам.
0
  • avatar
  • Vga
  • 23 апреля 2011, 01:51
Тогда уже лучше SN7517. Нормальный RS485 и цена меньше…
0
ну. это кому как нравится. 232-е чаще встретить можно.
0
Немножко не по теме, просто бросилось в глаза — рядом с кварцем стоит один кондёр на 22п. Первая мысль пришла «это что, какой-то хитрый контроллер, который требует такую схему тактирования?» (схему не изучал). Потом увидел второй кондёр на другом конце платы… Так вот, совершенно не понятно, почему так сделано — линия тактирования должна быть максимально короткой, что бы не шуметь на окружающий и самой не ловить наводки. В данном случае ничего не мешало их развернуть на 90градусов и поставить рядом с кварцем параллельно друг-другу.
А по теме, к выше сказанному добавлю, что если расстояние не совсем маленькое, в качестве провода UART имеет смысл использовать витую пару.
0
Скорее в этом и проблема (тактирование), попробуй включить внутренний генератор и посмотреть на результат. Фильтрующие конденсаторы тоже надо ставить как можно ближе к микросхемам.
+1
Всем огромное спасибо за помощь! hellraiser спасибо за совет, действительно при подключении внутреннего генератора помехи исчезли, но из-за плохой точности внутреннего генератора инфа передается криво. Буду править плату.
0
На остальное тоже стоит обратиь внимание.
0
Да, конечно учту, спасибо.
0
а разводку делал автотрассировщиком в диптрэйсе, поэтому критика разводки принимается)
0
Как видно, автотрассировщик — не всегла хорошо…

Присоединяюсь к высказавшимся: цепь тактирования у Вас — канонический пример того, как делать не надо. Кварц должен быть как можно ближе к МК, конденсаторы должны быть как можно ближе к кварцу, и все это должно быть заземлено как можно ближе к выводу GND МК.



Вот, тут DI писал здравые вещи (картинка оттуда же): easyelectronics.ru/razvedenie-pitaniya.html
0
О! Действительно, то что надо. Спасибо.
0
Скажите, а расстановку компонентов тоже машина делала, или Вы? Просто мне совершенно не понятно, почему автоплейсер мог так далеко залепить этот кондёр, ведь он должен исходить из критерия минимизации длины дорожек. Или в него более высоким приоритетом были заложены какие-то другие правила?

ЗЫ: правильное расположение компонентов на плате — это как минимум 80% работы по её трассировке.
0
Да, расстановку тоже DipTrace делал. Так как это моя первая плата, я подумал, что лучше всё проге доверить. Оказалось, что… не лучше.
0
Ещё нашел ссылки на руководство от Atmel'а по устранению помех:
www.atmel.com/dyn/resources/prod_documents/doc3ae68a605a252.pdf
www.atmel.com/dyn/resources/prod_documents/doc1619.pdf
0
А еще можно попробовать подтянуть RXD к плюсу питания (DDRD.0=0 <=> вход, PORTD.0=1 <=> включить подтяжку), мне помогало.
0
О, надо попробовать. Спасибо!
0
Как это?
При включенном UART нельзя вручную управлять пином. Хоть пиши, хоть не пиши в PORTD.0 — ничего не произойдет.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.