FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。(SCCB回路の変更、設定SCCBレジスタ)さて、前回でロータリーエンコーダを使用することができた。今度は、SCCBレジスタの設定回路(SCCBインターフェース回路)をSMMから制御できるようにハードウェアを変更することと、LCDに表示して設定するSCCBレジスタを決定した。の”OV7670で作るUSBカメラ”のページを参考にさせて頂いた。最初に設定するレジスタの仕様を下に示す。OFFを設定できるようにした。AWBなど)の値を表示する。ロータリーエンコーダのセンタースイッチを押すと編集モードに入って、1行目の後ろにEを表示する。OFFまたは値をロータリーエンコーダの右、または左回転で変更することができる。一度ロータリーエンコーダのセンタースイッチを押すと、編集モードから抜けて表示モードに戻る。この時に、ロータリーエンコーダの右、または左回転すると、表示する項目を移動できる。LCDの2桁目は、全体を上図のように表示する。GはAGCがONであることを示し、BはAWBがONであること、EはAECがONであること、MはMIRRORがONであることを示す。OFFの時には表示は消える。次に、SCCBインターフェース回路の変更点だ。SCCBインターフェース回路の説明は、”SCCBインターフェース回路の説明1(SCCB_Reg_Controller.vhd)”、”SCCBインターフェース回路の説明2(freqdiv.vhd、SCCB_reg_values_ROM.vhd)”、”SCCBインターフェース回路の説明3(One_Transaction_SCCB.vhd)”を参照してください。3つのポートを追加した。addr_dataは全体で16ビットで、上位8ビットがアドレス、下位8ビットがデータとなる。ad_enableはaddr_dataの値が有効でSCCBレジスタへの書き込みを示す1パルスの信号だ。SCCB_busyは、現在ステートマシンがSCCBレジスタに書き込み中を示す。Readすることができるようにする。設定値を全て設定するが、その後はSMMの要求で、SCCBレジスタに設定値を書きこむように変更した。初期化設定時には、SCCB_busyを1にしておいて、SMMにSCCBインターフェース回路がbusyであることを知らせる。初期化後はaddr_data、ad_enableによるSMMからのレジスタ書き込みを行うことができるが、SMMはその前にSCCB_busyフラグを読んで、SCCBインターフェース回路がbusyでないことを確かめてから、レジスタの設定を行う。SCCB_busy_node;ここで、cs_reg_setはステートマシンのステートを示す信号で、end_stateに遷移していると初期化が終了したことを示している。次に、SMMとのインターフェース回路lcd_rot_cont.vhdだが、ここにSCCB_addr_data、SCCB_ad_enable、SCCB_busyポートを追加した。lcd_rot_cont;0040番地にSCCBインターフェース回路へのアドレス、データを書き込む回路を追加した。;SCCB_ad_enableを生成する回路を追加して、アドレス、データの16ビットは下位16ビットに割り当てた。元は下位16ビットでした。アドレスが面倒になるので上位16ビットに変更です。URLhttps://marsee101.blog.fc2.com/tb.php/1658-213707deこの記事にトラックバックする(FC2ブログユーザー)プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。