PR 記事には広告が含まれています
Translate

レベル変換付きのUSBシリアルアダプタの設計方法

スポンサーリンク

電池で動作する機器のシリアルを送受信したくて、任意の電圧とのレベル変換機能があるUSBシリアルアダプタを設計したいと思います。

スポンサーリンク

必要な部品

  • USBコネクタ変換基板
  • USBシルアル変換IC CH340C
  • レベル変換IC RS0102
  • 抵抗・LED・ピンソケット

です。

USBコネクタ変換基板

USB TypeCのコネクタから、電源とD+,D-の信号を引き出すための変換ボードです。上記の商品は、あらかじめCCピンに5.1kΩが接続されているので、外付けする必要がないので便利です。

USBシルアル変換IC

\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング

CH340Cは、接続する部品はコンデンサ2個だけ、あとはUSBコネクタのD+,D-を接続するだけという、とっても簡単に使えるUSBシリアル変換ICです。

ロジックレベル変換IC

RS0102(データシート)は、1.6Vから5.5Vまで対応した2回路入りのロジックレベル変換ICです。

USBシリアル変換ICのロジックレベルは5Vなので、ターゲットの機器のロジックレベルを5Vに変換します。

スポンサーリンク

回路

回路図

ロジックレベル変換つきUSBシリアルアダプタ回路図

回路は上の図のようになります。左からUSB変換基板、USBシリアル変換IC、確認用LED、ロジックレベル変換ICです。とても少ない部品で構成されているのがわかります。

試作

ユニバーサル基板に組み立てました。VCCに適当な電圧を印加し、RXDをGNDに接続すると、RXDのLEDが点灯しました。動作しているっぽいです。

パソコンで認識するか

USBシリアルがパソコンで認識できました

それではパソコンに接続してみます。シリアル送受信のソフトのポートに「usbrerial-1420」が追加されました。パソコンにUSBシリアルとして認識されていることが確認できました。

スポンサーリンク

実験

構成図

実験構成図

ロジックレベル変換のUSBシリアルアダプタが正常に動作するか、実験してみます。データの送信機にはPadaukのPFS123というマイコンを使います。このマイコンでシリアル信号を生成します。

マイコンの電源に安定化電源を接続し、電源電圧を変化できるようにしておきます。電源電圧を変化させると、シリアルのロジックレベルもそれに合わせて変化します。

電源電圧5V

まずは電源電圧を5Vにして実験です。Padaukマイコンは、super easy PDK Programmerを使って、プログラムの書き込みと実行を行っています。

5Vでの受信結果

シリアルのソフトにデータがどんどんやってきます。Padaukマイコンは、AA、カウント値、内部の1.2VリファレンスをADした値の合計4バイトを送信しています。受信データもそのようになっていますね。

4096 / AD値 *1.2 = 電源電圧 となるはずなので、計算してみます。

0x03B9を10進数に直すと953です。4096 / 953 *1.2 = 5.16V。電源電圧は5.16Vと推定されます。Padaukのリファレンス電源やADはそんなに正確ではないので、こんなもんだと思います。

電源電圧3.3V

3.3Vでの受信結果

電源電圧を3.3Vに下げてみます。大丈夫です。受信できています。

AD値の0x05C6を10進数に直すと1478です。4096 / 1478 *1.2 = 3.33V。電源電圧は3.33Vと推定。だいたい合ってますね。

2.08V

2.08Vでの受信結果

電源電圧をさらに下げて2.08Vにしました。これより下げるとマイコンが停止してしまいました。

AD値の0x0934を10進数に直すと2356です。4096 / 2356 *1.2 = 2.09V。電源電圧は2.09Vと推定。

電源電圧を2.08Vまで下げても正常に動作していますね。

正常に動作しました

レベル変換つきのUSBシリアルアダプタが正常に動作することがわかりました!!

スポンサーリンク

基板を発注

基板を設計する

レベル変換つきUSBシリアルアダプタ

KiCadで基板を設計します。せっかくなのでTXDとRXDだけでなく、Arduino Pro Miniの書き込み機と同じピン配置でDTRとCTSも追加してみました。

シリアルの信号ってどれがINでどれがOUTなのかわかりにくいので、信号名にINとOUTを追加しました。

8枚面付け

まとめて実装しやすいように、面付けします。今回は8枚を面付けして、10cm x 10cmの基板にしました。

子基板と子基板とはVカットで分割できるようにしました。Vカットの溝を掘ってもらいたところに、外形線で線を引きます。そして線の先端に「V-CUT」とシルクレイヤに書いておきます。Vカットは、横と縦のみ製造可能で、斜めは製造できません。

基板の発注

基板の製造パラメータを設定

いつものPCBgogoに基板を発注します。まずは基板パラーメータの設定です。色々ありますが、上の5カ所を設定すれば十分です。

メタルマスクの製造パラメータの設定

メタルマスクも一緒に作ってもらいます。メタルマスクは上記の2カ所だけ設定すればOKです。PCBgogoは全て日本語でOKです。このためメタルマスクのカットの指示も日本語で大丈夫です。

以上で設定が完了です。カートに入れてガーバーファイルをアップロードします。

レビューが完了するとレジへ進める

ガーバーファイルをアップロードすると、PCBgogoでデータのレビュー(チェック)が開始されます。場合によっては時間がかかりますが、今回は5分で完了しました。右下のレジに進むをクリックします。

配送手段を選択して支払う

配送手段を選択し、右側の「支払い」をクリックします。PayPalの決済画面が表示されるので、支払いを完了させます。

以上で発注完了です。

届いたら組み立てたいと思います。

2025.7.17追加 続きはこちら

追加終わり

ここで紹介している「レベル変換機能付きUSBシリアル」はKohacraftのShopで販売しています。