ちょっとTea Time!? 【備忘録】I2Cアドレスの憂鬱 2024.9.25

I2C通信はSDAとSCLの2本の線で制御できる便利なものだけど、
識別アドレスが7ビットです。うまく割り振りできていないと、通信衝突がおきます。
現在Renew DIV5142の検討を進めていますが、PCM5142を4個使う予定です。
となるとアドレス10011XXは塞がってしまいますので、そこに同じアドレス群になる
PCM179Xを追加しようとすると、別のI2C回線が必要になってしまいます。

I2Cアドレスなんて余裕あるぜ!と、あまり考えずに設計するととんでもないことに
なりそうなので、すこし整理しておきましょう。

私の備忘録です。

A7 A6 A5 A4 A3 A2 A1 A0 TI AKM ROHM Cirrus Logic MicroChip etc
0 0 0 0 0 X X R/W
0 0 0 0 1 X X R/W
0 0 0 1 0 X X R/W
0 0 0 1 1 X X R/W
0 0 1 0 0 X X R/W AK449X(DAC)
AK4137(SRC)
CS8416(DAI)
0 0 1 0 1 X X R/W CS8416(DAI)
0 0 1 1 0 X X R/W
0 0 1 1 1 X X R/W BD34301(DAC)
BD34352(DAC)
0 1 0 0 0 X X R/W PCA9555(I0) MCP23017(I0)
0 1 0 0 1 X X R/W PCA9555(I0) MCP23017(I0)
0 1 0 1 0 X X R/W
0 1 0 1 1 X X R/W
0 1 1 0 0 X X R/W
0 1 1 0 1 X X R/W KT013(RADIO)
0 1 1 1 0 X X R/W
0 1 1 1 1 X X R/W SSD1306(OLED)
SH1106(OLED)
1 0 0 0 0 X X R/W PCM9211(DAI)
INA226(ADC)
1 0 0 0 1 X X R/W
1 0 0 1 0 X X R/W ES9018(DAC)
ES9038(DAC)
1 0 0 1 1 X X R/W PCM179X(DAC)
PCM5142(DAC)
TAS5756(DAC)
M5000(DAC)
CS4398(DAC)
CS4245(DAI)
1 0 1 0 0 X X R/W 24FC512(EEPROM)
1 0 1 0 1 X X R/W Si514(OSC)
1 0 1 1 0 X X R/W
1 0 1 1 1 X X R/W
1 1 0 0 0 X X R/W Si5351(OSC)
1 1 0 0 1 X X R/W
1 1 0 1 0 X X R/W MCP3425(ADC) DS1307(RTC)
1 1 0 1 1 X X R/W
1 1 1 0 0 X X R/W SRC4392(SRC)
1 1 1 0 1 X X R/W PCA9539(IO) SI5340(OSC)
1 1 1 1 0 X X R/W
1 1 1 1 1 X X R/W

(必要に応じて追加予定)