« 2010年1月31日 - 2010年2月6日 | トップページ | 2010年3月7日 - 2010年3月13日 »

2010年2月14日 - 2010年2月20日の1件の記事

2010年2月20日 (土)

FPGAを使ったフォトフレーム制作計画始動

出番を待っているディバイスが目白押し(2/11/10)
 SDカードリニアPCMプレーヤーは量産の仕事(?)が残っているが、当面の大きな課題はほぼクリアした。もともとはひょんなことから作り始めた16ビットDACのオーディオプレーヤーである。思いがけなく良い音がしたものでつい深入りし、10台近くを作るところまで来てしまった(まだ4台作らなければならない)。

 プレーヤーの方はおかげさまで沢山の人から注文を貰っただけでなく、ブログを通しても反響があり、セカンドソースがいくつか動き始めているらしい。これはこれで嬉しい限りなのだが、考えてみたら、このプロジェクトは始めて以来、もう1年以上になる。

 レギュレーターの問題、新しく買ったDAC(μPD6376)のテスト、それとブログには書いていなかったが、別のオペアンプ(NJM2114)がうまく動かない問題など、まだやり残している課題が結構ある。しかし、がた老AVR研には、まだテストしただけで使われていない出番待ちのディバイスがごろごろしている。729fpga

 SDカードプレーヤーばかりに関わっているわけにはいかない。そろそろ次のプロジェクトを決めてやらないと、待っているディバイスが可哀そうである。そういうことで言えば、次はやっぱり大物のFPGA雑誌付録基板を使ったプロジェクトだろう。

 実はこれまでの工作の合間にも、FPGAを何に使うか色々考えていた。動画はまだ難しいので、SDカードから画像ファイル(BMPかARMライブラリを使ってJPEG)を読んで画面に出すフォトフレームにしようと思っていた。中古の液晶パネルも買ってある。

 ところが、フォトフレーム自体が市場に多く出回るようになり、このあいだは秋葉原の安売りショップで、\2000の値札を見て少し気分がなえてしまった。とは言え、他に色々考えても、FPGAの応用でこれ以外の面白そうなアプリケーションがなかなか見当たらない。

 今時(いまどき)の液晶グラフィックモジュールは、フレームバッファーを内蔵し、SPIか何かでビットマップデータを送るだけで表示されてしまうらしいが、これではいつまでたってもFPGAの出番がない。

 負け惜しみかもしれないが、こんどのプロジェクトの目標は、フォトフレームを作るというより、FPGAをマスターするというところに力点を置こうと思う。FPGAの幅広い機能を活用して、フレームバッファーや、映像信号を作り、アナログRGBインターフェースを作ることにする。

 FPGAにここまでこだわるのには理由がある。FPGAをマスターしたあとの遠大な目標があるのだ。パソコンのApple][(Ⅱのことを昔はこう書いた)をFPGAで作ってみたい。大型汎用機のプログラマーをしていたとき、このパソコンと出会った時の感動が忘れられない。余り明かしたくないががた老AVR研の究極の目的だ。それにMSXや、PC6001のエミュレーションは既に実例はあるが、AppleIIのプロジェクトは、海外でも例がなかった。

 しかし、久しぶりに検索してみたら、ここのページを見つけた。おおお、動いている。当研究所にはMac Plusは完動品が残してあるが、AppleⅡ(コンパチだけど)はとっくの前に壊れて処分してしまった。しかし、ソフトはまだ残してある(はずだ)。これは楽しみなことになってきた。

Xa2122705

 まあ、それはともかくFPGAである。雑誌のバックナンバーで、XilinxのXC3ES250の雑誌付録基板を入手したのが、2年前の8月。JTAGインターフェースを自作し、雑誌のソースでLEDを点滅させることまではやったが、それ以来手がついていない。特集があるたびに関係雑誌を買い求め、参考書も揃えたが、この山は恐ろしく高い。そう簡単には手がつかない。

 最初は、ビデオインターフェースという目標が高すぎるので、もう少しやさしいアプリケーションをさまざま考えていた。と言って10進カウンターや、7セグLEDを駆動するだけでは今更と言う感じがする。FPGAの特長は、メモリやFIFOバッファー、FFTなどの内部コアをいちから作らなくてもライブラリが利用でき、開発の生産性が高いと聞いている。これを試してみたい。しかし、中間的な難易度のアプリケーションが見つからない。

 迷った挙句、結局、目標のフォトフレームをいきなり作るというアプローチをとることにした。これまでの勉強の成果か、だいたいの道筋が見えてきて何とか作れそうな気がしてきたからである。 去年買った5インチのTFT液晶ディスプレイは、アナログRGBのインターフェースを持っており、おまけのコンポジット変換基板がついているのでリファレンスに使える。

 ブロックダイアグラムを描いてみる。静止画データはARMプロセッサーを使って、SDカードから読ませる。参考プロジェクトにあるように、FPGAにPicoBlazeのようなコントローラーを入れたほうがよいかもしれない。難しそうなところは、ビットマップデータから色信号をとりだして簡易なDACでアナログ信号にし、これを映像信号にのせるところだろう。このあたりの物理回路の良いお手本が見つからない。ビデオDACをつけるほうが楽かもしれない。

 フレームバッファーは当初、FPGA内のブロックRAMでできると考えていたが、まともな絵にする(256色以上)には足らないし、FIFOでは、常時SDカードアクセスが必要で精神衛生上悪い。やはり外付けRAMが必要なようだ。高速RAMにすれば動画にも使える。

 それにしても、まだ雲をつかむような気分である。ARMの時もそうだったが、雑誌の情報というのは、実際に何か自分で作ろうとすると殆ど役に立たないということを思い知らされる。電子工作の初心者の人が、Hello Worldを出し、LEDを点滅させて、次に何かしようとすると突然わからなくなると嘆いておられるのを時折り見かけるが、これと全く同じ状態である。

 初心者から初級にはすぐ上がれるが、中級に上がる壁は厚い。まあ、愚痴を言っていても仕方がない。あのEAGLEだって最初は全く霧の中だったが、何とかなった。今度もすこしづつ攻めて行くことにしよう。

プレーヤー4台完成。(2/14/10)

 FPGAのことを考えながら、手はしっかりリニアPCMプレーヤー第三版の製造をやっていた。あと2台。工程を少し合理化して2台まとめて同じ工程で作っていく。基板のハンダ付けはやりだすと止まらない。電池フォルダーはこのあいだサーキュラーソーのテストを兼ねて台数分作ってあったので進捗が早い。ケースの穴あけも慣れて来て順調だ。電池フォルダーは本体ケースに接着したストッパーと、接点そのもののバネでしっかり固定される。なかなか上手くいった。

A2062700

 次々に残りの2台が完成して、あとは養生テープをはがすだけとなった。プリント基板だ。誤配線はあり得ない。テストもいらないかとは思ったが、念のため通電テストをした。

 ありゃりゃ、音が聞こえない。LCDにメッセージは出るので動いてはいる。しかし、音がしない。ええー、そんなー。あわてて電源コネクターを外し基板をチェックする。どこもおかしなところはない。CPUもオペアンプもきっちりささっている。ヘッドフォンジャックにコードをつけないで音が出ない、出ないと騒いだこともあるので(本当の話です)、ジャックをもういちど差し直す。

 段々、顔が引きつってきた。これはどうしたことだ。完動している1台目と慎重に見比べて行った。画面は動くので問題なのはまたアナログだ。うはあ、見つけた。DACからオペアンプに行く両チャンネルの抵抗が縦に並ぶところを横にしてハンダ付けしている。

 基板のシルク印刷はこういうときのためにあり、縦型に配置した抵抗の印がついているのにこれを無視して半田付けしてしまった。いやいや慣れというのは恐ろしいものだ。しかもご丁寧なことに2台とも逆さま。むなしい気持ちでサンハヤトの特殊ハンダを取り出して取り外す。これ\5000近くするけれど、くやしいことに確かに有用だ。

 4台が完成した。間もなく注文主のところへ旅立つので記念写真をとる。沢山並ぶと壮観だ。ひそかに部屋で、玩具を集めて一人で悦に入る小学生の気分だ。新版のマニュアルを作り直す。リッピングソフトの解説書も作る。注文主はパソコンに慣れていない人が多い。

Xa2132708

 このリッピングソフトの作者は、ChaNさんの仲間の人でChaNさんの掲示板にも出ている人だ。いくつかリッピングソフトを試したが、このソフト(CD2WAV32)が何といっても一番簡便で性能が良い。気に入っている。他のソフトはCDの文字情報を読み込んでくれたり、ファイル名の修飾など沢山機能がついているが、出だしにポップノイズがついていたり、ノーマライズが下手だったりして結局、このソフトが残った。この場を借りて作者の「もろぼし☆らむ」さんに多大な感謝を表明したい。ありがとうございました。

泥沼のオペアンプ選び(2/18/10)
 リニアPCMプレーヤーは、ブログの写真を見ていただければわかるようCPU(Mega328)とオペアンプのところはソケットにしてある。CPUはISPがついていないので必然だが、オペアンプをソケットにしたのは、将来、別のオペアンプで違う音を楽しめるようにと、あえてソケットにしたところがある。

 今は、NJM4580DDを使っている。最初ブレッドボード版では、LM358を入れ、そのころのブログには「結構良い音がする」と書いたが、4580に換えたところ全く次元の違う音がしたのでそれ以来、ずっと4580にしている。秋月で一ヶ\40という廉価も魅力だ。

 大分前に秋月に寄った時、これより少し値段の高いNJM2114を買ってきた。オペアンプの勉強をしている時、ヘッドフォンアンプのWebサイトにはまって、オペアンプの種類でこんなに音が違うのかと、もうちょっとでオーディオの魔力にとりつかれそうになった頃、確か、4580より良いと褒めていた石でたまたま店頭で目に付いた衝動買いである。これだって一ヶ\50。

Xa2202714

 実は、買ってきたとき早速試したのだが、ボルテージフォロワーでは全く出力が上がらず、NJM2114の固有の問題かと思って放置してあった。LM358と4580DDでは問題なく音が出ていたし、他のことで忙しかったこともある。

 このあいだ、量産のための部品を買い足しに秋月に寄って、少し手が空いたので、あのサイトが最高ランクにつけていたNE5532のセカンドソースのNJM5532 を買ってきた。これだって一ヶ\75。

 試聴してみる。音は出た。Xa2202716あれ、何か歪んでいる。ゲインは4580DDと同程度だが、明らかに音がおかしい。オシロで確かめてみた。うーむ、正弦波の上が盛り上がり、下が細っていて明らかに歪んでいる。三角波は、全波整流の脈流のようにお椀型になる。

 これは一体どういうことだ。ボルテージフォロワーは、ピンコンパチではないのか。ボルテージフォロワーは調整するところは何もない。つまりオペアンプに対応して、いじるXa2202715ところがないからソケットにして差し替えが出来るようにしたのだが、これではソケットにした意味がない。

 Webに助けを求める。しかし、的確な答えはない。DACでお世話になっているここのサイトに、DAC出力のバッファーとしてLM358のボルテージフォロワーの回路図があったので試してみたが、NJM2114も、 NJM5532も変化がな かった。やれやれアナログは難しい。

A2202717

| | コメント (7) | トラックバック (0)

« 2010年1月31日 - 2010年2月6日 | トップページ | 2010年3月7日 - 2010年3月13日 »