以前にUART I2Cプロトコルブリッジのリニューアル版について紹介しました。UART I2Cプロトコルブリッジの旧バージョンはSC18IM700、リニューアル版はSC18IM704となって別の製品として販売されています。
ハードウェアについてはピンアサインやGPIOモード、IO電圧、バッファサイズで変更があります。ただし、SC18IM700とSC18IM704でコマンドの互換があるものの、設定の一部は互換性がなくなっているようです。今回は変更となっているコマンド部分の差について紹介したいと思います。
■I2C CLK
I2C CLKはデフォルトでは100kHzの設定になっており、特別な理由がない限りは変更する必要がありません。CLKを落としてより通信を安定させたい場合やCLKを上げて少しでも通信レートを上げたい場合等で変更する必要があります。
設定自体のレジスタアドレスは同じですが、設定値が変更になっています。SC18IM700では2つのレジスタを合わせた値がCLKとして反映されてる仕様(I2CClkHとI2CClkLの差がない)でしたが、SC18IM704は2つのレジスタに16bitで設定した値がCLKとして反映される仕様(I2CClkHとI2CClkLを区別する)に変更されています。
個人的にはI2CClkHに値を設定すると大幅にCLKが低下するため、I2CClkHの用途が限定的で以前の仕様の方が利便性は良かったと感じました・・・
・SC18IM700
・SC18IM704
■I2C CTO
I2C通信のタイムアウト時間設定はデフォルトでは無効化されています。
SC18IM700の場合、CTOのビットのみを有効化したするとデフォルトのタイムアウト時間は230msec程度です。
一方、SC18IM704の場合はI2C_CLKも設定値に関係する仕様になっています。I2C_CLKがデフォルトの100kHzの場合、CTOのデフォルトは35msec程度とタイムアウト時間が短くなっています。また最大でも90msec(I2C_CLK=100kHz)程度で設定可能なCTO時間の範囲が狭くなっています。
個人的にはI2C_CLKに依存せず、CTOの調整幅が大きいため、以前の仕様の方が利便性は良かったと感じました・・・
・SC18IM700
・SC18IM704
なお、SC18IM700とSC18IM704をソフトウェア側で区別するためにはSC18IM704に搭載された「Read version function ID」コマンドを利用することで確認することが可能です。アスキーで「VP」の文字列(0x56,0x50)を送信することで「SC18IM704 1.0.2」という感じで応答を確認することが可能です。応答がない場合はSC18IM700と区別できます。
後継のSC18IM704はIO電圧、バッファサイズ等、拡張が行われている一方でレジスタ設定については以前の仕様の方が利便性が良いと感じました。