Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

SSD1306のSPI・I2C切替え可能版を買ってみた。

最近お気に入りのSSD1306の載ったOLEDモジュールのSPI版を買ってみた。
今までのはI2C接続専用のものだが、これはSPIとI2Cを基板上のジャンパー・チップによって切り替えられる仕様のモジュールだ。
届いたモジュールはSPI仕様になっていた。

ピンの表記はSCKとかSDAとなっているけど電源以外に2ピンしかなかったI2C専用モジュールと比べて3ピン多い。

例によってAdafruitのサンプルを拝借して動作確認するわけだが、スケッチには、
#define OLED_MOSI 9
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 13
とある。
OLED_CLK = SCKだろうから、OLED_MOSI = SDAだろう。
つまり、
SDA = 9
SCK = 10
DC = 11
CS = 12
RES = 13
とつないだ。
何事も無くスケッチが走る。
動画に撮ってI2Cとの比較をしてみる。



最初の斜線のグラフィックを書き終えるのに、SPIでは36フレームで1.2秒、I2Cでは60フレームで2秒かかった。
描画のコードをちゃんと見てはいないが、スケッチ上では初期設定以外は全く同じプログラムになっている。
なので、この時間差はデータ転送の速度によるものと考えていいと思う。
PICだったらデータ・ラインのチェックにロジック・アナライザでも持ち出してるところなので、速度もちゃんと測定するだろう。
Arduinoだとこの程度でお茶を濁す。
ま、速いことは速いが、ピンが3本余分に必要だ。
速度の必要な用途といったらゲームくらいしか思いつかないので、I2Cで十分かなと思ったり、でも30円差ならこっち買っとくかと思ったり。

このエントリーをはてなブックマークに追加

Posted under: Arduino, 液晶, 電子工作その他


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.