I2C-UART変換の性能評価

RpiRs-001、およびRpiRs-002に搭載されるLPC810に書き込んでいるサンプルプログラムは、ラズパイとの間でI2C通信を行い、UART信号に変換します。

今回は、ラズパイからLPC810へのI2C書き込み(データ55h)に対する、LPC810によるUART送信の応答時間を測定してみました。

  • ビットレート指定は、300/600/1200/2400/4800/9600/19200/38400/57600/115200(bps)の10種。

オシロスコープによる波形は、以下の通り。(上段がラズパイからLPC810へのI2C書き込み、下段がLPC810が出力するUART出力です)

(300bps)

(600bps)
(1200bps)
(2400bps)
(4800bps)
(9600bps)
(19200bps)
(38400bps)
(57600bps)
(115200bps)

整理すると下表のようになります。参考としてビット幅も併記しましたが、応答時間との相関が見られ、ビットレートが遅いほど応答時間も長くなっています。

LPC810側は、I2C受信バッファ(64byte)をポーリングしてUART送信バッファ(64byte)に移送し、送信許可ビットをセットする、ということをやっています。

ビットレートによって、この処理時間が変化することは考えにくいため、おそらくLPC内のUARTモジュールの応答時間なんだろうと推察します。

 

bps 応答時間(us) ビット幅(us)
300 5600 3333
600 2240 1666
1200 1840 833
2400 950 416
4800 500 208
9600 404 104
19200 344 52
38400 322 26
57600 298 17
115200 280 8.7

コメントを残す

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