I2Cバスリピーターの効果

RpiRs-002で改善を行ったI2Cバスについて、波形観測してみました。

Raspberry Pi3(以下、ラズパイ)のI2Cバスに16桁2行のLCD(AQM1602)を接続し、1秒ごとに時刻を表示させます。

まず、バスリピーターなし(上がSCL、下がSDA)の方から、


秋月電子のサイトでも注意されてますが、ラズパイ上でSCL/SDAともプルアップされているため、slave(AQM1602)のackがlowレベルに引き込み切れてません。このため、動作が不安定になります。
この波形は、位置指定コマンド(3e,00,c0)、時刻表示コマンド(3e、40、31、34、3a、35、36、3a、35)を送っているときのものですが、途中でシーケンスが終わってしまっています。アスキーコードで送られているので「14:56:5」となり、秒の1桁目が送られていないことになります。

 

一方、バスリピーターあり(RpiRs-002)の方は、


slaveのackが十分lowレベルまで引き込めており、時刻表示コマンドも「13:41:5x」と最後の桁まで送られています。(右端が少し切れてしまってますが…)

 

ちなみに、デジタルオシロ(SDS1202X)のデコード機能(今回は、I2Cバス)は、シリアル波形を8ビットコードに変換してくれるので便利ですね。。

コメントを残す

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