デジタルrgb出力をvgaモニタに出力したい
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| デジタルrgb出力をvgaモニタに出力したい [2020/12/08 00:50] – [RGB15色対応] araki | デジタルrgb出力をvgaモニタに出力したい [2020/12/23 01:55] (現在) – [アップスキャンコンバータ] araki | ||
|---|---|---|---|
| 行 51: | 行 51: | ||
| |電源用USB Micro Bコネクタ|1|5Vの電源入力が可能なら何でもいい| | |電源用USB Micro Bコネクタ|1|5Vの電源入力が可能なら何でもいい| | ||
| + | PIC版とか書いたが、どうもPIC版は動かないかもしれない。 | ||
| + | というのも、PICが思ったより遅いから。 | ||
| + | |||
| + | 15KHzの水平回帰だと、320ドットを描くには、ドット当たり4.8MHzくらい(1/ | ||
| + | |||
| + | が、PIC16F1827をフルスピードで動かしても32MHz。 | ||
| + | となれば、構成する命令が全部1サイクルで終わるものだとしても、わずか6ステップですべてを終わらせる必要がある。 | ||
| + | ま、ポートから値を読んで、テーブル引いて出すとかなら間に合うだろうと思っていた、実は。 | ||
| + | |||
| + | が、ここでPIC16のアーキテクチャの罠があったのを今更知った。 | ||
| + | |||
| + | **なんかするたびに、Wレジスタを経由せざるを得ない。** | ||
| + | |||
| + | 最初、Cでコード吐かせてみて絶望した。 | ||
| + | 最適化を'' | ||
| + | とりあえず、ごりごり、アセンブラで書いてみた。 | ||
| + | |||
| + | < | ||
| + | loop: | ||
| + | movlb | ||
| + | clrf 0x76 ; レジスタ 0x76 をクリアする | ||
| + | ; HV混合信号を生成する (C = H ^ V ^ 1) | ||
| + | movlw | ||
| + | btfsc | ||
| + | movwf 0x76 | ||
| + | btfsc | ||
| + | clrw | ||
| + | xorwf | ||
| + | ; RB - xxxxCBGR で出力する | ||
| + | movf 12,w ; W=PORTA & 7 (RGBコードだけ取り出す) | ||
| + | andlw 7 | ||
| + | iorwf | ||
| + | movwf | ||
| + | ; TRISBにハイインピーダンスにするポートを出力する(IN にセットすると出力としてはハイインピーダンスになる) | ||
| + | movf 12,w ; W=PORTA & 0x0f | ||
| + | andlw 15 | ||
| + | addlw | ||
| + | movwf 6 | ||
| + | movf 1,w ; W = INDX1 (W = ds[PORTA & 0x0f]) | ||
| + | movlb | ||
| + | movwf | ||
| + | goto loop | ||
| + | </ | ||
| + | |||
| + | 頑張って、20命令まで減らせたが、これでも予定より3.5倍くらい多い感じになるので、もうクロックを100MHzくらいにおーばくロックするしかないような気がしている。 | ||
| + | 多分、このまま実装すると、色が3ドットごとにしか変わらない、PC-8001みたいなことになりそうな気がする。 | ||
| + | |||
| + | 無念。 | ||
| + | |||
| + | そう考えると、TTLロジック速いな。 | ||
| ==== アップスキャンコンバータ ==== | ==== アップスキャンコンバータ ==== | ||
| 行 64: | 行 114: | ||
| 実際、製品に添付されていたケーブルは、RGBとS(H/ | 実際、製品に添付されていたケーブルは、RGBとS(H/ | ||
| + | 実験的に R, G, B, S(H/ | ||
| + | なお、散見される 3.3V動作だから、信号レベルを調整しないと不安定というのは、誤りであるように思う。 | ||
| + | TTL(5V)の信号を直接放り込んだが、特に動作が不安定になることはなかった。 | ||
デジタルrgb出力をvgaモニタに出力したい.1607388647.txt.gz · 最終更新: by araki
