オンボードされた温湿度センサーからFPGAで値を得る:MAX 10 FPGAで学ぶFPGA開発入門(12)(2/7 ページ)
まずおなじみSystem Builder(Photo04)であるが、前回の設定に加えてHumidity Sensorにチェックを入れておく。これで生成されたファイルをプロジェクトディレクトリに移動してから、Quartus II(今回も15.0を利用)を起動して、プロジェクトファイルを開く(Photo05)。
Photo04:プロジェクト名はTEMP_LEDとした
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:ここまでは前回と一緒。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:下の3つ(RHで始まるもの)が追加したピン。これはピンの接続も終わり、アドレス重複を解消した後の状態
- (6) 変更が終ったらコンパイルし、エラーが出なければそのままProgrammerを経由して書き込んで(Photo08)、Quartus II側の作業は終了である。
Photo08:取りあえず、これが出てくると一安心
ちなみに今回はそれほど時間にセンシティブではないということで、前回は組み込んだInterval Timerなどのタイマー系モジュールは使わない事にした。
Copyright © ITmedia, Inc. All Rights Reserved.