2020年9月27日日曜日

CENTER 304用のUSB通信ケーブルを自作してみた。

前回、知り合いに頼まれたシリアル通信対応デジタル温度計CENTER 304のACアダプタを自作したんだけど、今回はシリアル接続用のケーブルを作ってみることに。

CENTER 304と309はツールが共通っぽい。ドライバとかからみて純正はSilicon LabsのUARTブリッジを使ってそう。CENTER 301はサンプリングが早いためか、単純に2ポートになっただけじゃなさそう。
出力ポートは3.5mmステレオミニジャックなので、ステレオケーブルをカットして使うことに。
ちなみに本体にはRS-232って書いてあるんだけど、付属の説明書を見ると"5V normal high"ってなってるから実はUART(active low)なのでは?
とりあえずダイソーのステレオ分配器から取り外したステレオジャックが余っていたので、これに適当なリード線をつけてテスト用ケーブルを作ってみた。
もし本当に5VのUARTだったら、適当なUSBシリアルアダプタに直結できるようにQIコネクタを取り付けておいた。
ピンアサインはミニジャックの先端がTX、真ん中がRX、根本がGNDになってるっぽい。なんとなくTXを緑、RXを黄色にしてみた。

このケーブルをCENTER 304に接続して電源を入れて、テスターでGNDとTX間を測定してみると5Vが出ていた。ということはActive Lowっぽい。
なのでCP2102とかが乗ってるUSB-UART変換アダプタに繋げばそのまま通信できるはず。RS-232レベル変換はいらなそう。
試しにCH340を使ったESP32ライタに今回作ったテスト用ケーブルを繋いでダウンロードしてきたツールを開いてみるとCENTER 304を繋いだ瞬間に認識してくれた。ちなみにCOMポートは1ポートしか無いためか勝手に認識されてた。
3.3V化したCH340でもちゃんと通信できてるってことはUSBシリアル変換アダプタならなんでも動きそう。CENTER 304は5VなのでCH340そのまま繋いでも大丈夫だし。
CENTER 304
USBシリアル変換アダプタのLEDを見ているとPC側からなにかデータを送信してCENTER304側が返してきてる感じ。それが1秒間隔で行われてそう。(ツールのサンプリングで一番短いのが1秒設定だからかな?)
純正ツールで動くんだから、Artisanでも動くだろう…少なくともケーブルには問題なさそう。あとはMacとかだったらMacで使いやすいUSBシリアルブリッジICを使うという手もありそう。ドライバいらないやつとかあるのかな?
流石にこの状態で納品するのはアレなので、未改造のCH340アダプタにL字のステレオミニジャックのケーブルを直結したものを作って渡そうと思う。

ちなみにこの手のステレオミニジャック→USBシリアル変換ケーブルって意外と売ってるっぽいんだけど、Intel Galileoのシリアルコンソール用ケーブルだとRS-232変換ICが間に入っているので使えないと思う。(論理反転だけならまだしも、電圧レベルが違うので危険かも)

単純なシリアル通信なのでESP32とかを使ってBluetooth化もできそう。しかし信号レベルが5Vなのでレベルコンバータを挟む必要があるけど。CENTER301だと説明書に通信プロトコルも書いてあるみたいだけどやっぱりCENTER304とは違うのかな?ESP32に接続してWebsocket使ってリアルタイムモニタリングとかロギング機能とか色々遊べそう。

最後に前回作ったUSB給電ケーブルとこの通信ケーブルを同時に使用できるのかを検証してみようと思ってUSB給電ケーブルから電源を供給した状態で通信ポートの方のGNDを確認してみたところGNDのレベルが違う…(4Vぐらいの差がある)
はじめに色々テスターで測定している時にどうも電源ラインのGNDと通信ラインのGNDが繋がっていなさそうなので気にしていたんだけどまさかそんな罠があるとは…
ということで給電アダプタの方に絶縁DCコンバータを使ったほうが良さそうということで改造することに。

納品は来週になりそう…(美味しいコーヒーが待ってるらしい



0 件のコメント:

コメントを投稿