7000 芯片Linux下的SPI接口與驅(qū)動(dòng)配置
出處:維庫電子市場(chǎng)網(wǎng) 發(fā)布于:2017-03-21 09:18:17
本文將介紹如何利用Vivado和petalinux開發(fā)Zynq7000系列芯片的SPI外設(shè)接口。
開發(fā)環(huán)境:
Vivado 2015.4
Petalinux 2015.4
一、 硬件工程的搭建
1. 打開vivado開發(fā)環(huán)境,新建工程,并選擇你所使用的芯片型號(hào)(本文使用xc7z045ffg900-2這款芯片);
2. 點(diǎn)擊“CreateBlock Design”創(chuàng)建一個(gè)新的工程桌布,在其中添加IP,將ZYNQ7芯片IP添加進(jìn)來;

圖1 ZYNQ7 IP
3. 雙擊ZYNQ7芯片IP,點(diǎn)擊界面左邊的Peripheral I/O Pins對(duì)芯片的引腳進(jìn)行配置,分別點(diǎn)擊“Quad SPI Flash”、“Ethernet”、SPI0右邊的“EMIO”和“UART1”對(duì)這些外設(shè)引腳進(jìn)行使能;

圖2 外設(shè)引腳配置
4. 打開“DDRConfiguraTIon”頁面,點(diǎn)擊“DDR Controller ConfiguraTIon”,然后點(diǎn)擊下拉菜單,選擇你所使用DDR類型,本文選用MT41J256M8 HX-15E這款DDR芯片,如圖所示;

圖3 DDR配置
5. DDR配置完成后,退出ZYNQ配置界面,點(diǎn)擊ZYNQ7 IP中的SPI引腳,選擇相應(yīng)的IO端口,右鍵點(diǎn)擊并選擇Make External將引腳向外引出。

圖4 向外引出引腳
6. 所有SPI相關(guān)引腳引出后,如下圖所示,點(diǎn)擊auto connetcion將DDR與FIXED兩個(gè)引腳引出;

圖5 配置DDR和FIXED引腳
7. 引腳配置完成后,在頂層文件中對(duì)ZYNQ7這個(gè)IP進(jìn)行例化,在“source”界面欄中雙擊頂層文件,打開硬件代碼編輯器;

圖6 頂層代碼
8. 在右邊的頂層.v代碼中添加spi相關(guān)的端口和例化代碼,添加的代碼如下所示(由于本例中只使用到了spi的四個(gè)接口,因此在例化spi接口時(shí),只用到了其中的四個(gè),其它的懸空或直接輸入高低電平);

圖7 添加接口和例化代碼
9. 代碼添加完成后,對(duì)工程進(jìn)行綜合(synthesis)和布局(implementaTIon),綜合和布局通過完成后,對(duì)管腳進(jìn)行約束,點(diǎn)擊“open implementaTIon”打開布局結(jié)果,點(diǎn)擊上方的“Windows”選中“I/O Ports”,對(duì)SPI的外部接口進(jìn)行約束(根據(jù)原理圖中接口的連接,選中對(duì)應(yīng)的硬件管腳);

圖8 管腳約束
10. 管腳約束完成后,重新對(duì)工程進(jìn)行Implementation;
11. 點(diǎn)擊“GenerateBitstream”生成bit文件;
12. 點(diǎn)擊“File”—“Export”——“Export Hardware”導(dǎo)出硬件工程;
二、 硬件工程的搭建
1. 在Linux中,利用petalinux創(chuàng)建一個(gè)Zynq工程;
2. 利用petalinux-config–get-hw-description命令將剛才vivado下所生成的硬件工程.hdf文件導(dǎo)入到軟件工程中;
3. 利用petalinux-config–c kernel對(duì)內(nèi)核進(jìn)行裁剪,選中驅(qū)動(dòng)中的SPI驅(qū)動(dòng)如圖;

圖9 勾選上SPI驅(qū)動(dòng)
4. 利用petalinux-build工具編譯整個(gè)工程,然后利用petalinux-package生成BOOT.bin文件;
5. 利用硬件平臺(tái)或QEMU啟動(dòng)Linux系統(tǒng),即可在系統(tǒng)中看到spi驅(qū)動(dòng)

圖10 Linux下的SPI驅(qū)動(dòng)
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- USB-C接口全解析:協(xié)議兼容、快充原理與常見問題排查2025/12/16 9:50:42
- 簡(jiǎn)述計(jì)算機(jī)總線的分類2025/9/4 17:12:23
- 深度剖析三進(jìn)線兩母聯(lián)供電系統(tǒng)設(shè)計(jì)方案2025/9/3 10:37:39
- 匯流排是什么匯流排好還是線接好2025/8/28 17:13:00
- 安森美 USB - C 電池充電器解決方案2025/8/28 15:45:10









