Usb rs485 конвертер своими руками

Сегодня поговорим о преобразовании уровней в микроэлектронике. Думаю, большинству читателей это неинтересно, поэтому советую сразу перейти на интересную статью о том, как можно сделать классный дизайн в рабочем кабинете: Создание уютного интерьера в офисе.

Итак, перед нами стоит задача:

Задача Спаять переходник для преобразования протоколов USB <=> RS-485. Протокол RS-485 пригодится, если вам нужен помехоустойчивый канал передачи данных (к примеру, устройство находится далеко от компьютера, а вокруг злые строители создают наводки своими перфораторами).

Для этих целей используются микросхемы FT232 и MAX485 (или аналог SP481). Первая микросхема используется для подключения устройств к компьютеру через USB, на выходе у неё ТТЛ-сигнал, вторая - для преобразования уровней (из ТТЛ в RS-485), этот сигнал и нужен устройствам, с которыми будет работать компьютер.

Схема подключения этих микросхем есть на официальном сайте производителя FT232: здесь. Вот, как выглядит схема подключения:

Не кисло, а? На самом деле, всё очень просто, прочитайте документацию, там есть объяснение, каким образом FT232 знает, что нужно конфигурировать MAX485 на вход или выход. Микросхемка умная. Размещаю все компоненты в Протеусе:

Там же в Протеусе можно сразу посмотреть в 3d, как будет выглядеть платка:

Все это дело я быстренько вытравил в хлорном железе и напаял нужные компоненты.

Подключил  не работает. Точнее работает, но не совсем корректно. Почему-то всё, что отправляет компьютер приходит на него же. 

Переходник USB - MAX485 не работает!Оказывается, схема, приведенная в даташите микросхемы FT232 не работает. Исправляем баги.

Подключил осциллограф - оказывается на пине управления приёмом MAX'а (пин RE) не тот сигнал, что нужно (он постоянно в нуле, что значит постоянный прием). Пришлось разрезать дорожку, идущую от FT232 ко входу RE, и закоротить RE с DE (это классическая схема подключения микросхемы MAX485). Теперь при отправке и приеме данных на ножках управления приёмом/передачей правильные сигналы, а именно: при отправке сообщений и на DE и на RE - лог. единица, при приеме на них - логический ноль. Проблема решена: в компьютере при передаче данных эхо отсутствует.

Начали тестировать полученный переходник USB-RS485 с нашей микроконтроллерной системой и... снова не работает. Посмотрел осциллографом на линии A и B - а там шум. А это ведь и понятно - обе микросхемы MAX485 (на нашем переходнике и с другой стороны провода, на устройстве) сконфигурированы на вход. Вот всё и шумит. При отправке с компьютера данных получается, что FT232 сама конфигурирует микросхему MAX485 на передачу, мгновенно отправляет данные и снова переводит её в режим приема. Видимо, из-за шума приёмник кроме необходимых данных принимает и мусор. Подумал, что неплохо бы линии A и B через резисторы повесить к земле и питанию. Загуглил и действительно народ так и делает, при чем удивляется, почему в даташите об этом ничего не сказано.

Итак, повесил линию A через резистор номиналом в 3,9 кОм на питание, а линию B через такой же резистор на землю (резисторы можно взять и поменьше). Шум на линии значительно уменьшился, но при передаче периодически выскакивали неправильные байты. Уменьшили скорость передачи данных до 1200 бод, всё работает прекрасно, никакого мусора, только валидные данные.

Еще нюанс - если провод очень длинный, могут появляться сбои в работе, поэтому с обоих концов линии передачи (между проводами A и B) вешают так называемые резисторы-терминаторы. Они погашают стоячую волну в линии и это здорово.

Итого, после недолгих мытарств получена рабочая схема переходника USB-RS485:

Переходник USB <=> MAX485 спаян готов к использованию! Если у вас есть вопросы по работе данного переходника - пишите в комментарии! 

Google+Источник: https://yuragalin.com/it/69-perehodnik-rs-485-usb-svoimi-rukami

Предыдущая статья: моддинг подсветка своими руками

Следущая статья: собака своими руками из бисера

Лучшие статьи: