お世話になっております。
R8C33Cマイコンにて、I2C通信を勉強しております。
R8C33Cマイコンとセンサーモジュール間でI2C通信を行い、データ値を読み取りたいのですが、レジスタ設定から迷走になっており困っております。
アドバイスを頂けると、大変助かります。
言語はC言語を使っており、開発環境はHEWを使用しています。
I2C通信を行うにあたって、現状私が理解しているのは、
・R8Cマイコンは、高速オンチップオシレータを使用し、20MHzのクロックで駆動。
・R8CマイコンのI2C通信のポート設定は、p3_7をSDA、p3_5をSCLを用いる。
・R8C33Cマイコン側は、マスタ側で受信のみ。
・センサーモジュールは、スレーブ側で送信をし続ける。
・モジュールのスレーブアドレスは0x39。
・モジュールからは1バイトずつ、データを受信したい。
R8C33CのハードウェアマニュアルのI2Cバスインターフェース章のレジスタ設定例を参照し、実装しているのですが、うまくできません。。
マイコン初心者のため、上記の記載だけでは、伝わりづらいのかと思うのですが、よろしくお願いいたします。
TSL2561。ググル先生に聞いたらadafruitの小基板が先頭に来た挙句、Arduinoのサンプルまであるんですね。GR-SAKURAあたりの方が勉強ラクなんじゃとも思いますがさておき。
cdn-shop.adafruit.com/.../TSL2561.pdf
ここの12-13ページあたりが通信フォーマットになりますが、これらのうちどれを実装されたんでしょう?(Figure10から17のどれ?)
あと、ここの資料を見ると、
strawberry-linux.com/.../tsl2561-manual.pdf
「内部レジスタ 0xA0 に 0x03 を書き込むことでセンサが動作を開始」とか書かれてるので、センサ動かすにはおまじない等が必要と思われます。ついでにこの資料にアドレスも何やら書かれてますが、もしこれのOPENと同じ状態なら、0x39ではなくて、0x72|0x01か、0x72&0xFEな気がします。
それと、オシロはお持ちですか?あるなら波形画像とって、それも載せてくれた方がデバグしやすいです。