アーカイブ

2010 年 1 月 23 日 のアーカイブ

VS10xx(6)

2010 年 1 月 23 日 コメントはありません

ひとやま、越えました。

ずーっと長いこと・・・・最初に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用の校正値を読み出して書いたら、また文字化け。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

なんばしよっとか!!

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

正直、疲れました。ゑゑ。

カテゴリー: Project, 電子工作 タグ:

VS10xx(5) ....デファクトスタンダードの功罪(?)

2010 年 1 月 23 日 コメントはありません

ひとやま、越えました。

ずーっと長いこと・・・・最初にMMCを使った頃から・・・
課題だったマイコンからファイルシステムをアクセスする件。

自作するほどの体力も気力もなくなりつつあるので、
この際、他人様の公開しているソースファイルを使ってでも、越えてしまいたかった。

とはいえ、最初にMMCを使った頃にはまだフリーでマイコンに組み込めるような
ファイルシステムは皆無だったことを考えれば、なんと恵まれた時代だろうか。

現実問題
ディスクフォーマットについて調べ始めると、かなり泥臭い部分が多いし
その解釈も拡張も各々が好き勝手にやった挙句、
「なんとなく、デファクトスタンダード(事実上の標準)?」という感じで広まっているだけに過ぎない。

HDDのフォーマットも、FDの記録密度も、なんら指針はないわけで。
あるのは、それこそ慣例のレベルでしかない。

※確かにISOでの規格化はあったかもしれないが、そんな表記よりも
「DOS/Vフォーマット済み」とか書くほうが分かりやすいことを考えると、
規格化されたこと自体あまり意味がない。

先頭セクタの値の意味も、FATの記録位置も、なにもかも。
ほとんどは、Microsoftが作ったFileAllocationTableという仕組みと
おそらくはIBM/MicrosoftがPC/AT用に書いたOSが、最初そうなっていた、というだけの
ブートセクタ、パーテーションテーブル、ソレにまつわる容量の限界。

よくもまあ、これだけ世の中的にMicrosoftに引きづられてるよなぁ・・・

昨今、FATでは限界があるので新たなフォーマットへ移行しつつあるわけで
逆に資料がどんどんなくなっていってしまうような仕組みなわけ。

だからこそ、今のうちに何とかしておきたかった。

今回のこの企画自体、FATが扱えなきゃなんともならないわけで。

フリーのFATファイルシステムとしては有名どころの、「FatFS」を
えるむ/Chanさんの所から持ってきて組み込んでみた。
その組み込みに実はこの1週間を費やしてしまった。

まあ、実際の作業時間は1日1~2時間しか取れなかったのだが
その大部分はFatFSとは無関係な、シリアル通信の文字化けと戦っていたというダメっぷり。

・・・・・ということで。とりあえず、愚痴終わり(え?えぇぇっ?

カテゴリー: Project, 電子工作 タグ: