STM32(BluePill)がArduino環境で動くようになったので、I2Cにチャレンジしています。
ターゲットデバイスはジェスチャー検知デバイスのAPDS-9960です。ちょうど、Arduinoの標準ライブラリがあるので、これで動かしてみたいと思ってトライしています。
で、ブレッドボード上にこんな感じで組んでみました。
この記事でRTOSのテストを兼ねてLチカしたり、ラジコンサーボを動かしたりした環境に追加したので、それらが残ったままになっています。
で、ライブラリのサンプルを動かしてもさっぱり動きません。オシロで波形をみても、SDAが出ておらず、わけがわかりません。
もっとシンプルに、I2Cデバイスのスキャンを行うサンプルプログラムを実行したのですが・・・。
上の赤がSCL(PB7)、下の黄色がSDA(PB6)です。そもそもStart Conditionが出ていないので、動かないのも当たり前なのですが、理由がさっぱりわかりません。ターゲットデバイス以前の問題です。
SoftWire.hをインクルードして、ハードウェアI2CではなくソフトウェアI2Cとしても波形は一緒です。
うーん。