【備忘録】Raspberry PiでI2Cエキスパンダーを使う

Raspberry Pi WHでI2Cエキスパンダーを使用した時の備忘録。


環境

Raspberry Pi WH
 

使用したI2Cエキスパンダー

MCP23017 Microchip社製
※秋月電子様で販売してます
 

Raspberry PiのI2Cは最初からプルアップ抵抗が内蔵されているのでSDA、SCL、GNDをつなぐだけでOKです。

ただし、Raspberry PiのI2Cは駆動力が貧弱なのでデバイスが複数ぶら下がる場合はI2Cバッファを経由する必要があります。

 

> sudo i2cdetect -y 1

で0x20が表示されなかったら配線間違いです。

(チップアドレス端子が全てLowの場合)

 

はまりポイント

1.RESET端子はLowレベルで動作します。

->使用するときはHighレベルにしておく必要があります。

 

2.初期状態はIOCON.BANK = 0になっている事に注意する

->GPIOAで出力する場合は下記コマンドになります。

> sudo i2cset -y 1 0x20 0x00 0x00 b

> sudo i2cset -y 1 0x20 0x12 0x01 b

これでGPIOAのポート0がHighになるはず。

 

IOポートの拡張をするだけなので直接負荷を接続しないようにしましょう。

今回はリレーの制御に使用しましたが、MCP23017の先にTBD62083を接続しました。

ダイオード内蔵なので逆起電力の処理とかそういうのを考えなくていいから便利です。

 

 

カテゴリー: 電子工作 パーマリンク

コメントは停止中です。