「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



以前、Chanさんの汎用ディスプレーコントローラ
http://elm-chan.org/works/crtc/report_j.html
を見て以来、ずーーーーーとアタマから離れなかった
のが、カラーで1ドット単位で自由自在にビデオ表示
をしたいって言う野望。しかも汎用部品で。

Chanさんのこれは16色表示。例のAVGA
(mega168ワンチップでマリオとかやっちゃう
あれね)も16色表示。

オイラとしては以前から1ドット3ビット(8色)や
4ビット(16色)を超える発色を実現したい、
しかもカラーNTSC表示で、と思っているんですが、
色々考えてみるとすぐに一つの壁にぶち当たってしまう…

単に表示するだけならともかく、マイコンからの
描画信号を受け取りながらVRAMとして使用する
外部SRAM(FPGAと違ってブロックRAMが
無い)への読み書きタイミングを取りつつ、
かつ14.3Mhzの4クロック単位(V、U、-V、-U)
で1ドット確実に表示するということを同時処理して
いかないといけないわけですが、SRAMへの書き込みは
最低でも3クロック(アドレスとデータをセット、
WE立ち下げ、WE立ち上げ)は必要だし、SRAMの
アクセス速度によってはあと1~2クロックは必要かも。

とすると、書き込みだけ、もしくは読み出すだけで
約4クロック、しかも書き込みだけで読む暇が無い…
(ん?読み出しはもう少し少ないクロックでも
 いけるか?)

うーん、そうか。Chanさんの回路で16色(4ビット)
しか使っていないのは、1バイト分の読み書きで2ドット
扱える(つまり8クロックに1回書き込めばいい)という
ことも一つの目的になっているわけだな…といまさら
になって気付く。

なるほどね。これならば8-4=4クロック分はマイコン
から受け取ったデータの書き込み用に充てられるわけだ。
頭いいなぁ。


うーん、じゃぁ14.3MhzのCPLDでは
やはり4ビット以上の表示は不可能なのか?
これより速いクロック源を探さないといけないのか?

というのが、ここ数ヶ月ずーーーーとアタマから
離れなかったことでした。大きな壁。


ところが、今日電車乗ってボーーーーーとしてたら、ふと
思いついた。(といっても、解法ではなくてまだ糸口程度)

1+1は2だな。考えてみれば当たり前のことだけど…
いままで気付かなかったおいらはやっぱ毛が3本足りない
んだな。

問題は、これをVHDLに上手い具合に押し込むことが
出来るのか?

かなり面倒なステートマシンを書かないといけないかも
知れない…(規模ではなく処理内容が)

でもこれが出来れば16色どころではなくなるもんな…
面白いかも!


まぁこの件に限らず、以前作ったスプライト表示器
http://picavr.uunyan.com/avr_m_sprite.html
とかも、頭の中で「おっ?なんかできちゃいそうだな…」
って思いついちゃったら、あとは力技でむりやり
ねじ伏せるまで突っ走ったから、こんかいも馬鹿丸出し
で突っ走ってみるか???

そう。馬車は嘶きゃ治らない((c)ログイン/アスキー)
なのだ。

あ、馬車丸出しか。


とりあえず、目指すは320×200の8ビット表示だ!
(注:8色表示ではない)

でもその前に、ようやく完成したCPUボードを弄り
倒す方が先だな。



コメント ( 0 )




VHDLの勉強をする以上、やっぱり小さいCPU
を自分で設計してみなきゃいけません。
世の中そういうことになってます。多分。

というわけで、以前から気になっているこちらの
サイト。

http://laputa.cs.shinshu-u.ac.jp/~yizawa/design_cpu/chap2.htm

オイラはいつになったらこのページの中身が
すらすら読めるようになるのかなぁ…

多分、VHDL云々じゃなくて、組み込むべき
一つ一つの機能に関する理解なんだろうな。
ALU、命令デコード、メモリアクセス…。

CPUをソフトウエア側から利用していると
その存在すら意識しないんだけど、いざ作るって
なるとまだまだ理解しないといけないことはいっぱい
あるな…

それにしても、こんなに短いVHDLでCPUが
1個出来てしまうとは!すばらしい。
ゴールは遠そうだけど、がんばろう。



コメント ( 0 )




この間パピコン用のCRTコントローラーっていうのを
見つけましたが、P8用もあるようです。
正確には、PC-8001mkⅡ用みたいです。

そうそう。P8シリーズって、8ピンデジタル出力に
14.3Mhzの信号が出てるんだよなぁ…。
この信号使ってコンポジット変換でもやってみよう
とか思っていたんだけど、他のOLD-PCに
互換性があるのかどうか…って考えてやめちゃった…

アナログ15ピン端子にも似た様な名前のがある
んだけど、これってなんだろう?13番ピンのAVC
信号って。

それにしてもWIDTH80がこんなに綺麗に表示
されるってなると、便利かもね。古いCRTなんて
手に入り難いし、手に入ったとしても置き場所に
困るのがオチだし。

