BoardRepo electronics project sharing
100%
Open file
misa-usb-rs485-hub Schematic SVG view

Imported from GitHub: takarakasai/misa-usb-rs485-hub · commit 2721f1a

Description

4ch isolated USB-to-RS-485 hub board for humanoid robot motor control. FT4232HL + 2× ADM2582E + 2× CA-IS3098W, 5kV isolation, 920kbps-12Mbps, KiCad 10 / JLCPCB manufactured / verified working.

README

namiashi (並足)

4-channel isolated USB-to-RS-485 hub board for humanoid robot motor control

ヒューマノイドロボット制御用の絶縁 RS-485 USB ハブ基板です。 USB Type-C から 4 系統の絶縁 RS-485 を生成し、12 軸サーボモータの安定制御を実現します。

Status KiCad License


主な特徴

  • FT4232HL USB to 4× UART ブリッジ (LQFP-64)
  • 2× ADM2582E 絶縁 RS-485 (Ch A, B): 2.5kV / 16Mbps / Visoout 5V
  • 2× CA-IS3098W 絶縁 RS-485 (Ch C, D): 5kV / 20Mbps / Visoout 3.3V
  • AT93C46DN EEPROM (FT4232HL VID/PID 保存用)
  • AZ1117-3.3 LDO (USB 5V → 3.3V)
  • 4 層 PCB (1.6mm 厚, JLC04161H スタックアップ)
  • 絶縁スリット 全層貫通による完全電気分離

仕様

項目
入力USB Type-C (5V, USB 2.0 HS 480Mbps)
出力4× RS-485 (絶縁, GH 2pin コネクタ)
信号速度921,600 bps 〜 1 Mbps 確認済
絶縁耐圧2.5kV (ADM2582E) / 5kV (CA-IS3098W)
基板サイズ60 × 74 mm 4 層
終端抵抗120Ω × 4 (各 ch、必要に応じて除去可)

用途

  • Robstride EduLite 05 等の RS-485 アクチュエータ駆動
  • 5kg クラス、12 軸ヒューマノイドロボットの全身制御
  • 500Hz〜1kHz の高速制御ループ対応
  • モータノイズからホスト PC を電気的に保護

ハードウェア構成

[USB Type-C 5V] ─┬─ AZ1117 (3.3V LDO) ─┬─ FT4232HL VCCIO
                 │                       └─ 各 RS-485 chip VCC (一次側)
                 │
                 └─ 各 RS-485 chip 内部 DC-DC ──→ Viso (3.3V or 5V, 二次側)

[FT4232HL] ─┬─ Ch A ─→ ADM2582E (U1) ─→ J7 (GH 2pin, A/B)
            ├─ Ch B ─→ ADM2582E (U6) ─→ J8 (GH 2pin)
            ├─ Ch C ─→ CA-IS3098W (U8) ─→ J9 (GH 2pin)
            └─ Ch D ─→ CA-IS3098W (U3) ─→ J10 (GH 2pin)

部品選定の経緯

設計の過程で以下の改善を実施 (詳細は spec_rev0_1_0.md):

  1. 初期: FT4232HQ (QFN-64) + 4× ADM2582E
  2. 改善 1: FT4232HQ → FT4232HL (LQFP-64, 手はんだ容易、約 1/3 のコスト)
  3. 改善 2: ADM2582E ×2 を CA-IS3098W ×2 に置換 (Ch C, D、5kV 絶縁、コスト 1/2)
    • ハイブリッド構成で両チップの動作比較が可能

ソフトウェア

Linux で /dev/ttyUSB0/dev/ttyUSB3 として認識。
Windows でも FTDI VCP ドライバで COM ポートとして認識。

Python サンプル (pyserial.rs485)

import serial.rs485

# RTS 制御を kernel に委譲 (アプリは write/read のみ)
ch = serial.rs485.RS485('/dev/ttyUSB0', baudrate=115200)
ch.rs485_mode = serial.rs485.RS485Settings(
    rts_level_for_tx=False,   # namiashi: rts=False で TX
    rts_level_for_rx=True,    # rts=True で RX
)
ch.write(b'Hello RS-485!')
data = ch.read(100)

Rust サンプル (TIOCSRS485 ioctl)

use serialport::SerialPort;
use std::os::unix::io::AsRawFd;

let port = serialport::new("/dev/ttyUSB0", 115200).open()?;
// TIOCSRS485 で kernel に RTS 自動制御を委譲 (詳細は spec 参照)

動作確認状況

  • ✅ FT4232HL Linux/Windows で 4ch UART 認識
  • ✅ Ch A-B (ADM2582E) 双方向通信成功
  • ✅ Ch C-D (CA-IS3098W) 双方向通信成功
  • ✅ 4 ノード同一バス構成も動作 (要 R8, R9 終端抵抗除去 + 全 ch RX モード固定)
  • ⚠️ TX/RX 活動 LED は 74HC595 が EEPROM バス共有のため非機能 (rev2 で改善予定)

ドキュメント


製造


関連プロジェクト

  • hayaashi — Raspberry Pi CM4 ロボットキャリアボード (本プロジェクトの上位機、CM4 統合)

ライセンス

TBD (公開時に決定)

連絡先