YAMAHA QY20のデータバックアップ回路(9)「基本機能完成!!」

2022/09/02

YAMAHA QY20 バックアップツール 電子回路

EEPROMからの読み出しができるようになったので、読み出しロジックを完成させます。

読み出し部分は、バッファの関係で32バイトづつ、読み取ります。

色々、細かいバグはありましたが、リモートデバッグで1つ1つつ検出、修正。

  • RCENは、受信リクエストごとに行う必要あり。これがないとクロックが出ない。
  • 32バイトづつ読み込むのに、読み込みカウンタを1つづつしか増やしていない。
  • などなど
読み取りのフローは、完成しました。2度読みとか読み飛ばしがないかの単体テストも確認。大大量データでの割り込みタイミングやバッファオーバフローを含めたテストは、通しテストで行うことにします。

最後の段階のQY20へのバルクデータ送信処理に入ります。
転送速度はMIDI-IF仕様の31250bpsですが、QY20自体がその速度で受信し続けることができないので、ウェイトが必要です。今回、32バイトづつ、EEPROMから読みだすので、その単位ごとにウェイトを入れれば、問題なさそう。高速な転送は不要ですし、他の機能との並行処理もないので、割り込み処理は使わずに32バイト分を送信用のレジスタの空きをチェックしながら、ループ処理で送ることにします。

この単純な形なので、30分位で、送信部は完成。

テストは、38400bpsに変えて、EEPROM読み出しして、PCにデータ送信させます。TERATERMで受信データをバイナリ表示させながら、I2Cのパルスと比較して、読み出しデータとの一致を確認。合っているので、読み出し部から送信部までは処理フローとしては正しく動いています。32バイト単位での読み取り、128バイトのページ処理も問題なし。

これで、
QY20 → バルクデータ → EEPROM
EEPROM → バルクデータ → QY20の代わり(チェック用のPCアプリ)
まで完成。

この後、バルクデータが壊れていないか、チェックしていきます。

前回からここまでで、2時間+α、かかっています。結構、早くできました。


QooQ