I2C通信失敗中

AVRのI2Cモジュールを使って通信を行っているが、問題発生中。
AVRのTWIは内部状態+TWCRレジスタの値で動作するが、内部状態を書き換えることができない。
で、SLA+Rを送信すると、そのシーケンス内では受信しかできない。
データシートを読んだところ、デバイスアドレスとレジスタアドレスは送信で送り、レジスタのデータは受信で1回の転送内でデータ送受信方向が変わるように見えるが、これは実現できないということらしい。


とりあえず、ES9018のデータシートだけだとらちが明かないので、TIのデータシートも見たところ、アドレスだけ書き込んだ後、再びスレーブアドレスを送って受信するっていう方法があった。
I2Cの標準的にはこれが正しいみたい(EEPROMとかも同じ方法)なので、一回やってみよう。


上手くいかない。
やっぱり一回のトランザクション内で、方向の切り替えが必要か?