マジョカアイリスの細長い液晶のモデル図(予想図)を作ってみた。
2021年1月6日の時点までにTwitterで見かけた情報やマジョカアイリス解析まとめというtwitterのモーメントを見て、液晶コントローラーが2つあるんじゃないのか?と予想されるので、試しに書いてみた。変態液晶だ。(外部からは1つの液晶コントローラーに見えるというのがミソだ。)
(追記 – 1月7日、偶数ライン、奇数ラインに修正した。)
液晶パネルの裏の基板はロット違いで2種類存在している。
緑色のプリント基板タイプは、基板上に液晶パネルにつながるフレキコネクタがある。
これを片側だけ挿しても半分が描画されるらしい。挿す場所を変えた場合の挙動も上記のような構造になっているのだとしたら説明がつくと思う。2箇所のコネクタがピン互換というのも面白い。
@lovyan03 さんのアイデアで、液晶モジュールのフレキを外し起動すると、半分だけ写ったw
— でべ (@devemin) January 5, 2021
さすがらびやんさん、着眼点すごい✨
その2箇所の上下をさしかえると、液晶パネルの上には上の映像が流れた(下にさしてるのに)
液晶コントローラIC が2つって事なのか、処理が半分に分かれてるのか、面白い~ pic.twitter.com/adXJXJJor4
自分も緑色の基板のものが欲しかったのだが、2つマジョカアイリスを買ったのに両方ともフレキ基板タイプだった。
—
追記
書き込み系のコマンドは2つに一度に書き込んでも動作するのだろうけど、読み出し系のコマンドはどうなるのだろうか? 片側だけしか応答しないか、あるいは単純にワイヤードORになる??
—
さらに少し追記
昔、少し弄っていたポケコンPC-E500のLCDコントローラーが横長画面の左右で内部処理的にわかれていて、縦軸に順にデータを書き込んでいくと、左側の下から右側に飛ぶという状態だ。
このイメージがあったからマジョカアイリスの液晶も320×96の上下で分離されるのかと思ってしまった。
しかし、あとからこの動画を見たら、上から順に640のラインが書き換わっているのを再認識した。
めっちゃ遅いけどArduino Nanoで動かせた! pic.twitter.com/u7l15RYPJx
— 金魚 (@twi_kingyo) January 5, 2021
これも奇数ライン、偶数ラインで分かれているというのを示唆している。
—
さらに追記
片側だけ液晶コントローラーの初期化がうまくいかずに表示が半分だけ異常になることがあるらしい。
これやっぱりILI9342ふたつ載ってるね?
— らびやん (@lovyan03) January 13, 2021
たまたまノイズで初期化コマンド化けたんだと思うけど、左右で描画モードが違った状況になったようだ… pic.twitter.com/fTjVHn0mbJ
あと、この細長い液晶を2つ同時に動かす実験で、右側(メイン基板と繋ぐケーブルのコネクタから離れている側)の液晶コントローラーのCSが正しく切り替わっていないという疑惑があるらしい。
CSをGNDに接続して動作させ、突然CS引っこ抜いてみたけど、コネクタから遠い側の半分はそのまま動作してしまう。この後3v3に挿してもやはり同様。CS制御できるのは半分だけという謎仕様であることがわかった、、、 pic.twitter.com/UP5Y9iN5AS
— らびやん (@lovyan03) January 14, 2021
—
さらに追記
さらに調査が進んで、CS信号の配線は左右で分かれているというのが判明したそうだ。確定っぽい。
細長液晶のピンの挙動調べてて気付いたんだけど、これCSふたつあるわ…。
— らびやん (@lovyan03) January 28, 2021
12番が先端側、15番がコネクタ側のCSピンになってる。 pic.twitter.com/rtuYCNGieI
2つの液晶コントローラーをCS信号をそれぞれ切り替えて制御することができる。これが本来の正しい制御方法だ。
裏技として、2つのCS信号を同時にLowにすると、2つのLCDコントローラーに同時に書き込みをすることも可能ということらしい。