放課後の電子工作 HOME > 超小型MP3プレーヤー [ Timpy ] > Rev3.0 【VS1011タイプ】 |
2008年10月26日 更新 |
超小型MP3プレーヤー [ Timpy ]
Rev3.0 【VS1011タイプ】
|
Timpy Rev3.0 VS1011タイプ 2004年9月 完成 【おまけ】 |
MP3デコーダチップを新製品のVS1011に変更したタイプです。 |
*耳かけ式ヘッドフォン型のMP3プレーヤです。かばんの中でもかさばりません。
*巻き取り式なので、コードが絡まってイライラすることはありません。
*miniSDカード対応です。
*前回停止したところから再生します(曲中レジューム)。
*早送り系の操作として、曲ごとの送り/戻し、フォルダごとの送り/戻し、曲やフォルダをまたいだ早送り/巻き戻し(送り中のプレビュー付き)ができます。
*好きなところにマーカを1箇所設定して、ジャンプできます。
*1曲リピート、全曲リピートができます。
*ラウドネス機能を持っています。12種類の周波数特性からお好みで選べます。
*充電式バッテリ(リチウム・ポリマ電池)を内蔵しています。
*バッテリの電圧が低下すると、自動的に省電力モードになります。
*カード込みで約45gと軽量です。
電源ON/OFF時のポップノイズが低減されている
アプリケーションノートの手順どおりにやってみました。確かに、密閉式のヘッドフォンでもノイズはほとんど聞こえません。
開放型のヘッドフォンなら全然問題にならないでしょう。
これで外付けのアナログスイッチを省略することができます。
MP3データの途中からでも安定して再生できる
VLSI Solutionのテクニカルサポートによれば、VS1001はMP3データの途中からの再生に対応していません。
Rev2.1までで実際にやってみた感じだと、9割以上の確率で途中からの再生はできるのですが、早送り/巻戻し操作となるとやはりすぐにミュートしたまま無反応になってしまいます。
VS1011ではこの不具合は確かに改善されていて、ようやく本当の早送り/巻戻しができるようになりました。
なお、サポートからの同メールにあったのですが、データ途中からの再生をする場合にはデータに先立って2048バイトの0を送っておく必要があるとのことでした。
これはデータシートやアプリケーションノートには書いてありませんので要注意です。
ひとつ気になったこと。VS1011は確かに安定はしているのですが、データ途中からの再生の開始直後に出てくる音が一瞬ですが変になります。
これも後でテクニカルサポートに問い合わせてみようと思っています。
VS1001で必要だったBSYNC信号が要らない
VS1011はVS1001と同様のインターフェースで制御できるVS1001 Compatibility Modeを持っており、ほぼそのままで置き換えが可能なようになっています。
ですが、VS1002 Native Mode (New Mode)という新しい機能を持っています。
これはVS1001で必要だったBSYNCの代わりにxDCS信号を使うことで、データ送出も通常のSPIポートとして扱えるようになるものです。
BSYNCは生成がちょっと面倒なので、これが不要になるとソフトウェアの簡単化ができます。
Native Modeでは仕様上このような利点があるのですが、私が試したところ、そんなことより大きなメリットがあることに気が付きました。
原因はわからないのですが、Compatibility ModeよりもNative Modeを使ったほうが格段に『音がいい』のです。
明らかに違います。VS1011ではNative Modeを強くお勧めします。
マスカットさんが試されたところによると、Compatibility ModeとNative Modeで音質に違いは無いとのことでした。(2005年11月18日 追記)
詳しい説明はこちらのデータシートをご参照ください。
VS1011に変更したことで、回路をさらにシンプルにすることができました。
Rev2.1まではRev1.0の基板を無理やり流用していたので、この機会に基板を設計しなおしました。
VS1011のおかげで、Rev3.0はとてもシンプルな回路になっています。
【回路図・基板データ】timpy30-eagle.zip (347KB)
新しいパーツライブラリ、デザインルールファイルも一緒に入っています。
回路がシンプルになったので、Rev3.0では操作スイッチと電源スイッチも一枚に詰め込んでみました。
上半分の基板だけで動作します。
Rev1.0と同様の操作スイッチが4つ、上下左右に配置されています。
右上が電源スイッチ、左上が開発環境との接続用コネクタです。
裏面にminiSDカードコネクタが実装されます。
Rev1.0の時よりもC8051F330のパッドのはみ出し量を0.2mm多くしたので、手はんだが楽になっています。
下半分の基板は、開発環境とつなぐ際に必要となるアダプタ基板です。
Cygnal純正のシリアルアダプタEC2から出ているフラットケーブル圧接の10Pコネクタと、
Timpyへの接続で使用している0.5mmピッチ4芯FFCとを変換します。
今までは手配線の基板を使っていたので、今回一緒にプリント基板にしてみました。
・・・しかし、10Pのフラットケーブル用コネクタの大きいこと。
見たときに思わず『おおっ』と驚いてしまいました。
全部実装した様子です。
基板単体での動作確認のために、電源スイッチ、操作スイッチもすべて載せてあります。
ヘッドフォンに組み込む時は、スイッチ類は基板に実装せず、ヘッドフォンに直接取り付けます。
No. |
Reference |
Name |
Qty. |
Manufacturer |
購入先 |
1 |
IC1 |
C8051F330 |
1 |
Silicon Laboratories Inc. |
|
2 |
IC2 |
VS1011-L |
1 |
VLSI Solution Oy |
【2006年7月】なんと、あの秋月電子通商が取り扱いを始めました!それも驚きの秋月価格です。 |
3 |
IC4 |
LP3988IMF-3.0 |
1 |
National Semiconductor |
|
4 |
R1 |
10K (1005) |
1 |
any |
シーアール(秋葉原) |
5 |
R2, R3, R4, R5 |
100K (1005) |
4 |
any |
シーアール(秋葉原) |
6 |
R6, R7 |
1M (1005) 1% |
2 |
any |
シーアール(秋葉原) |
7 |
C1, C2 |
C2012X5R0J475M |
2 |
TDK |
|
8 |
C3, C4, C5 |
0.1u (1005) |
3 |
any |
シーアール(秋葉原) |
9 |
CN1, CNA |
XF2L-0425-1 |
2 |
OMRON |
|
10 |
CN2 |
SCJB2B0101 |
1 |
ALPS |
|
11 |
CNB |
HIF3FC-10PA-2.54DSA |
1 |
HIROSE |
秋葉原 |
12 |
SWD, SWF, SWR, SWU |
SKRKAHE010 |
4 |
ALPS |
電即納 |
13 |
SW1 |
SSAD120100 |
1 |
ALPS |
電即納 |
14 |
基板 |
Timpy Rev3.0 |
1 |
-- |
|
15 |
バッテリ |
|
1 |
|
以前からお世話になっていたEFlight Designsは、Balsa Productsに吸収合併されたようです。 なお、容量の大きいET-0250は、残念ながら厚さの関係でヘッドフォンに収まりません。 【2006年7月】新たに3つ、ショップを見つけました。次の機会に発注してみようと思います。 |
16 |
DCプラグ・ジャック |
調査中 |
各1 |
千石電商(秋葉原) |
|
17 |
開発環境 |
C8051F330DK-J |
1 |
Silicon Laboratories Inc. |
マイクロテック、その他でも入手可能です。 【2006年7月】最近、ワイド入力(100V/200V兼用)のACアダプタに切り替わりつつあります。 |
18 |
FFC |
P=0.5-K1-6-149 3/5(UL20624) |
1 |
富士電工 |
ELISshop |
timpy30-src-20041030.zip (30KB)
★ようやく階層ディレクトリをサポートしました。
ディレクトリツリーを深さ優先で探索します。
miniSDカードにデータを入れる際に、例えばアルバムのディレクトリごとコピーとかできますので、 容量の大きいカードでも曲の管理がとっても楽になります。★ディレクトリジャンプ機能を追加しました。
各ディレクトリ内の1曲目の間を前方/後方にジャンプする機能です。
左の図の例で、【次のディレクトリへジャンプ】すると、再生中の曲を基点として順次[1]、[2]、[3]、[4]・・・とジャンプします。
【前のディレクトリへジャンプ】もできます。(逆順に[4]、[3]、[2]、[1]・・・となります)
聞きたいアルバムの1曲目をすばやく探せます。
(逆に、聞きたくないアルバムをスキップするときにも便利です)
【2004年10月12日】
ラウドネス機能を追加しました。
12種類の周波数特性から好みのものを、聞きながら選択できます。
*この圧縮ファイルに同梱されているファイル "loud_sa.inc" は、VS1011の製造元であるVLSI Solution Oyが公開している機能拡張プログラム "VS1011/VS1002 Loudness Extension Rev.1.41" に含まれているプログラムファイル "loud_sa.cmd" ファイルをTimpyのソースプログラムにインクルードできるようフォーマットしなおしたものです。
*このラウドネスの12種類の周波数特性グラフを含む機能の詳細については、VLSI Solution Oyの上記のページをご参照ください。○スイッチ操作と動作 2004年10月30日版
モード
SWF(>)スイッチ操作
SWR(■)スイッチ操作
SWU(∧)スイッチ操作
SWD(∨)スイッチ操作
停止
再生モードへ(プレイ) (*1)
バッテリチェック (*9)
マーカ位置から再生開始
現在の停止位置にマーカを設定 (*8)
再生
次の曲/前の曲モードへ (*2)
停止モードへ(ストップ)
ボリュームアップ
ボリュームダウン
次の曲/前の曲
ディレクトリジャンプモードへ (*12)
再生モードへ (*5)
次の曲へジャンプ
前の曲へジャンプ
ディレクトリジャンプ
早送り/巻戻しモードへ (*4)
次のディレクトリへジャンプ
前のディレクトリへジャンプ
早送り/巻戻し
ラウドネス設定モードへ (*10)
早送り
巻戻し
ラウドネス設定
リピート再生モードへ (*3)
フィルタ番号を+1する (*11)
フィルタ番号を-1する (*11)
リピート再生設定
再生モードへ
全曲リピート再生のON/OFF (*6)
現在の曲リピート再生のON/OFF (*7)
操作は4つのスイッチ(>■∧∨)で行い、それに対するレスポンスがビープ音で返ってきます。
ビープ音には3つの音程「高音(ピ)・中音(ポ)・低音(ブ)」があります。
ほとんどの操作によるレスポンスは「ピ」ですが、以下のように状態によって音程が変わります。(*1)再生開始時、全曲リピートが設定されていれば「ピ」、現在の曲リピート再生が設定されていれば「ポ」、リピート設定されていなければ「ブ」です。
(*2)「ポポピ」と鳴ります。
(*3)「ブピブ」と鳴ります。
(*4)「ピピピ」と鳴ります。
(*5)次の曲/前の曲モード、ディレクトリジャンプモード、早送り/巻戻しモード、ラウドネス設定モード、リピート再生設定モードでは、10秒間操作がないと自動的に再生モードに移行します。
(*6)スイッチを押すたびにON/OFFが切り替わります。全曲リピート設定ONなら「ピ」、OFFなら「ブ」です。
(*7)スイッチを押すたびにON/OFFが切り替わります。現在の曲リピート設定ONなら「ポ」、OFFなら「ブ」です。
(*8)「ピポピ」と鳴ります。
(*9)バッテリの電圧をビープ音で知らせます。たとえば3.7Vだったとき、これを2進数に直すと"0011 0111"です。"0"を「ポ」、"1"を「ピ」に対応させて、「ポポピピ ポピピピ」と鳴ります。
(*10)「ブブポ」と鳴ります。
(*11)スイッチ操作により、ラウドネスの周波数特性を変更します。"VS1011/VS1002 Loudness Extension Rev.1.41" にある12種類のフィルタ番号を、+1と-1操作によって変更、設定します。上記文書にはフィルタ番号が1から12までしかありませんが、その他に0も設定できます。フィルタ番号0はラウドネス機能OFFです。このとき、番号0を表すために「ポ」と鳴ります。0以外ではビープ音は鳴りません。
(*12)「ブピピ」と鳴ります。○その他の機能
【シャットダウンモード】
停止モードが60秒間続くと、シャットダウンモードに移行します。再度再生するときは、電源スイッチを入れなおしてください。
シャットダウンモードでも消費電力は0ではありませんので、バッテリの過放電を防ぐため電源スイッチは必ず切るようにしてください。【バッテリ電圧監視】
過放電を防ぐため、バッテリの電圧が3.0V以下になると自動的にシャットダウンモードへ移行します。【レジューム再生】
再生は前回の停止位置から開始されます。【不揮発メモリへの状態保存】
上記の前回停止位置や、カード識別情報、マーカ設定、リピート設定、ボリューム値は電源を切っても保存されています。
SWR(■)スイッチを押しながら電源を入れることで保存値を無視することもできます。【カード交換検出】
電源ON時にカードが交換されているかどうかの簡単なチェックを行います。交換されている場合、再生は1曲目の先頭からとなり、マーカ情報はクリアされます。【早送り/巻戻し中のボリュームダウン】
早送り/巻戻し中は音飛びによるノイズが出るため、自動的に音量が小さくなります。【省電力動作】
消費電力を抑えるため、CPUがアイドル状態(miniSDカード・VS1011へのアクセスおよび操作スイッチ処理を除いた期間)の間は、CPUコアを省電力モードにするようにしています。*最初の1回目の起動時、何も鳴らなくてあせります。これは初期状態でVS1011のボリューム値が最小になっているためですので、SWRを押しながら起動して不揮発メモリを無視するようにしてください。
*デバッグ中にシャットダウンモードに入ってしまうと、CPUが無応答となるため強制的にターゲットが切断されてしまいます。デバッグ中は1088行目のコメントアウトを解除すると作業効率がよくなります。デバッグ終了時に再度コメントアウトすることをお忘れなく。
*現在サポートしているのはFAT16のみです。新しいminiSDカードを使用する際には念のためにFATでフォーマットしてください。
シリアルアダプタEC2と接続して、ファームウェアをダウンロード。
動作確認中の様子です。
Timpyに興味を持ってくださった方が、もし仮に作ってみようと思ったときに、費用面で一番障害になるのは基板だと思います。
たとえばRev3.0の基板を、P板さんで1枚だけ作ると、27,000円近くもかかってしまいます。
それではあまりに敷居が高いですよね。
その基板ですが、先日3回目のリピート製造をしました。
今回も数枚余裕を持って作りましたので、ご希望の方にお譲りします。
手順などは第2回と同じです。下記をご覧ください。
1枚5,000円(普通郵便の送料込み)です。
お送りするのは生基板のみです。部品類は一切含まれません。ご了承ください。
お申し込みはとりあえずBBSへお願いします。
その際に連絡先のメールアドレスをお忘れなくご記入ください。
直接ご連絡いただいてもかまいません。 chi[at]chiaki.ccまでどうぞ。
よろしくお願いします。
【ご注意】
完成させるには、
○実装部品類のほかに、C8051F330の開発環境やその他もろもろが必要になります。
○面実装の手はんだのワザが必要です。
1005の抵抗やコンデンサ、QFP、MLPなどの部品を使っていますので、実装にはある程度のスキルが必要です。
自信がないという方はご相談ください。お手伝いします。
よくご検討の上お申し込みください。
ページの先頭へ戻る | ||
Copyright 2004, 2005 Chiaki Nakajima.
All rights reserved.