連載
» 2016年07月26日 07時00分 公開

オンボードされた温湿度センサーからFPGAで値を得るMAX 10 FPGAで学ぶFPGA開発入門(12)(2/7 ページ)

[大原 雄介,MONOist]

サンプルスケッチを元にした温湿度センサーの使い方

 まずおなじみSystem Builder(Photo04)であるが、前回の設定に加えてHumidity Sensorにチェックを入れておく。これで生成されたファイルをプロジェクトディレクトリに移動してから、Quartus II(今回も15.0を利用)を起動して、プロジェクトファイルを開く(Photo05)。

photo04 Photo04:プロジェクト名はTEMP_LEDとした
photo05 Photo05:初期状態。前回の初期状態(「List 1」)に比べると、HDC1000の接続用にI2Cの信号腺(SCL/SDA)とDRDYn(Data Ready)の合計3本の信号が追加されているのが分かる

 手順としてはこの後

  • (1) QSYSを起動し、Processor、Serial JTAG、On Chip Memory、PIO(LEDR/HEX0/HEX1/KEY)を追加する。ここの手順は前回とまったく同じである(というか、同じにした)ので説明は割愛する。
photo06 Photo06:ここまでは前回と一緒。onchip_memory2_0の容量は128KBにし、また初期化オプションを外すのを忘れずに
  • (2) さらにHDC1000用に1bitのPIOを3つ追加する(Photo06)。ちなみにPIOの設定は以下のようになる。
名称 Width Direction Export名
RH_TEMP_I2C_SCL 1bit Output rh_temp_i2c_scl_pio
RH_TEMP_I2C_SDA 1bit Bidir rh_temp_i2c_sda_pio
RH_TEMP_DRDY_N 1bit Input rh_temp_i2c_drdy_n_pio

 その他の設定はデフォルトのままだ。名称はSystem Builderの生成したソースに合わせたものである。また全てのピンはexternal connectionを、上のExport名を入力して設定しておく。PIOを追加すると、またAddress Mapが変更になるので、もう一度

  • (3) QSYSでファイル名を"TEMP_LED_QSYS.qsys"として保存。その後Generate HDLでHDLコードを生成して終了。
  • (4) Quartus IIに戻り、生成されたqipファイル( synthesis/TEMP_LED_QSYS.qip )をプロジェクトに追加
  • (5) TEMP_LED.vのソースを書き換え。List 1がSystem Builderでの生成ソース、List 2が書き換え後である。これも前回同様、TEMP_LED_QSYS.vの中で定義されているModule宣言にあわせてmoduleを呼び出すだけである。この際に、先ほどQSYSの画面で設定したExportされるピンにSystem Builderの定義したそれぞれのWireの定義をあわせてやる。
photo07 Photo07:下の3つ(RHで始まるもの)が追加したピン。これはピンの接続も終わり、アドレス重複を解消した後の状態
  • (6) 変更が終ったらコンパイルし、エラーが出なければそのままProgrammerを経由して書き込んで(Photo08)、Quartus II側の作業は終了である。
photo08 Photo08:取りあえず、これが出てくると一安心

 ちなみに今回はそれほど時間にセンシティブではないということで、前回は組み込んだInterval Timerなどのタイマー系モジュールは使わない事にした。

関連キーワード

アルテラ | FPGA関連 | FPGA


Copyright © ITmedia, Inc. All Rights Reserved.