久しぶりに動かしてみたシリーズ。STM32F103C8 + ChibiOS の環境でやってみた。
基本的に ST7735 を使った液晶 などとプロトコルそのものは一緒なので、コードは流用できる。が、ハマってしまった。
- SCL: SCK
- SDA: MOSI
- RES: RESET
- DC: Data/Command
- BLK: Backlight control (float で良い)
ハマったところ: CS (チップセレクト) がない
写真を見たらわかるが CS 信号がピンヘッダに出ていない。どうやら GND に接続されているらしい。この状態だと CPOL (極性) を 1、CPHA を 1 (いわゆる SPIMODE=3) にしないとダメなようだった。
そして CS の制御ができないと何が困るか、というとクロック信号を不要に発生させるとグリッチが発生してしまう。
今回はSPIデバイスのオン/オフを都度都度行っていた関係でどうしてもクロックに余計な信号が入っていたので、それをなくしたら動いた。
参考文献
- support the IPS 1.3" ST7789 with CS pin to ground? clock polarity の話や clock のグリッチが原因ではないか? ということが書いてあって解決の参考になった