本記事はDynamixel操作用の自作USBモジュールに関する製作備忘録です。(主に回路)
自作USBモジュール詳細:MasaYasuda/TypeCDxlController_v0
Type-C Dxl Controller v0の設計
要件
- USBアダプターType-C出力からダイレクトに回路電源・Dynamixel駆動電力を供給して、ユーザーの機械的操作によりDynamixel(Xシリーズ)の操作を行なう
- 部品合計価格目標:1000円以内
- 部品は可能な限り秋月(どうしてもない専用ICや特定抵抗値・コンデンサはマルツオンライン)orモノタロウで手に入る&長期的な在庫が予想されるもの
- サイズ:可能な限り小さく(基板サイズ50x50mm程度)
設計における検討点
ユーザーインターフェース
以前製作した↓のデバイスでは、Dynamixelの速度制御モードをジョイスティックで、(拡張)位置制御モードをポテンショメーターで、そのモード切替をボタンで行っていた。

しかし、ジョイスティックの固定が少し面倒であることや、もっと単純化しても問題のないことから、今回は速度制御モードのみにして、回転方向指定用に2つのボタン、速度調整用のポテンショメータのみで構成することとした
Dynamixelの電流値
小さめのDynamixel:XL430-W250-T…ストールで1.3A
参考:XL430-W250-T
大きめのDynamixel:XM540-W270-T/R…ストールで4.4A
XM540-W270-T/R
今回は基本3Aまでで考えているので大きめのDynamixelではストール近くをかけると電流不足で落ちる。それは仕方ないので今回は小さめのDynamixelまでを視野に入れて設計する。
なお、手動での簡易的な制御のためのモジュールなので、正直なところ3A以上は考えなくても良いと思うが、将来的には安全性の観点から過電流防止回路などを設けた方が良いと思われる。今後の課題である。
PDシンクの作り方
PDシンクとはいわゆるPDの供給を受ける側(スレーブ側)のことを言い、そのためのコンフィギュレーションを行なうICをPDシンクコントローラ―と呼ぶ。
PD周りの設計は下の本でとても丁寧に解説されているので多くの説明はそちらに任せる。
参考(PDシンクデバイスの設計):Amazon.co.jp: はじめてのType-C電子工作 (技術の泉シリーズ) : じがへるつ: 本
さて、PD関係のコントローラーは中国製のCH○○○系のものが安価で秋月で販売されている。
とても簡易的な回路であればCH221Kを使うのが最も安価になるが、少し安全性を考慮した回路を作ろうと考えるとPowerGood(ちゃんとPD出力が得られていることを示す)端子があるCH224Kなどを使う必要がある。
ここで注意したいのは2点
- CH224KはGNDが裏面にあるためホットプレートorヒートガンによる実装必須
CH224Kの説明書の回路がおかしいので注意
なぜか説明書の回路ではCC1とCC2が互い違いにつながっているが、おそらく誤植。
下のような接続が正しいと思われる。
追記 [25/8/15]
まず、データシートに書かれている回路で問題なく動作する。
参考:データシートの回路
![]()
CC1,CC2がクロスしている点は若干混乱を招くが、実際クロスしてもしなくても動作する。
参考:
FF外から失礼します
— 涼鈴 (@Suzu_hmjn) August 12, 2025
先日CH224Kを4つほど焼いた身ですが疑問点にお答えできると思います
まず、結論から言いますと
・Type-CメスではDP,DMの結線が必要
・CC1, CC2のクロス配線は関係ない(Type-C端子の表裏で入れ替わるため)
になります
動画はCC1,2を入れ替えています。
DPDMは結線ありです。 pic.twitter.com/4QDKeTLayvご助言いただきありがとうございました!
参考書を読んだ限りではCCピンを用いたコンフィギュレーションプロセスにおいてCC1でもCC2でも同じデータを送受信しているようであった。そのため、実際どちらでも正常に動作するのだろうと考えられる。
CH224Kを使用したモジュール回路をネットを調べてみると、クロスさせているものもクロスさせていないものも同じくらい存在した。
なお、データシートにはType-Cオス端子を直接基板に載せる場合の回路例も載っているため、混同しないように注意する。
参考書:USB Type-Cのすべて (インターフェース・デザイン・シリーズ) | 著:野崎ほか-CQ出版 6.5章 p173~
ロードスイッチ回路
今回の設計を行うにあたって少し気になったのはPDコンフィギュレーションが確立されるまでDynamixelに5Vが印加されてしまう問題である。この問題に対しては、5V状態ではDynamixelに電圧は印加されず、12Vになった(PD出力が確立できた)タイミングで電圧が印加されるような回路で解決できる。
はじめはこれを電圧検出ICで行おうと考えていたが、CH224KではPD端子があるので、これとロードスイッチ回路をもちいることで目的の動作を実現することが出来ることが以下のサイトで説明があった。
USB PD電源から特定の電圧を出力できて、ブレッドボードにさせるアダプタを作った - @74thの制作ログ
参考(PDシンクデバイスの設計):Amazon.co.jp: はじめてのType-C電子工作 (技術の泉シリーズ) : じがへるつ: 本
そのため、この回路をシンクコントローラの後段に載せることとした。
マイコン
Dynamixelとの通信にはUART通信が必要なため、以前の電磁弁制御モジュールと比較してプログラムサイズが大きくなる。しかし、実際にプログラムを書いてみるとサイズが3kB(+ブートローダ2kB)程度だったためFlash8kBのもので良かったのだが、今回は秋月で安く手に入るAttiny1616を用いることとした(UPDI書き込み対応)
書き込み時の逆流について
電流書き込み時はArduinoを別で一台つかってUPDIで書き込むが、その際にArduino側の5Vが本基板の以下のマゼンタ色の部分に印加される。このとき3端子レギュレータの逆電流防止のための保護回路をつけていることに注意。また、ロードスイッチによりVBUSには電圧は加わらないようになっている。
半二重通信回路(検証中)
マイコンのUART(TXRX)からDynamixelへ(そしてその逆も同様)通信を行う回路は半二重通信回路であり、一般的には下のようなトランシーバICなどを用いて受信部送信部を構成する。
E150 Schematic … Delay回路の目的がよくわからない…
Besttechnology - TTL2DXIFマニュアル [BTE094 TTL2DXIF] - ナレッジベース
しかし、単なるロジックICで構成することも不可能ではない。以下に示すのはロジックIC(インバータと3ステートバッファ)のみでDynamixelの受送信部を構成した回路である。これは実際に動作した。しかし、1週間たたずしてモジュールが壊れたので少し問題を含んでいる可能性がある (この回路部に原因があったかは不明)。
また、Dynamixelからマイコン方向への信号が不必要であれば以下のような回路で通信が行えると考えられる。
