Raspberry Pi と i2c* コマンドでMCP23017の基本的な動作確認
- i2cを有効にする
- SDA,SCLを接続する
- A0~A2 はプルダウン
- /RESETはプルアップ
- i2cのプルアップは不要
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
ICONでバンクを切り替えられ、それでアドレスが変わる。以下はICON.BANK=0(デフォルト)
方向(IODIRA)
i2cset [-f] [-y] [-m MASK] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE] ... [MODE]
# i2cset -y 1 0x20 0x00 0x00
ラッチ(OLATA) PortAを全部Highにする
# i2cset -y 1 0x20 0x14 0xFF
ラッチ(OLATA) PortAを全部Lowにする
# i2cset -y 1 0x20 0x14 0x00
方向(IOIRB)
# i2cset -y 1 0x20 0x01 0xFF
入力(GPIOB)
i2cget [-f] [-y] I2CBUS CHIP-ADDRESS [DATA-ADDRESS [MODE]]
# i2cget -y 1 0x20 0x13
GPB0のみLowなら
0x00
GPB0のみHighなら
0x01
必要に応じてプルアップ・プルダウンしておくこと。プルアップ機能がある。