Zedboard SPIで通信してみた -1- (未完成)
ここしばらくZedboardのPSについているSPIを使って気圧センサと
通信させようとしていますが、うまく通信ができません。
とりあえず、現状をメモ。
使用する気圧センサは秋月で売っている「MPL115A1」という気圧センサです。
このセンサはSPIとI2Cの2タイプがあります。
PICマイコンで使うためにSPIのタイプを昔買っていたのでこれを使いました。
Zedboardの方は前回メモした
「Zynq-7000 EPP Concepts, Tools, and Techniquesをやってみた」
のチュートリアルを再利用して進めました。
1.SPIを有効にする為、XPSの「I/O Peripherals」にてSPIの設定をする。
SPI1にチェックを入れ有効化。SSはデバイスが1個なのでSS0のみでOK
SPI0を有効化しなかったのはSPI0で使用できるMIOポートは
EthernetやらUSBやらSDがすでに接続されてる為。
SPI1のMIO10~MIO15はGPIOで未使用なのでこれを使用。
2.SPIクロックの設定。
Zynqタブで「I/O Peripherals」の下にある「Clock Generation」をクリック
SPIを追加してから開くとSPIのクロック設定が出来るので適当に設定。
ここで最低10MHzになっているのに注意。
最もSPIの設定レジスタにて1/2~1/256まで分周が可能。
ピッタリな値にはなかなかならないが今回は問題なし。
センサがMax 8MHzなので32MHzを8分周して4MHzで動作させる。
設定したらOKで閉じる
3.FPGAのピン設定をする。
前回のチュートリアルではやらなかったが、今回はFPGAのピン設定をやってみた。
Zedboardに接続している部品へのピン設定をしているUCFファイルがZedboardの
ドキュメント内にあるので読ませてみた。
SPIのクロック設定後XPSを閉じてPlanAheadに戻る。
Add Sourceを選択する。
Add or Create Constraintsの選択している事を確認しNext
Add Filesを選択し「zedboard_master_UCF_RevC_v2.ucf」を開いてFinish
これでUCFファイルを読み込めた。
4.FPGAのピン設定を確認する。
設定後「Run Synthesis」->「Run Implementation」->「Generate Bitstream」と進める。
Implementation時に制約のWarningが出るがとりあえずOKにしておく。
Layout -> I/O Planningと選択するとI/O設定が表示される。
PSやPLとFPGAのピンとの対応はI/O Portsというペインに表示される。
ここにMIO10~MIO15のピンが載っている。
5.気圧センサとの接続図を作成する。
Zedboardの資料にある回路図を見ながら気圧計との回路図を作成する。
ここのピンはPmodというxilinxのFPGAについているヘッダソケットです。
回路図は↓
長くなったので続きは次のページへ