« 3端子レギュレーターの復讐 | トップページ | FPGAフォトフレーム開発のロードマップ »

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

|

« 3端子レギュレーターの復讐 | トップページ | FPGAフォトフレーム開発のロードマップ »

FPGA」カテゴリの記事

電子工作」カテゴリの記事

コメント

PEN^2さん、詳しい解説ありがとうございました。
あれから、5V両電源でどのオペアンプも正常動作するのを確認しましたが、PEN^2さんの説明で3Vでもやってみます。オペアンプは完全な素人なので、データシートの読み方などとても参考になりました。ありがとうございました。これからもよろしくお願いします。

投稿: がた老 | 2010年2月23日 (火) 12時28分

はじめまして。

>3.3V単電源で安定して動作するオペアンプを選ぶのは狭き門のようです.

レールツーレール特性(入出力フルスイング)のオペアンプであれば問題なく動作すると思います。
http://semicon.njr.co.jp/jpn/faq/faq19.html
ただし、入手が容易で安価な品種はLMC6482くらいのようです。

レールツーレールでない場合には「同相入力電圧範囲」という特性に注意する必要があります。
http://www.necel.com/linear/ja/word/oc/word_guideoc_a14.html

NJM2114とNJM5532は、どちらも5V単電源というのは仕様外の動作ですが、例えば±3V(6V単電源)で動作させたとしても問題になる可能性があります。
NJM2114とNJM5532のデータシートを見ると、同相入力電圧幅は ±12V:min ±13V:typ(電源電圧±15Vの場合)なので電源電圧よりも±2~3V低いということになり、電源電圧を±3Vとした場合の入力電圧幅はtypで±1V、minでは±0Vとなってしまうので、電源電圧をもっと上げないと正常な動作は期待できません。

ただし反転増幅回路でプラス入力端子を電源電圧の1/2に設定すれば、マイナス入力端子もバーチャルショート動作で同電位になるため、同相入力電圧幅はまず問題になりません。ボルテージフォロアではNGでも、ゲイン1倍の反転増幅回路にすれば正常に動作することが多いです。

投稿: PEN^2 | 2010年2月22日 (月) 22時11分

3.3V単電源で安定して動作するオペアンプを選ぶのは狭き門のようです.
3.3Vということで、低電圧駆動のオペアンプである必要があり(電圧が一定以下になるとウンともスンともいわなくなります)、ボルテージフォロアで安定するためにはユニティゲインと謳っているものがよいようです(ゲインを下げれば下げるほど発振しやすくなるようです).
単電源で0V付近まで使用可能(DACの出力で1.6V±1.5Vまで使う)なものを考えると単電源用と謳われている必要があるようです.
上記を満たすものを選ぶとオペアンプの値段の桁が一つ増えてしまうので、発振が無いか(発振防止回路を付けるか)・最大出力をしてクリップが無いか確認して使うのがよいのかもしれません.
NJM4580のコンデンサ前では波形の中心電圧が1.67V程度と思われますが、NJM5532ではもう少し低いですか?(上側がなだらかにクリップしているように見えなくもないのですが・・・)
実際にオシロスコープで波形を見たことがないので、かなり想像の世界で書いております.
間違っていたら惑わせて申し訳ありません.

投稿: ARI | 2010年2月21日 (日) 00時27分

みなさん、早速のコメントありがとうございました。
kugaさん、オペアンプの±3Vというのは、0~3Vでも良いということではないんですね。データシートは穴があくまで見よなんて偉そうなことを言っていて、こんなところに落とし穴があったとは。いや勉強になりました。しかし、苦労してオシロの写真を4枚上げた甲斐がありました。
今後ともよろしくお願いいたします。

投稿: がた老 | 2010年2月20日 (土) 16時33分

いつも興味深く拝見させて頂いております。
たしか5532はゲイン1のボルテージフォロアでは発振しやすいはずじゃなかったですかね?

それと消費電流が多いからバッテリー機器には向かないかもしれないですよ。
出先からで資料が手元にないので間違ってたらすみません。

投稿: JACO | 2010年2月20日 (土) 15時31分

>Apple][
コンパチですが、うちにもありますよ。
手持ちのパソコンでは一番古いと思います。
確か共立で購入して自分で組み立てました(82年頃)。

10年くらい前に電源を入れたら動きましたが

去年の7月頃(電子工作をやりはじめる1ヶ月くらい前)
にApple版のLoadrunnerを解読していました。
単に暇つぶしにしかなりませんでした(理解できなかった・・
やはり私にはゲームは無理)。

後、実機は持っていませんでしたが、MSX(2)の
FPGA版なら持っています・・・使ったことありません
けど(汗;)。

これからの連載も楽しみにしています!

投稿: 愛読者 | 2010年2月20日 (土) 13時56分

NJM2114もNJM5532動作電圧範囲の最低は±3Vからです。
要するに電源に6V必要ということです。
これに対して、NJM4580は±2Vからの動作となっています。

投稿: kuga | 2010年2月20日 (土) 12時43分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1089557/33456914

この記事へのトラックバック一覧です: FPGAを使ったフォトフレーム制作計画始動:

« 3端子レギュレーターの復讐 | トップページ | FPGAフォトフレーム開発のロードマップ »