動作環境
Windows 8.1 Pro (64bit)
- on VMware workstation 14 Pro, version:14.0.0 build-6661328
Analog Discovery 2 (以下AD2)
WaveForms 2015 v3.7.5
Raspberry Pi > C > RPi_i2c_comm_180227: v0.4 > GPIOピンのレベル設定と、レベル読取まで
で実装中のI2C通信確認のため、AD2を使い始めている。
自前実装のI2C通信が失敗する(読取値が0xFFになる)ため、カンニングすることにした。
GitHubにあるPythonスクリプトで測定値の取得ができる。それのスクリプトで実行中のI2CのSCLとSDAをAD2で取得した。
Re-Startとは何か?
参考
Repeated Start Condition
...
Instead of sending the stop condition it is also allowed to send another start condition again followed by an address
意訳「Stop条件を送らずに再度Start条件を送る」
備考
自前のI2C通信処理において、Stop条件のタイミングでStart条件を送信するとRe-startとしてAD2で測定できるようになった。
ひっかかり
- データシートではRepeated Start conditionでなく、Stop conditionとインターバル後のStart conditionが記載されている
- 上図の波形を見てもStop conditionの15msec後にStart conditionに思われる
- 自前の実装でもStop conditionの15msec後にStart conditionで測定値が読めるようになった