воскресенье, 23 февраля 2025 г.

Изолированный преобразователь USB UART

Сделал изолированный преобразователь USB UART для безопасного подключения своих поделок к компьютеру. Начинал его как часть печатной платы нового проекта, но позже выделил в отдельный модуль чтобы не разводить каждый раз одно и то же.

На выходе модуля помимо привычных RXD и TXD есть ещё DTR и CTS. Сигнал DTR использую для сброса устройства после заливки обновления прошивки (обычно ставлю перемычку чтобы функцию сброса можно было отключать).

Важное отличие от привычных модулей USB UART - на выходе нет напряжения со стороны самого модуля. Для питания изоляторов нужно подавать напряжение от 2,5 В до 5,5 В со стороны развязываемого устройства.

В схеме использованы преобразователь USB-UART CH340G и изоляторы цифровых интерфейсов CA-IS3722LS. Если не нужны сигналы DTR и CTS, то второй изолятор (U3) можно не ставить.

Печатные платы заказывал у NextPCB, от размещения заказа до получения плат на почте прошло 15 дней.

При сборке оказалось что под рукой нет ни предохранителей для поверхностного монтажа, ни даже сопротивлений "нулевиков" - пока поставил перемычку, а позже заменю на самовосстанавливающийся предохранитель. Индикацию наличия питания в виде светодиода D1 и резистора R1 не ставил, т.к. модуль будет стоять внутри непрозрачного корпуса. На второй модуль, который будет для отладки макетных плат уже буду ставить.

Печатную плату запекал на нагревательном столике.

Лишний припой на ножках микросхем убрал оплёткой

Для тестирования соединил с адаптером на базе FT232RL

Буду передавать бинарный файл размером 1 мегабайт через последовательный порт по протоколу ZMODEM (/dev/ttyUSB0 - изолированный модуль, а /dev/ttyUSB2 - модуль на базе FT232RL)

Передающая сторона

$ stty -F /dev/ttyUSB0 2000000

$ dd if=/dev/urandom of=test.bin bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00417908 s, 251 MB/s

$ sz --zmodem test.bin > /dev/ttyUSB0 < /dev/ttyUSB0
Sending: test.bin
Bytes Sent:1048576   BPS:110963

Transfer complete

Принимающая сторона

$ cd /tmp

$ stty -F /dev/ttyUSB2 2000000

$ rz --zmodem > /dev/ttyUSB2 < /dev/ttyUSB2
Receiving: test.bin                                                  
Bytes received: 1048576/1048576   BPS:147493                

Transfer complete

Сравниваем файлы

$ sha256sum test.bin /tmp/test.bin
2edda1158c33886324027c0615c87652271e909bd15f6a80b6f9077ed249bc6e  test.bin
2edda1158c33886324027c0615c87652271e909bd15f6a80b6f9077ed249bc6e  /tmp/test.bin

Файл передался без ошибок на максимальной скорости которую поддерживают оба адаптера.

Комментариев нет:

Отправить комментарий