見出し画像

OLEDティアリングの調査


  • 前回の調査で、OLEDで、転送面において、30FPSくらいの描画ができそう、とわかった

  • 動画を撮って、30FPS近くで描画されていそうと確認できた

  • しかし、ティアリングが発生していそうだ、解決方法がないかを調査してみよう

  • Amazonで購入した以下のディスプレイ


先に結論を述べる、現在の個人的な結論は以下

  • 1インチの2色のディスプレイで表示するものなんて、ちょっとした情報でしょ?

  • がんばって、ティアリング対策しても、誰も喜ばないよ

  • 多少のティアリングとか画面描画の乱れとか、気にせず、好きなタイミングで、描画命令発行すればいいじゃね?



結論に至った経緯

調査

  • 秋月電子通商さんのページにあるデータシートを読んで

  • FRというピンをみつける

    • OLED側のRAMに書き込まれるタイミングのシグナル、とある

    • ティアリングを防止できる、とも書いてある

  • これだ!


  • SSD1306のブロック図にFRという出力がある!

  • これこれ!

  • フレームの同期のことも書かれている

  • FRピンの立上りで、書き始めて、

  • 次のFRピンの立上りまでに、書き終えればよさそう


  • フレームの周期の計算式もある

  • 特定のコマンドで、フレームの周期を変更できそう

  • これが、フレームレートがプログラマブルという意味なのか?

Embedded 128 x 64 bit SRAM display buffer
Programmable Frame Rate and Multiplexing Ratio

https://akizukidenshi.com/catalog/g/g112031/



  • 必要な情報がそろったぞ!

  • 楽しそう、試してみよう!

  • OLEDでティアリングしない綺麗な絵を描画したい!



しかし

  • SSD1306TR1のOLEDと接続するケーブルにFRピンがない!

  • ピンではなくて、特定のコマンドで取得するのかもしれない、と思い

  • コマンドをざっくりみるが、みあたらない

  • 以下、見づらいがOLEDと基板を接続するケーブルのピンの配置


  • SSD1306Zの方には、右から6番目にありそう

  • 自分が所持しているものが、TR1なのか、Zなのか、わからない

    • TR1とZが何を示しているのかも、現状、理解できていない

  • パラレルインターフェースと書いてあるので、たぶん、上記は関係なさそう

  • それらしいピンを、オシロスコープで測ってみようと思ったが、その前に、検索することにした


  • 同じように苦悩している方をみつける

  • 自分よりも遥かに、深く調査している

  • 全部読んでいなく、完全に理解した訳ではないが(英語ということもあり)、そう簡単にFRピンにアクセスできるわけではなさそう、ということはわかった

  • FRピンをはんだ付けしたという猛者もいそうだ、次回は顕微鏡が必要かも、みたいな冗談も言っていそう



結論、再び

  • 画面に、映画やビデオゲームの綺麗な絵を描画するわけではない

  • 1000円以下の、1インチにも満たない、128x64の解像度の2色の画面に描画するものなんて、たいしたものじゃないでしょ?

  • 多少、ティアリングしたって、構わないじゃないか!

  • FRピンがないくらいで、何を君は、そんなに発狂しているんだ?

  • 筆者だって、そんなこと、わかっているんだ

  • 「どうしても、このOLEDにティアリングしない絵を描画したい」と懇願している訳ではない

  • この機会に、ディスプレイ描画時に発生するティアリングの対策方法を学ぼうと思っていただけなんだ

  • 今回は、それを学ぶ機会はなかったようだ

  • 他にも楽しそうなことはいっぱいあるので、他の部分で楽しもうと思う

  • データシートを読んでいて気づいたのだが、スクロール描画にアクセラレーションがあるみたいで、面白いと思った



  • 何も得られていないのに、調査にそれなりの時間を浪費してしまった

  • 楽しいからよしとしよう

  • このOLEDディスプレイでティアリングを防止したい、なんて考えるのが筆者だけではないと知れてよかった


画面描画は難しいが、楽しいのでみなさんも是非!



いいなと思ったら応援しよう!