17

24

20

16

23

18

25

21

19

22

Raspberry Pi 3とMAX 10間のインターフェース方法 459

●はじめに

 Raspberry PiとMAX 10(MAX10-FB基板)を組み
合わせることができるMAX10-EB基板のハードウェア
について,前章で解説しました.本章では,Raspberry 
PiとMAX 10の間の具体的なインターフェース方法
について説明します.
 さらに,Raspberry Pi側のアプリケーション・プ
ログラムの作成方法と,MAX 10側のFPGAハード
ウェア,およびMAX 10内のNios II用プログラムの
構成例についても説明します.本章の技術情報をマス
タすれば,オリジナルのシステムを構築できるように
なるでしょう.
 本章で説明するRaspberry Piとしては,Raspberry 
Pi 3 Model Bを使用することを前提としています.
その立ち上げと設定方法はAppendix 3を参照してく
ださい.なお,基本的に本章の内容はRaspberry Pi 2 
Model Bにも適用可能です.

Raspberry Pi 3とMAX 10間

のインターフェース方法

●Raspberry PiとMAX 10のインターフェー

スはSPI通信

 Raspberry PiとMAX 10の間のインターフェース
信号としては,Raspberry Piの拡張基板を組み合わ
せることも考えると,それら拡張基板類があまり使っ
ていない信号を,なるべく少ない本数だけ使うべきと
考えました.

 ここではインターフェース信号として,図1に示
す4線式SPI(Serial Peripheral Interface)通信信号だ
けを使うことにします.
 Raspberry Pi側をSPIマスタ,MAX 10側をSPI
スレーブとします.
 SPI1_CE2_Nはスレーブ選択信号(負論理),SPI1_
SCLKはSPIクロック,SPI1_MOSIはマスタ側送信
データおよびスレーブ側受信データ,SPI1_MISOは
スレーブ側送信データおよびマスタ側受信データで
す.
 MAX10-EB基板の上のはんだジャンパを使って,
図1に示す4本の信号が,Raspberry PiとMAX 10
の間で接続されるようにしてください.

●Raspberry Pi上のSPI機能モジュールは

AUX SPI0を使う

 図1に示す信号線を使用する場合,Raspberry Pi
側のSPI機能モジュールは,メインのSPI機能モ
ジュールではなく,補助(Auxiliary)周辺機能の中の
SPI機能になります.補助周辺機能の中には1組の
Mini UARTと2組のSPI(AUX SPI0とAUX SPI1)
が入っていますが,ここではAUX SPI0だけを使い
ます.
 Raspberry PiのGPIO端子上の名称としては,
AUX SPI0とAUX SPI1は,それぞれSPI1とSPI2
に対応付けられているので混同しないようにしてくだ
さい.ここで使用するRaspberry Pi上のSPIモジュー
ルは,SPI1すなわちAUX SPI0になります.

本書付属DVD-ROM関連データ

DVD-ROM格納場所

内 容

備 考

CQ-MAX10¥Projects¥
PROJ_NIOSII_RASPI

Raspberry Piと通信しながら連携動作するMAX 10のプロジェクトのひ

な形(Quartus Prime用,Nios II EDS用)

MAX 10側

CQ-MAX10¥RaspberryPi¥
CQ-MAX10.tar.gz

①  Raspberry Piのホーム・ディレクトリ下に作業用ディレクトリ/home/

pi/tempを作成し,本ファイルをその下に置いて解凍(tar xvfz CQ-

MAX10.tar.gz)する.その後,解凍してできたディレクトリのうち/

home/pi/temp/CQ-MAX10/MAX10を,/home/pi/CQ-MAX10/の下に

コピー

②  /home/pi/CQ-MAX10/MAX10が,MAX 10とのSPI通信テスト用GUI

アプリケーションのプロジェクトのひな形(Raspberry Pi上のQt Creator

用)

Raspberry Pi側(本章では,

このプログラムを作成する

具体的な手順を解説する.

本データは参考用の完成版)

22

高速SPI通信によるインターフェースと,

Qt CreatorによるGUIアプリの作成

MAX10とRaspberryPiの

連携方法