JPEG Video Capture + WAV Audio Recoder(2)
右の写真は、Video decoder/encoder 内蔵の JPEG Video Capture と WAV Audio Recorder、CF メモリ 2 枚実装、リモコン/前面SW による操作が可能な最終完成品です。市販の学習機能つきリモコン受信マイコンを使用して全ての動作をリモコンからコントロールできるようにしています。
CPU にはアトメル製 RISC CPU の AVR ATmega64L (3.3V 動作) を使用しています。この CPU は Flash ROM 64KByte の大容量、発振器内蔵、ソフトウェアのオンボード書き込みなどの多くの機能を持っています。
開発環境は無償 Tool の Windows版 WinAVR を使用しています。ソフトウェアは、Tool に添付されている Makefile を適当に修正してコンパイルします。ソフトウェアの書き込みも無償にしたいところですが、前に購入した Xilinx JTAG ケーブルがあるので フリーの avrxtool32.zip (avrsp.exe) を使います。avrsp.exe は Windows 対応で多くの AVR CPU に対応しています。コンソールより次のように実行して書き込みます。(test.hex を書き込む場合)
ATmega64L には機能設定用のヒューズビットがあり、avrsp.exe を使用して次のように書き込みます。
- fuse_e : 0xff atmega103 off
- fuse_l : 0x64 8MHz osc, low-Vcc detect on
- fuse_h : 0xe9 JTAG I/F off for PORTF[4:7] enable
ソフトウェアの書き込みは Xilinx JTAG ケーブルを使用しますが、ATmega64L の JTAG I/F は使用しないため、fuse_h を JTAG I/F off に設定して PORTF[4:7] を使用できるようにします。
Video decoder と Video encoder に沖電気製 MSM7664B と MSM7654 を使用しています。MSM7664B は 3-state 出力の設定ができる為、Video data 出力に他の Video 系 IC を直接接続することが可能です。この製作では JPEG codec IC に富士フィルムマイクロデバイス製 MD2208 を使用して JPEG Capture を実現しています。
JPEG codec は Handspring board に使用した富士フィルムマイクロデバイス製 MD2310C 互換の MD2208 を使用して、前に作成したソフトウェアがそのまま使えます。Caputer する画像の解像度は 720x480 です。
WAV Audio Recorder は前に製作したものと同じ EZ-USB AN2131QC と TLV320AIC23 を使用しています。Key 入力に ATmega64L のポート出力を接続してリモコンから操作します。
JPEG Video Capture の仕様は次のとおりです。
1) 操作Key(リモコン)/表示LED
- Capture/Save、Clear、DisplayUp、DisplayDown、AutoUp、AutoDown、TestColorBar。
- H/W_Reset、CF_Erase
- Capture LED、Display LED、Exec LED、PowerOn LED。
2) Capture 機能
- Video 入力を decode した後、再び encode して Video 出力。(Video スルー表示)
- Capture Key を押すと 720x480 の解像度で Capture した画面を Video 出力。再度 Capture Key を押すと CF メモリに格納。
- Capture した後、Clear Key を押すと Caputure 画面を解除して Video スルー表示に戻る。
- 書き込み時間は約 1 秒。
3) Display 機能
- DisplayUp or DisplayDown Key を押すと 720x480 の解像度で Caputre した画面を Video 出力して スクロール表示。
- AutoUp or AutoDown Key を押すと自動スクロール。
- TestColorBar Key を押すと調整用カラーバーを Video 出力。
- 表示にかかる時間は約 1 秒。
4) CF メモリ初期化機能
- CF_Erase Key を押すと CF メモリの内容を消去。125 個の sub-directory を設定。
- 1 sub-directory に最大 64 file を格納。(max 8000 file)
WAV Audio Recoder の仕様は次のとおりです。
1) 操作Key(リモコン)/表示LED
- PlayUp、PlayDown、Stop、Rec。
- Rec LED、Play-mode LED、Exec LED。
2) 録音機能
- Rec Key を押して録音開始。
- モノラル、16bit、8/16/22.05KHz サンプリングレートで録音(22.05KHz サンプリングレートで CF 64MByte に約24分録音)。
- CFメモリカードに FAT16 format で格納。
- 録音中、Rec LED と Exec LED が点灯。
- 録音data を再生出力からモニタ可能。
- Stop Key を押して録音停止。
- CFメモリカードが full になると録音を自動停止。
- 録音data には AUDIOxxx.WAV(xxxは番号)のfile名が付けられる。
- Data は、FAT Table から最初に見つかった未使用クラスタを開始クラスタとして連続的に格納される。
- パソコンから Wav file を転送している CFメモリカードへの追加録音も可能。
3) 録音サンプリングレート/録音レベル設定機能
- 動作停止時に、Stop Key を Exec LED が点滅するまで押し続けると録音設定モードに入る。
- 現在設定されているサンプリングレートに対応する LED が点灯する。
- Rec Key を押すとサンプリングレートが切り替わり、下記のように LED が順次点灯する。
- Exec LED (22.05KHz) -> Play-mode LED (16KHz) -> Rec LED (8KHz) -> Exec LED (22.05KHz) で繰り返す。
- PlayUp Key、PlayDown Key を押して録音レベルを調整する。再生出力からモニタ可能。
- Stop Key を押して設定を確定する。設定はメモリに保存され記憶される。
4) 再生機能
- PlayUp or PlayDown Key を押して再生開始。
- モノラル、16bit、8/16/22.05KHz サンプリングレート に対応。
- FAT16 format の CFメモリカードから読み出し。
- 再生中、Exec LED 点灯。
- 再生中に PlayUp or PlayDown Key を押して再生File をスクロール。
- Stop Key を押して再生停止。
- Data は、先頭クラスタを開始クラスタとして連続的に再生する。
- パソコンから Wav file を CFメモリカードに転送する場合は、メモリ消去により全消去しておく。
- パソコンから転送した Wav file は、連続クラスタに格納されている場合のみ正常な再生が可能。
- 適当なイヤホーンを接続して聞くことも可能、但し、出力は片側のみ。
5) 再生音量設定機能
- 再生中に Stop Key を Exec LED が点滅するまで押し続けると再生設定モードに入る。
- PlayUp Key、PlayDown Key を押して再生音量を調整する。再生出力からモニタ可能。
- Stop Key を押して設定を確定する。設定はメモリに保存され記憶される。
6) 再生モード
- 停止時に Stop Key を押して Normal(Loop)モードと Repeatモードのどちらかを選択。
- Repeatモード時に Play-mode LED 点灯。
7) メモリ消去
- 操作Key を押しながら電源を ON にして、全てのLEDが点灯してから消灯後に操作Keyを離すと CFメモリカードの data を全て消去する。
- 消去中 Exec LED が点灯、消去終了で Exec LED が消灯する。
- 消去後は、通常動作。
- ファイル単位の消去はできません。
8) エラー表示
- 動作中にエラーが起こると全ての LED を点滅。電源OFF で解除。
- 再生file がない時に PlayUp or PlayDown Key を押すと全ての LED を点滅。
9) 入出力端子
- φ3.5mm ステレオジャックにステレオオーディオコードを接続。
- 入力-白コード、出力-赤コード。
10) プログラム仕様
- 256 Byte リングバッファを使用。
- コンパイラに sdcc を使用。プログラムサイズ 7Kbyte以下。
- プログラムサイズ縮小と高速化のために部分的に Inline-assembler により最適化。
- EZ-USB (24MHz 8051) で 22.05KHz サンプリングと CF 書き込み/読み出し動作を同時に実行。
サンプル WAV file
- test.wav(4.8 MByte, 22.05KHz, 16bit モノラル, 1分54秒)
2006-04-04
ホーム