MP3PlayerKitを作る(3)
転送速度が全然なのでクロックアップしようとする。
その前にソースがビルドできるか見ておく。
AVRStudioでワーニングはあるがちゃんとビルドできる。
ISPで書き込むと、買ったときと同じように動作する。
ただConfigでCPUクロックが14.7456MHzになっている。
実際についている水晶は7.3728MHzと半分である。(^^!
なんでこうなっているのかわからないが、どうも半分の速度で動作している。
(その後、これで正しいことを知るのだが)
おかしいと思ってシリアルをつなげてみるとソースでは115200bpsで接続しているが57600bpsで接続する。
これからどうも違った水晶がついていることがわかった。
(その後水晶は正しく、周波数指定が違うことが判明した。)
そこで改めて14.7456MHzの水晶を手配する。まあ16MHzまで動くらしいのでそれでもいいのだが、倍の方が修正も楽だろうし。
でもって届いた水晶を交換。
とりあえずはコンパイルしたままのソースをそのまま書き込む。
げげ!!音が鳴らない。(TT)
しょうがないのでソースを追いかける。
修正対象となるのは
・_delay_usなどの遅延
本来、水晶があっていればここは必要ない。ただ半分の水晶でこの値なら倍速なので2倍にしないといけない。
・nop();などの時間調整
nop();の数を倍にする。
これらは
・mp3_player_06.c
・CH375\ch375.c
・IDE\IDE.c
・LCD\LCD.c
・VS1003B\VS1003B.c
が該当するので、それぞれ倍に修正する。
コンパイルして書き込む。
ちゃんと音は出た。(^^)戻った程度だが。
で
・MP3は程度はよくなったがやはり転送が間に合わないような音が入る
・WAVは「何を演奏しているのか?」程度は(知っていれば)わかる
ただとても音楽と呼べる代物ではない。(TT)
その後、なんでかずっと悩んでいたら、どうもATmega64Lらしい。
回路図を調べてみると3.3V!!なのでMaxは8MHzというわけだ。
なのでCPUの指定周波数が間違っていることを知った。
水晶は元に戻して、CPU速度を変えてみた。
こうやると「元へ戻る」+「Deley関係の遅れ」と遅くなる。(TT)
ただプログラムの整合性は良いので、そこはスッキリする。
やはり上海問屋の¥1000のに明らかに負けている。(TT)
コメントはありません