FPGA活用回路&サンプル記述集(1) ―― アナログ信号入出力回路

石谷 真

事例2.D-Aコンバータを利用してアナログ波形を生成する回路

外部回路
  • 回路図:図2-1
  • 主要部品:D-Aコンバータ
HDL記述
  • Verilog HDL記述:リスト2-1リスト2-2リスト2-3
  • 外部入力:dsw[3:0],ck,res
  • 外部出力:we,q[15:0]
  • 内部入力:図2-1
  • 内部出力:図2-1
  • パラメータ:なし
評価環境
  • Quartus II Web Edition 6.1,Cyclone
 基準となる波形や評価用波形を基板上で発生させたい場合,基板に実装したD-AコンバータをFPGAで制御することによって実現できます.

● D-Aコンバータを制御する回路

 図2-1にFPGAによるD-Aコンバータの制御回路を示します.米国Texas Instruments社の「TLV5619」は,12ビットのパラレル・インターフェースを持つD-Aコンバータです.このD-Aコンバータは電源電圧2.5V~5.5Vで動作するため,FPGAのI/Oが3.3Vの場合,直接制御可能です.

zu02_01.gif
図2-1 D-Aコンバータを制御するための回路

 FPGAに接続したロータリ・スイッチは,出力するアナログ波形の周波数を切り替えるためのものです.VREFINには3Vを入力し,D-Aコンバータの出力範囲を0~3Vとしています.
 このD-Aコンバータはディジタル・パラレル・インターフェースを持ちます.動作タイミングを図2-2に示します.CSが"L"期間中のWE-の立ち上がりエッジでD[11:0]のディジタル・データを内部へ取り込みます.そのデータを次のLDACの"L"期間でOUTのアナログ・データに反映します.今回の回路では制御を簡易にするためCSLDACは"L"で固定とし,WE?のエッジだけでデータの更新を制御しています.

zu02_02.gif
図2-2 パラレル・インターフェースの制御タイミング
CSが"L"期間中,-WEの立ち上がりでデータを取り込む.LDACの"L"で出力に反映させる.

● 波形を生成するためのデータを作る

 波形データは16ビット×2048のメモリ・データとして,FPGA内のメモリに格納したものを読み出しています.データの設定は固定とし,論理合成時にファイルから読み込む形をとっています.
 今回作成したsin波生成のためのROMデータのサンプルを表2-1に示します.値はsin波の1/2周期を2048等分する形(±1の範囲)で求めた値を,D-Aコンバータの設定範囲の0~65535に拡張しています.


0 : 32767
1 : 32868
2 : 32968
1023:65534
1024:65535
1025:65534
2046 : 32966
2047 : 32866
2048 : 32767

表2-1 ROMに内蔵するデータ

 再生時は2048のデータを2回繰り返し(前半2048はそのまま,後半2048はデータを反転する),4096回のデータ設定で1周期として再生しています.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日