guruguru123’s diary

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

RS232C通信を用いてDDSへデータの書き込み

前回はTeraTermからFPGAへコマンドを送り、wdでデータを保持、rdでデータを返した。今回はこれを使ってRS232C通信を用いてFPGAへコマンドの送信と、コマンドによってDDS用のデータの受信、DDSへのデータのドライブを行った。

DDS用の40bitデータはアスキーコードで10文字とし、これを16進数に変換して用いる。まずはじめにこの変換機構を作成した。複雑なことはせず、受信した8bitのアスキーコードをただcase文で判定し、用意しておいた40bitのレジスタに4bitずつ入れていくだけ。RS232C送信用の変換(16進数からアスキー)も作ったため記述量が多くなってしまったが、データ確認に必要なのでしょうがない。

変換機構ができたので、前に作ったDDSドライブ用のコンポーネントと組み合わせてみた。今回のコマンドは今後複数のDDSを扱うことを見越して、40bit受信をDDS1、DDSへのドライブをout1とした。

試しに手打ちでTeraTermから40bitデータを送って見たところDDSの駆動が確認できた。

今回はDCMをいれずにクロックは32MHのまま作ったが、周波数を上げて動作確認を行いたい。また、LabVIEWをインターフェースとして周波数・位相を制御するといったものができつつあるため、そちらと連携させていきたい。