今回はI2C/UARTプロトコルブリッジICのSC16IS740/750/760 を応用したI2C/RS422-RS485コンバータ基板について紹介します。I2C/UARTプロトコルブリッジICにRS422-RS485トランシーバICを組み合わせることでI2CからRS422-RS485の送受信をできるようにしました。
以前に開発したI2C/Uartコンバータと同様にマイコンのメインクロックに依存せずにボーレートを設定可能なことやソフトウェアUARTのような高負荷にならずに通信できる等の特徴があります。RS422-RS485のトランシーバICを搭載することでRMD Servoモータ等のRS485対応のデバイスをI2Cから制御することができます。
実際に基板を設計してみました。
マイコンからはSC16IS740/750/760 をI2Cデバイスとして制御し、RS422-RS485のボーレート設定、半二重の送信/受信処理をすることができます。64 bytesのバッファを内蔵しているため、通信速度が遅いI2Cでも一旦、バッファで受けて後から受信したデータを読み出すといったことが可能です。
SC16IS740/750/760の電源は3.3Vですが、信号の各ピンは5V耐圧のためArduino UNOなどに接続してそのまま使用することも可能です。基板上に3.3Vレギュレータを搭載しているため、5Vもしくは3.3V電源の両方で動作します。
I2CはGrove互換コネクタ、RS422-RS485の接続は供給電源のV(Groveの電源そのまま直結)、RS422-RS485の+、RS422-RS485の-、共通GNDのGを4ピンターミナルにしました。基板上でRS422-RS485の+と-はそれぞれプルアップ、プルダウンしています。なお、終端抵抗は4ピンターミナルに配線と一緒に接続することが可能なため、基板パターンのみの未実装にしました。
手元にSO-ICのトランシーバICがなかったため、無理にDIP8をSO-ICにハンダしましたが、問題なく動作を確認することができました。サンプルコードを作成して設計に問題なければ、量産版の製造と販売開始をしたいと思います。