I2Cアドレス範囲に制限はあるでしょうか?



  • お世話になります。
    RTC-8564NB(Addr:0xA2)を接続するとエラーが出ます。
    試した範囲では何も接続せずI2Cアドレスを0x80以上にするとエラーになるようです。記述方法等、注意点があればご教示下さい。宜しくお願い致します。



  • @fuminori さん

    i2cのデバイスアドレス自体は7bit分しか無いので0x80以上ではエラーとしております。

    秋月さんのサイトより、RTC-8564NBのデータシートを確認しました

    0_1551946001363_スクリーンショット 2019-03-07 17.05.20.png

    アドレスは0b1010001* = 0xA2 or 0xA3となっておりまして、このとき、obnizのi2cには下一桁を除いた0b1010001 = 0x51を指定します。

    Read/Write判別用の最後の1bitはwrite()readWait()を読んだときに自動で付与されますので、Read/Writeに関係なく、デバイスアドレスとして7bitのみを指定いただければと思います。



  • ご教示ありがとうございます。
    LSBまで含めて指定(0xA2:8bit)するのか、LSBを除いて指定(0x51:7bit)するのかの記述方法の違いということで了解致しました。
    実は現在PICから制御しており(アドレス部は RTC_Addr>>1,(RTC_Addr+1)>>1 と記述)、同じI2Cラインをobnizからも制御(時分割)したいなと思いまして。思慮不足でお手数をお掛け致しました。開発頑張ってください。


Log in to reply
 

SUGGESTED TOPICS