先日、紹介したI2C/SPIプロトコルブリッジICの
SC18IS602BIPW/S8HP でちょっと引っかかった点について紹介します。
SC18IS602BIPW/S8HP はSPI接続のデバイスを
I2Cデバイス化する変換ICです。
GPIOの出力や入力はすんなり動いたのですが、
SPIの転送がなかなかできない問題が発生しました。
原因を調査するとI2CでSPI転送をしているにも関わらず、
SPIのクロック、信号が出ていない感じでした。
原因はGPIOの設定にありました。
4つGPIOがある中ですべてGPIOモードにするとSPI転送できないようです。
もう少し厳密に言うとSPI転送時は自動的にCSのIOが制御されるため、
SPI転送時で使用するCSはGPIO Enableにしてはいけないということです。
GPIOの設定はGPIO Enable (Function ID F6h)で行います。
SPI転送時にCSとして使用するGPIOは無効にして
SlaveSelectとして使用します。
SPI転送時のアドレスがSlaveSelectとして機能します。
普段のマイコンの感覚ではSPIのCSはGPIOで別途制御するのが一般的なので
I2C/SPIプロトコルブリッジICでもGPIOモードで全部制御する
ということを考えてしまいました...
ということでI2Cなので画面書き換え速度がSPIの約4倍以上要しますが、
WaveShare製の電子ペーパーをI2C化成功しました。
書き換え速度は遅いですが、I2C(Grove)接続で
簡単に制御できるのは魅力的です。
WaveShare製の電子ペーパーはSPIの配線の他に
Cmd/Data線、Reset線、Busy線の3つの配線が必要です。
SC18IS602BIPW/S8HP にはGPIOが4つあるため、
CS含めてすべてソフトで制御できます。
完全にI2C(Grove)接続のみで電子ペーパーを制御できます。
近日中にライブラリの公開とI2C電子ペーパーモジュールの販売を開始したいと思います。
ラベル:部品