================================================================================ MMC(Multi Media Card)を利用した P/ECEでMP3プレイヤー(試作版) 2004/04/25 まどか 2004/05/17 まどか データ読み込み関数での不具合を修正し、IODATAの128MBに対応。 2004/08/29 まどか mmcFileReadSctで mmcFileReadSct(&pfa, NULL, sct, 0); とした場合に、内部の代替バッファに何も読み込まれていなかった不 具合を修正。 詳しくはmmcif.cを参照して下さい。 2004/08/30 まどか SDカードと初期化に時間がかかるMMCに対応しました。 情報提供をして下さったnsawaさん(http://piece.no-ip.org/)ありが とうございます。m(-_-)m 2004/09/26 まどか 動作確認済みメモリカード一覧を追加 2004/11/06 まどか スーパーフロッピー形式に対応しました。 情報提供してくださったnsawaさん(http://piece.no-ip.org/)          ありがとうございますm(-_-)m 2004/12/11 まどか 動作確認済みメモリカード一覧を削除 サポートページ(http://www2.plala.or.jp/madoka/Piece_ele/mmc/mmc.htm)          をご覧下さい。 2005/05/01 まどか ついに、nsawaさんの5倍速改造MMCライブラリに対応しました。 そして、ヅラChuさんの操作感UPなmain.cも利用させていただき、 さらに使いやすくなりました(^^ MMCの読み込み処理が高速化されたので、今まで途中で切れてし          まったり、再生できなかったMP3も再生できるようになったかも 知れません。 5倍速対応記念に、扱えるMP3ファイルのサイズも5倍の25MBに(^^ 2005/05/04 まどか 128MB以下のMMCだと起動時にワークエリアの確保に失敗して、MP3 ファイルを利用できなくなっていた不具合を修正。 また、細かい見直しをかけて、エラー処理などを色々追加。 2005/05/07 まどか MMCライブラリを更新しました。扱う最大ファイルサイズがカード の容量を超える場合は、最大ファイルサイズをカードの容量のサイズ に切り詰めるようにしました。これにより、64MBのカードで50MB以上 のファイルが扱えなかった不具合が修正されました。 2005/07/09 まどか MMCライブラリをMMC対応カーネルVer.1.30のものと合わせました。          これにより、pceFileReadSctとpceFileReadMMCSctでファイルサイズを 超えてアクセスした場合のチェックが上手く動いていなかった不具合 が修正されました。 ================================================================================ <はじめに・概要> この度は、このMMC版MP3プレイヤーに興味を持って頂き、ありがとうございます。 このMMC版MP3プレイヤーはLAMEで32kHz 48kbpsに変換したMP3ファイルをMMC上に書き込 み、それをP/ECEから読み込んで再生するというものです。 動作確認済みメモリカードはサポートページをご覧下さい。 http://www2.plala.or.jp/madoka/Piece_ele/mmc/mmc.htm このプログラムを利用するためには、P/ECEの拡張端子が外に出ていることと、MMCを P/ECEに接続する基板を製作することが必要です。接続基板については付属の回路図を参 照してください。 MMCへのMP3ファイルの書き込みは市販のカードライター等をご利用ください。 また、ファイル名は全て小文字か全て大文字の8.3形式のもので、ルートディレクトリに 置かれたものしか利用できません。 今回のMP3プレイヤーはnsawaさん(http://piece.no-ip.org/)のMP3プレイヤーのソースを 利用させて頂いておりますので、プレイヤーの基本操作や、MP3の変換方法等はnsawaさん のreadme_nsawa.txtを参照してください。 (一応MP3変換のバッチファイルも用意しましたので、もしよければ使ってみてください。 説明はファイルの中に書いてあります。右クリック→編集で中をのぞいてみてください。 ファイル名は"conv_mp3_32_48.bat"です。) MMC版の追加機能として、STARTボタンでの液晶画面OFF機能と自動連続再生機能を付加し ています。 ※2005/05/07 追記 2005/05/04版からヅラChuさん改造の操作感UPなmain.cを採用させて頂いております。  新たな操作方法として、十字PADの左右で音量調節が出来るようになりました。これは  便利(^^ ヅラChuさん(http://zurachu.net/)ありがとうございます。 また、nsawaさんMP3プレイヤーでのデフラグ処理はMMC版MP3プレイヤーでは必要ありませ ん(っていうか面倒でできない(^^;)ので、その部分は動作しません。 あと、デジカメや携帯電話で使用していたままのカードでは、フォーマットがFAT16では ない可能性がありますので、使用する前は必ずFAT16でフォーマットし直してから使用し てください。 32MBより小さいメモリーカードですと、普通にフォーマットするとFAT12としてフォー マットされるみたいなので、以下の様にしてFAT16としてフォーマットしてください。 >FORMAT X: /FS:FAT /A:1024 フォーマットが終了するとFAT16でフォーマットできたなら、「16ビット : FATエント リ」と表示され、FAT12でフォーマットされたなら「12ビット : FATエントリ」と表示 されます。 この時、FAT16になっていることを確認してください。 (情報提供:nsawaさん) ※2004/05/19 追記 書き忘れましたが、このソースはP/ECEのCDには入っているmake.exe でないとmakefileが正しく実行されません。例えばBolandのmakeがインストールされて いてパスも通っている場合、そちらが先に見つかると正しくmakefileを実行してくれま せん。 その様な場合は、P/ECEのmake.exeをこのフォルダにコピーして下さい。 <この作品について> 今回の作品は、先にP/ECEでのMP3プレイヤーを発表されたnsawaさん (http://piece.no-ip.org/)を自分の非2MB改造P/ECEでMP3ファイルを再生したときに、 P/ECEでMP3が聴けるという感動とともに、512KBのメモリでは1曲すら全部聴けないという 悲しい現実に悔しさを覚え、それじゃあ外部メモリを増設できるようにしてみるか! という思いつきから生まれたものです。 MMCの利用を思いついたのは、以前にオフィシャルの開発者用掲示板で、MMCがP/ECEでの 利用に向いているという意見があったのを思い出したからで、その記事を見た当時は、ま だメモリーカードの制御について全然知識が無かったものでその可能性にあまり気が付い ていませんでしたが、その後たまたまある野望のための資料集めとして、本屋でCQ出版の TECH I シリーズ Vol.14 「PCカード/メモリカードの徹底研究」 Interface編集部 編 B5判 280ページ CD-ROM付き 定価2,200円(税込) ISBN4-7898-3325-9 http://www.cqpub.co.jp/hanbai/books/33/33251.htm という本を見た時に、MMC/SDカードの制御方法の解説を読んで、「これなら自分でも制御 できるかも」と思ったのがきっかけとなり、早速東京に出張に行ったついでに秋葉原で SanDiskのMMC64MBとサンハヤトのMMCソケット変換基板(CK-16)を購入。 ・サンハヤトのCK-16 http://www.sunhayato.co.jp/catalog/universal/memory_ck.html (つい最近になってCK-29というSDカード用のソケット変換基板も発売されたので、もしか したらSDカードも使えるかも。そうしたら512MBとか使えるようになるのかなぁ(^^; だけど、SDカードで512MBっていったら、高速タイプで2万くらいするよね。高っ!Σ('Д' ※2004/08/30 追記 nsawaさんのおかげでSDカードにも対応できました。 そしてP/ECEに接続させるための基板を製作したまではいいのですが、MMCはFAT16という ファイルシステムを採用していることから、Windowsから簡単にMP3ファイルをMMCに書き 込み、そしてそれをP/ECEから利用するという利用方法を想定した場合、今回のMMC版MP3 プレイヤーを製作するに当たって、FAT16の構造を理解する必要がありました。 MMCの制御は、初期化の手順の処理を除けば、あとのやり取りは普通のシリアル通信とほ とんど変わらない処理なので、MMCの制御は比較的簡単(P/ECEのCPUのシリアル通信機能は その仕様上、MMC制御用のシリアル通信の仕様にマッチしない部分があるため利用できま せんでした。)に実装できたのですが、その後のFAT16を理解するための資料を集めるのが 意外に大変でした。 ちなみに、MMCの制御に関しては、以下の資料が役に立ちました。 ・ルネサステクノロジのMMCデータシート http://www.renesas.com/avs/resource/japan/jpn/pdf/flashcard/j203658_hb28e016mm2.pdf http://www.renesas.com/avs/resource/japan/jpn/pdf/flashcard/j603002_mmc.pdf ・SanDiskのMMCデータシート(英語) http://media-server.amazon.com/media/mole/MANUAL000007788.pdf ・Miyoさんの「MMCを使おう」のページ http://www.sgn.ip.titech.ac.jp/miyoshi/emb/mmc/index.html ・ドイツのPICでMMCを使おうっていうページ (もちろんドイツ語でFAT16の解説もちょこっとある) http://home.wtal.de/Mischka/MMC/index.html FAT16というのは現在Windowsで利用できるFAT32の16bit版で、Windows3.1やWindows95で 利用されていたファイルシステムです。 最近ではMMCのようなリムーバブルメディアで利用されることが多いようですが、もとも と古い規格であるため、現在では解説書があまり無い状態になってしまっています。 そこで、色々とインターネットで検索した結果、以下のサイトとCQ出版のインターフェー ス誌1998/9月号にファイルシステムの解説があるのを見つけ、それらの情報と、実際に MMCにアクセスして得られた情報をもとに、試行錯誤しながらFAT16で書き込まれたMP3 ファイルの読み出しに成功しました。 私の場合、幸いなことに、会社にバックナンバーとして、インターフェース誌が保管して あったので、それの特集記事をコピーさせてもらって勉強しましたが、CQ出版の方でもコ ピーサービスを行っているようなので、もし手に入らない場合(ほとんどの方がそうだと 思いますが(^^;)は、コピーサービスを利用してはいかがでしょうか。 ファイルシステムの解説記事が載っているのは、「特集 移植性を重視したファイルシス テムの作成法」という特集記事で、ページとしてはP.81〜133なのですが、後半のP.114〜 133までは、特集で作ったプログラムの解説で、P/ECEのプログラムとは異なる部分が多い ので、無くても良いと思います。 ・CQ出版 インターフェース 1998/9 の特集 http://www.cqpub.co.jp/interface/contents/1998/199809.htm ・ここのFAT解説(英語)  http://www.active-disk-wiper.com/active-wiper-help.htm ・Twenty-five on Web(ZOUDAさん http://triaez.kaisei.org/~s-zouda/)の  FAT32 memo(日本語) http://triaez.kaisei.org/~s-zouda/pc/fat32.html ・Win32サブルーチンズ(絶版)の内容公開ページの一部 http://www.cisnet.or.jp/home/tsuneoka/win32sub/1.html ・Tef Room(http://homepage3.nifty.com/tef-room/index.html)の  セクタ・クラスタ ・ファイルシステム(FAT・FAT32・NTFS)とファイルサイズ  http://homepage3.nifty.com/tef-room/tips/file-system.html ・DiskExplorerというソフトの技術解説ページ http://hp.vector.co.jp/authors/VA013937/editdisk/tech.html ・ブートとハードディスクのすべて (リンクフリーではないので検索してください) 以上の資料と数々の試行錯誤により完成したP/ECEでのMMC制御ライブラリですが、当初の 目的であるMP3ファイルの再生を実現させるために、先述しましたnsawaさんのMP3プレイ ヤーのソースを利用させていただき(利用・改変は許可を頂きました)、今回のMMC版MP3プ レイヤーは無事完成に辿り着けたのですが、まだファイルによっては途中で処理が間に合 わなくなり、終了してしまうことやP/ECE自体がフリーズする(リセットすれば復帰します )があるので、完全ではありませんが、一応これで試作版は完成ということにさせていた だきます。 今回の作品に限らず、私のP/ECE拡張端子ネタの作品はP/ECEの保証外の作業を伴うので、 すべて自己責任でお願い致します。 この作品および関連作品を利用しての損害には制作者は責任を負いかねますので、あらか じめ御了承ください。 <謝辞> この作品を制作するにあたって、nsawaさんのMP3プレイヤーのソースを利用させて頂きま した。 改変・再配布をご快諾して頂いたnsawaさんにはとても感謝しております。ありがとうご ざいます。 その他、参考にさせて頂いたページの制作者の方々にも有用な情報の公開に大変感謝して おります。ありがとうございます。 =============================================================== まどか http://www2.plala.or.jp/madoka/ madoka@olive.plala.or.jp この作品のソースコード等の利用・記事紹介等は基本的に自由ですが、 もし雑誌等に掲載される場合はメールで御連絡ください。 また、著作権は放棄しておりませんので、よろしくお願い致します。 ===============================================================