玩轉Zynq連載31——[ex53] 基于Zynq PS的EMIO控制

發(fā)布時(shí)間:2019-10-12 17:44    發(fā)布者:rousong1989
玩轉Zynq連載31——[ex53] 基于Zynq PSEMIO控制
更多資料共享
騰訊微云鏈接:https://share.weiyun.com/5s6bA0s
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取碼:ld9c
1 ZynqGPIO概述
         參考文檔《玩轉Zynq-基礎篇:Zynq PSGPIO外設.pdf》。
         關(guān)于EMIOMIO,這里多啰嗦兩句。簡(jiǎn)單的理解,MIOPS系統原生的,和PL沒(méi)啥關(guān)系;但是EMIOPSPL的引腳用,所以它們就有千絲萬(wàn)縷的關(guān)系,PL的工程里面勢必要做點(diǎn)什么。MIOPS系統里面分配好對應的信號功能后,在PL的代碼里面就不需要寫(xiě)任何的邏輯,甚至引腳分配都不需要(生成的PS系統會(huì )自動(dòng)分配)。但是EMIO就要在PS的系統中引出,然后在PL頂層源碼中申明端口類(lèi)型,做引腳分配(因為EMIO用的就是PL的引腳)。
         關(guān)于MIOEMIO的關(guān)系,更形象直接的可以示意如圖所示。MIOEMIO都是PS的一部分,但是MIO可以直接連接到Zynq芯片的引腳上,和PL無(wú)關(guān);而EMIO需要通過(guò)PLIO才能連接到Zynq芯片的引腳上。EMIO的存在,其實(shí)是給用戶(hù)更大的PSGPIO擴展的靈活性,這也是FPGA+ARM獨有的架構。因此,EMIO怎么用,很有必要好好玩玩。
2 EMIOPS系統配置
         打開(kāi)ZYNQ7 Processing System的配置頁(yè)面Peripheral I/O Pins,勾選GPIO EMIO選項,查看Periperals最右側的EMIO列,對應的EMIO顯示按鈕變綠了,則表示該EMIO功能開(kāi)啟,EMIO引腳將會(huì )引出到PS系統。
         完成配置后,回到ZYNQ7系統框圖中,可以看到多了一個(gè)名為GPIO_0的接口。
         展開(kāi)GPIO_0接口,實(shí)際上有364bit的信號,分別代表inputGPIO_I)、outputGPIO_O)和inoutGPIO_T)。在實(shí)際使用中,根據我們的引腳方向,連接對應位的引腳即可。例如,GPIO_I[0]、GPIO_O[0]GPIO_T[0]實(shí)際上對應的都是一個(gè)EMIO,如果我只用這個(gè)EMIO連接一個(gè)作為outputLED,那么我在PL上只要引出GPIO_O[0]并作引腳分配就可以了。
         選中GPIO_0,右鍵單擊,彈出菜單中點(diǎn)擊Create Interface Port...,引出一個(gè)port用于PL工程的頂層連接。
         可以命名為GPIO_EMIO。
         完成GPIO_EMIO引出后如圖所示。
3 EMIOPL的使用和引腳分配
         Sources --> IP Sources中選擇Block Designs -->zstar_zynq_ps,單擊右鍵,彈出菜單中選中Generate Output Products...。
         接著(zhù)我們可以再次操作,單擊右鍵菜單的Create HDL Wrapper...選項。
         打開(kāi)后,看到PS系統的例化部分如圖所示,可以復制到我們的新建的頂層源碼中,在頂層源碼中重新設置接口映射。
         在實(shí)例zstar_ex52中,我們直接使用PS系統生成的zstar_zynq_ps_wrapper.v模塊做頂層模塊,但是這樣的方式其實(shí)對于含有PL代碼的工程來(lái)說(shuō)靈活性不夠好。我們更建議大家把這個(gè)zstar_zynq_ps_wrapper.v模塊里面例化的PS系統例化到我們自己為PL工程專(zhuān)門(mén)新建的頂層源碼中,在這個(gè)頂層源碼中,我們也可以例化其它的PL邏輯模塊。
         廢話(huà)說(shuō)了,先新建一個(gè)zstar.vVerilog模塊,然后做如下編輯。
         若要將新建的zstar.v模塊作為PL工程的頂層模塊,需要先選中zstar.v模塊,右鍵單擊選中菜單項Set as Top。
         同時(shí)需要打開(kāi)Sources --> Constraints - constrs_1下的約束文件zstar.xdc,增加led[2:0]的引腳約束。
4導出PS硬件配置和新建SDK工程
         參考文檔《玩轉Zynq-工具篇:導出PS硬件配置和新建SDK工程.pdf》。
         SDK中,新建Empty的模板工程,名稱(chēng)為GPIO_EMIO_project。
5 EMIO控制編程
         展開(kāi)新建的工程GPIO_EMIO_project,選中文件夾src,單擊右鍵,彈出菜單中選擇New --> Source File。
         新建一個(gè)名為main.cDefault C source template源文件。
         輸入EMIO控制的bit2-0引腳的程序,程序中實(shí)現EMIO0、EMIO1EMIO2循環(huán)拉高,逐次點(diǎn)亮3個(gè)LED中的1個(gè)。
4 板級調試
         Zstar板子上,設置跳線(xiàn)帽P3JTAG模式,即PIN2-3短接。
         連接好串口線(xiàn)(USB線(xiàn)連接PCUSB端口和Zstar板的UART接口)和Xilinx下載線(xiàn)(下載器連接PCUSB端口和Zstar板的JTAG插座)。使用5V電源給板子供電。
         接著(zhù)參考《玩轉Zynq-工具篇:SDK在線(xiàn)運行裸跑程序.pdf》將zstar.bit文件和GPIO_EMIO_project.elf文件燒錄到Zynq中運行起來(lái)。
         程序運行起來(lái)后,我們就可以看到Zstar板上PL側的3個(gè)LED指示燈D3、D2D1逐個(gè)閃爍起來(lái)。
騰訊微云鏈接:https://share.weiyun.com/5s6bA0s
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取碼:ld9c
本文地址:http://selenalain.com/thread-569597-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页