guruguru123’s diary

かなり雑な作業日記です。

コマンドの追加

コマンド受付機構の改良 - guruguru123’s diaryでコマンド受付機構の改良をおこなったため、各機能ブロックを修正しながらコマンドを追加していく。

 

追加したコマンドと継続して利用するコマンドを以下に挙げる。例ではTeraTermからコマンドを送っている。コマンドは入力してEnterキーを押すと受け付ける。もしそのコマンドがない場合はまたコマンドを要求する。入力間違えした場合も以下画像のようにEnterを押して復帰させる。改行コードは送信をCRにする(CR+LFを解釈させるのが面倒であったため)。

f:id:guruguru123:20180111154653p:plain

 

srst:システムリセット

コマンドを受け付けると、RS232C通信ブロック以外の機能ブロックをリセットする。また、起動時にシステムリセットが行われる。

 

cmdl:コマンドリスト

現在使用可能なコマンド一覧をRS232Cにて出力する。

f:id:guruguru123:20180111154816p:plain

 

dds1:DDS単発駆動

コマンドを受け付けると、DDSの40bitチューニングワードを16進数10文字で要求する。10文字入力されるとそれに従ってDDSを駆動する。

f:id:guruguru123:20180111155044p:plain

 

dac1:DAC単発駆動

コマンドを受け付けると、DACの12bit出力用データを2進数12文字で要求する。12文字入力されるとそれに従ってDACを駆動する。(シミュレーションの結果も正しく、信号も確認済みだが、実機での試験がうまくいっていない。)

f:id:guruguru123:20180111155707p:plain

 

sdw1:SDRAM単発書き込み

コマンドを受け付けると書き込みアドレスと書き込むデータを要求。データは16進数で16文字の64bit。アドレス、データが入力されるとSDRAMへ書き込む。単発といってもバースト動作4でSDRAMを動かしているため実際には4つのアドレスに書き込みを行っている。

f:id:guruguru123:20180111155545p:plain

 

sdr1:SDRAM単発読み出し

コマンドを受け付けると読み出しアドレスを要求。入力後指定したアドレスのデータを読み出しRS232Cで出力。こちらも書き込みと同様4つのアドレスを読み出している。

f:id:guruguru123:20180111155556p:plain

 

adcr:ADC駆動

コマンドを受け付けると書き込み開始アドレスを要求。入力後、その時点から100MHz/4の周波数をリファレンスクロックとしてデータを100回取り込む。周波数の分周と取り込むデータの数は任意に変更できる。f:id:guruguru123:20180111155815p:plain

 

serr:SerDes経由のデータ受信

コマンドを受け付けると書き込み開始アドレスを要求。SerDes_EN信号がアクティブの間信号を受信しSDRAMへ書き込みを行う。SerDes_ENがディスエーブルされた時点で受信終了。

f:id:guruguru123:20180111171958p:plain

 

reqr:SDRAM読み出し、DDS,DAC駆動

コマンドを受け付けると読み出し開始アドレスと終了アドレスを要求。入力後、格納されたデータに従ってDDSとDACを駆動する。読み出していく間隔は目で確認するために1秒ほどにしてあるが6クロックくらいにすることもできる。

f:id:guruguru123:20180111161145p:plain