ひとやま、越えました。
ずーっと長いこと・・・・最初にMMCを使った頃から・・・
課題だったマイコンからファイルシステムをアクセスする件。
・・・・・っていう導入は、前に書きましたね。ゑゑ。
この一週間の大部分を、シリアル通信の文字化け解消に費やしてしまった件。
AVRマイコンを内蔵のRC発振器で使うとき、
校正用の値を校正用のレジスタにセットすると
校正されるという・・・極当たり前のことなんですが。
その値がプログラムからは読めない場所にあって、
それを読める機能のあるライタソフトで読み出してプログラム内に埋め込むか
EEPROMにでも書いてそこから設定するか、なんですけど。
いつもなら、AVRStudioあたりのプログラマで
読み出して、その値をEEPROMの何番地に書く、という機能を使うのですが
以前作ったライタがいつの間にか古くなってて
ファームのアップデートも出来ず、結果的にはAVRStudioにおいてけぼり喰らってるので
えるむ/Chan さんのところのシリアルポート用のライタとそのソフト、
あとは、それをGUIで扱えるようにしたavrdude-GUIを使っています。
残念ながら、校正用の値をGUIで読むことも設定することもできないようで。。。
都合よく、手元にAVRDragonというJTAGICE-MkII互換機能をもった基板と
動作不良を疑われてペンディングになったVS1053bのユニバーサル基板が
なぜかJTAG仕様で作成されてたので、これにCPU変換基板を差し替えて
8MHz用の校正値を読んでプログラムに埋め込めばいいはず。
・・・・というのが、話の枕なんですね(ぉぃぉぃ
ことの始まりは、おそらく音が鳴り始めた頃に遡る。
転送速度とCPUクロックは依存関係にあるので、その辺の調整で、
とりあえず音が鳴ることが分かったとき辺りから、
シリアル通信によるデバックはほとんど必要なく、
設定値を変えてコンパイル→書き込み のシーケンスで作業は進められました。
ただ、ふとみると、文字化けしてるんです。
でも、まあ、デバックに使わないから放置してたんです。
FatFsを組み込むにあたって、まずはテストプログラムで様子を見ようと思い
サンプルをコンパイルして実行。
main関数から何まで、サンプルであれば文字化けもなく動いてる。
まあ、多少は文字化けしてましたけど。読めないほどではなかったので。
いざ再生プログラムに組み込んで動かすと、
案の定、動かない。
とりあえず、戻り値くらいは表示させないとダメかと思い、
メッセージを埋め込む。
そういえば、文字化けしてたね・・・・・。
実験段階では、ご丁寧に4MHz用の校正値を校正レジスタに入れてた。
実際には、当然最高速である8MHzで動かしたい。
8MHzも4MHzも、値にそんなに差はなかったから、そのままでもいいだろう・・・ぐらいに思ってたんですが
まさか、これが原因だとは・・・○| ̄|_
いろいろ試した挙句、「校正が何か悪さを?」と思い、コメントアウト。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・直った・・
なんじゃそりゃ!!
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
ちなみに、8MHz用の校正値を読み出して書いたら、また文字化け。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
なんばしよっとか!!
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
正直、疲れました。ゑゑ。