1. 概要
まずはアナログ信号をAD変換してFPGAに取り込めるようにする。ADコンバーターはMicrochip社のMCP3001を使った。諸元は下のとおり。厳密な何かをするわけではないので何でもよい。
- 逐次比較
- 1チャンネル
- 10ビット分解能
- 外部リファレンス
- SPI通信
- VDD=VREF=2.7 Vのとき、サンプルレートは最大75 ksps、クロック周波数は最大1.05 MHz
取り込んだAD変換値は、R-2R方式のDAコンバーターでDA変換して確かめる。こういう抵抗アレイがあったのでそのまま使ったが、8ビットぶんしかないためAD変換値10ビットのうち上位8ビットだけをDA変換する。
FPGAはMAX10を使う。その評価ボードはマルツオンラインにあるこれを使う(すでに販売終了)。
2. ADコンバーターMCP3001を動かすためのVHDL
下のVHDLをコンパイルしてMAX10 FPGAに書き込む。SPIマスターモジュールはDigi-Key TechForumで紹介されているこれをほぼそのまま使った。外部クロックは、評価ボードに載っている発振器(48 MHz)を使った。
ファイル一式: https://github.com/ti-nspire/VHDL_for_Quartus_Prime/tree/main/ad_converter_MCP3001_spi_ver_2