いや、どっちかというと、FANFUNの画面が
涙出ちゃうな。懐かしすぎ。



コメント ( 0 )




http://tulip-house.ddo.jp/digital/USBCRT/index.html

こんな面白いもの発見!

いにしえの8ビットパソコン、PC-6001mkⅡ/
6601用のCRTが出回っていないことを考慮し、
RGB信号をCPLDで受け取って、USBでwindows
にビデオ信号を取り込み、WINDOWS画面に表示
してしまおうという大胆な作戦…
(ヤフオクで入手できるそうです)

XC9572XLにSRAMを繋いでフレームバッファ
にし、そいつをFT245RでUSB転送する感じみたいですね。

なるほどね。それにしてもXC9672XL1個で
RGB取り込みしたりSRAMアクセスをバリバリ
やったりと、かなり興味をひくスペックを押し込んで
あります。面白いなぁ。

あと、このページの内容的には「ちゃっくんぽっぷ」の
キャプチャー画面になみだちょちょぎれだな。
タイニーゼビウスやドアドアも久しぶりにやってみたく
なった。
もうひとつのシューティングはなんだろう?
アルフォスじゃないよね…

そうそう。6001シリーズといえば、おいらはやっぱり
キャラメルキーボードの初代パピコンに一番慣れ親しんで
いるんだけど、あれは対象外なのかな?

でもまぁ、オペアンプ使えばRGBをコンポーネント
ビデオ信号(D端子用)に変換するのは簡単だろうから、
windowsに取り込むっていうメリットはなんだろう?
キャプチャー画面が簡単に取り込めるってことか?

それにしても、昔大好きだったものが現代によみがえる
みたいな感じがして、こういうもの見ると嬉しくなるな。



コメント ( 0 )




オプティマイズのMAX2CPLDボードの実験に、
この間作ったNTSCコンポジットカラービデオの
表示をやってみました。

こんなかんじ。
例によって、オシレータは14.3Mhz5Vを
無理矢理3.3Vで動かしてます…。危険だから
良い子のみんなは真似しちゃダメだよ!


この間作ったVHDL…つまりRGB信号をカラー
コンポジットに変換するだけのやつをほぼ修正無しで
使いまわします。
ただ、MAX2はXC95xxXLシリーズと
ちがって5Vトレラントはないので、RGB信号を
生成するマイコンも3.3Vで動かす必要あり。

というわけで、今回もTINY2313でRGB信号を
生成させようって腹なんですが、今工具箱に入っている
のは確か20Mhz5V用のプログラムを書き込んだ
ままになっているはず。

こいつはそのまま残しておいて、別のTINY2313
を出してきて使うことにしたんですが、ここで私の
学習能力が効果を発揮!

新しいAVRを使うときといえば、8Mhz内蔵RC
かつ1/8倍のディバイダが設定されているわけですが、
またすっかり忘れてた…

今回はpicoscopeがあるので、出力波形を眺めてみたら
水平同期期間が異常に長い…
うーん、どうしてかなぁと考えて思いついたのが
1/8倍のディバイダ。これをオフって再度挑戦
したところ、水平同期期間が約80us。

あれぇ?微妙な長さ。
10Mhzで約64usになるはずだから、計算上
8Mhz程度で発振してるみたい。8Mhz?
内蔵RCがONのままだ!

アホだなぁ。こんな失敗ばかり二桁の回数やってる
はずだな。
多分、同じ間違えを繰り返すように学習しちゃって
るんだな。(TへT)


気を取り直して動かしてみると、

でた。イイカンジ。なんとなくXC95xxXLよりも
ちゃんと出てる。

例によって黄色と緑の間が黄緑っぽく見えるのは
キャプチャーボードのせいで、テレビ画面では
ちゃんと水色で表示されてます。念のため。


今回は、picoscopeを最大限利用して、波形も撮って
みました。

まずは水平同期とバースト信号付近のアップ。

若干ノイズはあるものの、まぁこんな感じでしょう。

そして、水平同期1本分の波形

うーん、なんだか1Vより上が切れてるな。
これはpicoscopeの操作方法が良く解ってない
からだな。

うん。でもまぁ、それなりにちゃんと出てます。

こんな風に設計どおりに動いてくれていると気持ちいいな。
ちなみに、リソース消費は9%程度みたい。やっぱり
XC95xxXLと比べると大容量ですなぁ…。

この続きとしては、RGB信号自体もVHDLで書く
って話が1点。1ライン正確に910クロックにする
って話。

もう一つは、CPLDを使わずマイコン(と少ない
外付け部品)だけでRGBを自由自在に表示するって
話。

後者は部品を買い込んであるので、あとはブレッドボード
で組み上げるだけなんだけどな。ちょっとずつ進めて
いきましょうかね。




コメント ( 0 )



« 前ページ 次ページ »