日曜技術者のメモ

趣味でやった事のメモ書きです。

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
 f:id:ginnyu-tei:20121002203744j:plain 

 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で閉じる
f:id:ginnyu-tei:20121002205231j:plain

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というペインに表示される。
 f:id:ginnyu-tei:20121002213614g:plain
 ここにMIO10~MIO15のピンが載っている。

5.気圧センサとの接続図を作成する。
 Zedboardの資料にある回路図を見ながら気圧計との回路図を作成する。
 ここのピンはPmodというxilinxFPGAについているヘッダソケットです。
 回路図は↓
 f:id:ginnyu-tei:20121002214045g:plain
 
長くなったので続きは次のページへ