I2C UART 変換IC SC16IS750

I2C UART 変換IC SC16IS750を使ってみた。

Arduino(ATMEGA328P-PU)を使っているとシリアルポートが足りない事ありますよね。
センサー類はI2C対応が多いけど
GPSモジュールとかはシリアルでしか信号出ていないし。

今回そんな悩みを解消してくれる【I2C UART 変換IC SC16IS750】を使ってみました。

テストしたモジュールは
Switch science の https://www.switch-science.com/catalog/2310/ です。
このボードは I2C固定でデフォルトのアドレスは (0xBA)となっています。

Arduino用のライブラリは
ボード供給元の Sparkfun では提供されていないので
https://github.com/SandboxElectronics/UART_Bridge を使いました。
githubからzipファイルをダウンロードして
Arduino IDE のライブラリに追加します。
(追加の手順は割愛します。)

ライブラリを追加したら
ファイル → スケッチの例 → UART_Bridge-master → I2CSELFTEST を開きます。

6行目の
SC16IS750 i2cuart = SC16IS750(SC16IS750_PROTOCOL_I2C,SC16IS750_ADDRESS_AD);

SC16IS750 i2cuart = SC16IS750(SC16IS750_PROTOCOL_I2C,SC16IS750_ADDRESS_BA);
に変更します。(変換ボードのアドレスを変更した場合は変更したアドレスに合わせます。)

このサンプルスケッチはループバックテストなので
TXとRXを接続してください。

シリアルモニタで確認すると

device found
start serial communication
とだけ表示されます。なんか動いていないように見えますが
このサンプルプログラムを見ると
送信したデータと違うデータを受信したときのみ
“serial communication error” と表示して
正常の場合は何も表示しないようになっています。

正常時

使ったサンプルプログラム

次回はシリアル出力の GPSモジュール を接続してみます。


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください