google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

0.96インチ 128x64ドット OLEDディスプレイ

 Arduinoで使うキャラクタ表示の液晶のストックが無くなりそうなので、0.96インチで128x64ドットのOLEDディスプレイをAlEexpressから購入しました。

 注文したのが12月の初め頃だったのですが、なんと正月の年賀状と一緒に届きました。注文から受け取りまで24日掛かりましたが、送料最安コースなのでこんなもんでしょう。

▼0.96インチOLED  (左のユニットは画面保護用のシールを剥がしています)
0.96インチOLED
 1個 $1.99を2個買い、送料込みで$4.14でした。安いのでもっと多く買いたかったのですが、3個目から送料が急に上がったので2個にしておきました。ちなみに、少し送料を増やせばデリバリーが早くなるようです。なお買ったのは白色表示の物で、インターフェイスはI2Cです。
 
 AliExpress のページはこちら→new original 4pin 0.96" White/Blue/Yellow blue 0.96 inch OLED 128X64 OLED Display Module for arduino 0.96" IIC I2C Communicate

 このモジュールで気になったのは電源電圧です。調べると3.3Vから5Vまで使えることになっていました。秋月のサイトに同じような物がありますが、そちらも電源電圧は3.3-5.0Vになっています。こういう場合、以下のようなケースが考えられます。

 1) 電源電圧は3.3Vから5VまでOK。(例えば、ATmega328)
 2) 電源電圧は3.3から5VまでOK。入力は5Vトレラントなので、電源電圧3.3Vで使っていても 5V入力が可能。
 3) 仕様上の電源電圧は3.3Vだけど、5Vでも動く。但し保証外。

 1)なら安心なのですが、コントローラーチップのSSD1306のデーターシートを読むと電源電圧は3.3Vとなっています。5Vは絶対最大定格すら超えているので、そんなに高い電圧かけてはいけません。

 まさか3)のように危ない物では無いと思いますが、中華マーケットにはこういう危ない部品を見かけることがあります。

 ともかく、このあたりの疑問をすっきりさせるために、インターフェイス基板の中身がどうなっているか調べてみました。

▼インターフェイス基板 (表示面の裏側です)
OLEDのインターフェイス基板(I2C)
 上の4ピンのピンヘッダがインターフェイスコネクタで、下側の30ピンのフレキを経由してSSD1306のチップに接続されています。

▼回路図 (図をクリックで別窓に拡大図)
0.96インチOLED基板回路図
 フレキ側のピンの信号名は、Webで調べた情報を元に記入しているので、多少間違っているところがあるかも知れません。

 この回路図で疑問点は全て解決しました。電源はU2の三端子レギュレーターを通して供給されていました。つまり、OLEDモジュールに供給される電圧は3.3Vで、入力に3.3V以上が供給された場合は3端子レギュレーターで降圧される仕掛けになっていました。事前に三つのケースを想定していたのですが、結果はそのどれでもなく、部品コストを掛けた真面目な対応が行われていたことになります。

 I2Cのプルアップ抵抗はこの基板で作った3.3Vに接続されています。つまりI2Cバスの電圧は3.3Vになります。そんなことで、外部に5V電源から垂らしたプルアップ抵抗を入れてはいけません。なお、Arduino側が5V電源だったとしても、I2Cのピンはオープンドレイン出力なので、そのままで(アマチュアが使うなら)大丈夫です。

 自分用のメモを兼ねてこの回路の説明をしておきます。

 BS0-1などの制御ピンに加える電圧の組み合わせで、SPIやパラレルなどのインタフェイス方式の選択を行っています。C4, C3 はチャージポンプのバケツ。C2, C1 は3.3V電源のデカップリング。R10, D1, C9 はパワーオンリセット回路。R6, R7 は I2Cバスのプルアップ、R5 はセル電流設定、C6, C5 は表示セル駆動電圧のデカップリング用だと思います。

▼動作テスト
0.96インチOLEDデモ画面
 Adafruit のデモプログラムを動かしている様子です。

▼特性測定中
OLEDの特性測定
 せっかくなので波形や消費電流を見てみました。

 電源の消費電流は最大で約15mAで、表示するセル(画素)が減るとその分少なくなって、最小では1mA以下になるようです。なお、デモプログラムを走らせたままで測定したので、最低がどれくらいまで減るかは今回は調べていません。

▼I2Cの波形
SSD1306 I2C波形
 上がデーター(SDA)で、下がクロック(SCL)です。

 振幅は3.3Vになっていて、クロックのポジエッジでデーターを読んでいる感じの波形です。クロックレートは約400kHzです。なお、以前測定したハードウエアSPIインターフェイスの液晶は4MHzでした。

◆まとめ
 0.96インチは小さいと思ったのですが、OLEDなのでコントラストが非常に高くて見易いです。今後何か作る時にぜひ組み込んでみたいです。あと、同程度の解像度で横長の 128x32の物も売られているのでこっちも欲しくなりました。

 今回、このOLEDを表示させるためのライブラリはAdafluit のものを使いました。他にU8gのライブラリが使える、というかこっちの方が有名のようです。ただ、U8gライブラリははプログラムの書き方が独特(firstPageで開始し、whileを使ってnextPageで終了待ち)なので、出来れば使いたくないです。(私が良さに気付いていないだけかも知れません)

 あと、このドライバチップの名前はSSD1306ですが、この1306という数字を見ると2SC1306を思い出します。同じ気持ちになる人が日本中探すと僅かにいるはずなので、そのあたりの話はまた記事にしたいと思います。
関連記事

コメントの投稿

管理者にだけ表示を許可する

2SC1306の記事が楽しみです

面白そうなものを見つけてはすぐに試し解析する感性と技術力にはいつも感心します。

2SC1306がどんな石か気になったので検索すると「RJX-601」の記事が見つかりました。
ラジオペンチさんの昔話がどのような話になるのか楽しみです。

re:2SC1306の記事が楽しみです

mytoshi さん、どうもです。

おっしゃるように、2SC1306は1960年代の無線機のファイナルに使われていたトランジスタです。アマチュアに人気があった石で、当時は略してまるろく、まるなな(2SC1307)などと呼ばれていました。

ネタが揃ったら記事にしますね。
カレンダー
09 | 2019/10 | 11
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード