QY20 表示部(LCD)を自作⑦:道のりは遠かった

2024/01/07

RP2040 YAMAHA QY20 電子回路

 QY20の換装用液晶の開発。前回で、QY20からのデータ取得と、交換液晶の表示ロジックが出来上がったので、あとは合体させて、細かな調整のフェーズに入るはずでした。

ほとんど一日費やして、分かったことは、2つ。

  1. QY20からの制御信号とデータ信号の同期がとてもシビアなこと。
  2. PICOのCコンパイラが信用できないこと。

1.の同期とは、FLMのフレーム信号(垂直同期)は15msごと、CP1のライン信号(水平同期)は、約220μsごと。そして、CP2のピクセル同期信号は、410ns(2.4MHz)の周期で信号が来ます。FLM信号をC割り込み、CP1信号をPIO割り込み、CP2信号と同期しつつ、ビットシフトしつつ、データ取得します。どこの同期が合っていないのか、プログラム処理で、ズレてしまっていします。

取得したデータをビットマップ化するとこんな感じ。

元画像は、こんな感じ(この液晶も1ライン切れている)

そもそも、1ラインは128dotsデータなのに、384dots分のデータが来ているので、元データの画像化構成を間違えている可能性もあります。

2.のコンパイラの問題とは、条件ループ処理での条件パラメータを、外部割込みで変更させるのですが、割込みでパラメータが変更しても、条件判断が変わらない、すなわち、条件判断部ではデータをコピーしているかも。また、変数に代入直後に、その変数にアクセスしても代入値を見ていない可能性、間にprintfを入れると、正常に動くという、不思議な現象。

この段階にきて、道のりは長そうです。





QooQ