PIC AVR 工作室->TopPage->AVRの工作->PLAYER
PLAYER
PLAYERの概要
スプライト表示器、背景表示器と、 それらを制御するメインCPUの計3つのAVRを搭載し、入力には上下左右とABの計6つのボタン、 出力には映像出力と音声出力端子を備えたボードです。20MIPS+20MIPS+20MIPS=60MIPSという、 PSPやDSにも劣るとも勝らないスペックです!
スプライト表示器と背景表示器にはそれぞれTINY2313を。メインCPUには28PIN20MHzのAVR (MEGA48、MEGA88、MEGA168あたりを想定)を1個搭載。音声出力には約10KHzのローパスフィルターを搭載。 PWMによるアナログ音声出力を利用すれば、サンプリング音声を出力することも可能(なはず)です。
使い方
2つのTINY2313にそれぞれスプライト表示器・背景表示器のプログラムを書き込み、メインCPUにアプリケーション プログラムを書き込んでください。
アプリケーションプログラムからのスプライト表示器や背景表示器の制御方法は、 スプライトデモやドットイーター のC言語ソースをご覧頂けばすぐにわかると思います。
回路図
クリックすると拡大図が表示されます。
電源には3端子レギュレータ78L05を使っていますが、5V電源を直接供給するのであればレギュレータは特に必要ありません。
入力ボタンには、チャタリング防止用の抵抗とコンデンサが取り付けてあります。プログラム側ではチャタリングの考慮不要。 それも、AVRがPICと違って全PINともシュミットトリガ入力となっているおかげ!
音声出力部分には約10KHzのローパスフィルタを取り付けました。このままアンプに繋げば音が出ます。 ローパスフィルターの計算はこのサイト を利用しました。(計算間違えてたらすみません。) PWM使ったアナログ音声出力はまだ実験していないのですが、 適当な周期でON/OFFの信号を出力して、「プー」とか「ピー」とかブザー音が出ることだけは確認してあります。
映像出力回路のところで、スプライト表示器・背景表示器からの各映像信号を合成するためにOR回路を1個使用しています。 本当は74HC32のようなOR回路ICを使うべきなのでしょうが、家に在庫が無かったので手を抜いてシリコンダイオード2個で済ませてしまいました。 そしたらダイオードの電圧降下のせいで出力電圧が下がってしまい、映像の輝度が少し暗くなっちゃいました。 同期信号の電圧には影響ないはずですが…
このボードにはご覧のとおり拡張端子の類が全くありません。(強いて言えばISP端子がついてますが…) 実験用のボードとして外部に色々な機器を接続したいという人は、外部接続端子などを設置するといいでしょうね。
入力は6つのボタンだけで、アナログ入力はありません。ブロック崩しのツマミダイヤル的な入力装置等が欲しい人は、 28PINのうち余っているADコンバータを使って入力チャンネルを増やすと良いかもしれません。
PCB基板の画像です。クリックすると拡大。
コメント
スプライト表示器と背景表示器 のプログラムを組んだので、ひとまず動くボードがないとテストも出来ん!って理由から適当に組み上げた代物です。 なので最低限必要な機能しか搭載してません。しかも、元々私はソフト屋なので、ハードウェアの設計は苦手と来ています。 ハードウェア上にまだまだ間違えが残っているかもしれません。(気付いた人はこっそり教えてください!)
映像出力回路のOR回路部分。本来はダイオードのところにプルダウン抵抗(?)を組み合わせないとダメだと思うんですが、 あまり考えずに抵抗抜きで適当に作ったら映像信号が全く出なくなっちゃって大慌て!ひとまずカップリングコンデンサを半田でショートさせて 回避しちゃいました(^.^;)。ちょっと危険…?
下のダウンロードのところにあるPCBE用の回路図データは、このあたりの映像出力周り(OR回路)がダメなままになっています。 このまま組み立てると映像が出力されません。PCBEのデータを使用する前に、OR回路部分にはダイオードの所に適宜プルダウン抵抗を 組み合わせるか、74HC32等のORロジックICと組み合わせるかしてください。輝度のことも考慮すると、PCB上にスペースが取れるなら ORロジックICを使う方がよいでしょう。
(なお、PCBEはフリーのプリント基板エディタです。VECTORなどで「プリント基板エディタ」と検索すると すぐ見つかります。別ページに特徴などを纏めておきます。)
上下左右のボタンがお互い少し離れているので、ちょっと押しづらいかも知れません。チャタリング防止用のコンデンサや抵抗を 組み込んだら、こうなってしまいました。片面1層のPCBなのでこの程度でご勘弁を。(というか、改良していただけると嬉しいです)
このボードのデザインは、LED GAME for AVR を参考にしました。というか、ほとんどそのままですね。ICの数が多くなった分、表現力は広がっていると思うのですがいかがでしょう?
ダウンロード
PLAYER用アーカイブ(クリックすると開きます)
(注)スプライトの映像信号と背景の映像信号を合成するOR回路部分が不完全です。手っ取り早いのは、カップリングコンデンサーを 短絡させることですが、できるだけ、プルダウン抵抗をつけるか、OR回路のロジックICを使ってください。ページの最上部に PLAYERの写真が載ってますが、右上のコンデンサー。回路図と違ってセラコンが乗っているのが判るかと思います。 このセラコン、実は裏側は半田で短絡させてあります。最初作った時に、色々試行錯誤した結果こんな風になりました…。 超アバウトです…