一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十一章PS端UART讀寫控制

FPGA技術(shù)專欄 ? 來(lái)源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-01-27 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原創(chuàng)聲明:

本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。

適用于板卡型號(hào):

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

vivado工程目錄為“ps_hello/vivado”

vitis工程目錄為“ps_uart/vitis”

軟件工程師工作內(nèi)容

以下為軟件工程師負(fù)責(zé)內(nèi)容。

在前面的實(shí)驗(yàn)中,大家或多或少會(huì)發(fā)現(xiàn)有打印信息的情況,主要是調(diào)用”xil_printf”或”printf”,但是通過(guò)什么打印信息呢?我們還記得打印信息之前設(shè)置了串口,是的,確實(shí)是串口,但這些函數(shù)是如何調(diào)用串口呢?其實(shí)我們可以在”xil_printf”函數(shù)定義中看到,注意outbyte函數(shù)就是調(diào)用UART打印的。

pIYBAGAKMUuAE642AABF7ek9_1k937.jpg

再進(jìn)入outbye的函數(shù),即可看到調(diào)用了PS端UART的函數(shù),得以在串口中顯示。

o4YBAGAKMUyAQy2HAAATNltDNzc995.jpg

除了打印信息之外,如果我們想用UART進(jìn)行數(shù)據(jù)傳輸呢?本章便來(lái)介紹PS端UART的讀寫控制,實(shí)驗(yàn)中,每隔1S向外發(fā)送一串字符,如果收到數(shù)據(jù),產(chǎn)生中斷,并將收到的數(shù)據(jù)再發(fā)送出去。

1.UART模塊介紹

以下是UART模塊的結(jié)構(gòu)圖,TxFIFO和RxFIFO都為64字節(jié)。

pIYBAGAKMU2AFO_lAABhvyPhSRs691.jpg

下圖為UART的四種模式

o4YBAGAKMU6AWnnUAACQwPdsNjY707.jpg

可以用remote loopback mode測(cè)試物理電路是否正常,使用API函數(shù)XUartPs_SetOperMode

pIYBAGAKMU6AMv5NAAAJmCQvXFQ422.jpg

2. Vitis程序開發(fā)

1) 本實(shí)驗(yàn)流程如下:

主程序流程:

UART初始化設(shè)置UART模式設(shè)置數(shù)據(jù)格式設(shè)置中斷發(fā)送UART數(shù)據(jù)檢查是否收到數(shù)據(jù)如果收到,發(fā)送收到的數(shù)據(jù),如果沒有,等待1秒鐘,繼續(xù)發(fā)數(shù)據(jù)

中斷程序流程:

中斷初始化設(shè)置接收FIFO trigger中斷寄存器,設(shè)置為1,即收到一個(gè)數(shù)據(jù)就中斷打開接收trigger中斷REMPTY及接收FIFO空中斷RTRIG

中斷服務(wù)程序:

判斷狀態(tài)寄存器是trigger還是empty清除相應(yīng)中斷trigger狀態(tài)讀取RxFIFO數(shù)據(jù),empty狀態(tài)將接收標(biāo)志ReceivedFlag置1

2) 在main函數(shù)中進(jìn)行模式的設(shè)置,可以直接調(diào)用函數(shù),設(shè)置為正常模式,數(shù)據(jù)格式設(shè)置為波特率115200,數(shù)據(jù)8bit,無(wú)校驗(yàn)位,1bit停止位。UartFormat定義在uart_parameter.h中。

o4YBAGAKMU-ACf61AAAOI7mukpI580.jpgpIYBAGAKMU-AMfRBAAAJEGUIcIg527.jpg

3) 中斷控制器程序初始化可參考按鍵中斷方式,用法類似。

4) 在main函數(shù)中將trigger level設(shè)置為1,打開trigger和empty中斷。

pIYBAGAKMVCAEE96AAATs4GOcr4038.jpg

5) 數(shù)據(jù)的發(fā)送和接收函數(shù)參考了UARTPS的XUartPs_Send和XUartPs_Rev函數(shù),但它們會(huì)打開某些中斷,不符合預(yù)期,因此做了修改。

o4YBAGAKMVCALvq_AAALxC_WozQ403.jpg

在接收緩存中設(shè)置了最大2000字節(jié)的緩沖,可以根據(jù)需要修改。

pIYBAGAKMVCATG_fAAAF-3VZxC8477.jpgo4YBAGAKMVGAG32pAAAJV8dExoI017.jpg

6) 在中斷服務(wù)程序中,將ReceivedBufferPtr指針地址和ReceivedByteNum加上接收到的個(gè)數(shù),如果FIFO空了,將ReceivedFlag置為1。同時(shí)向中斷狀態(tài)寄存器寫數(shù)據(jù),清除中斷。

pIYBAGAKMVGAKwE1AAAy-FTpkJI285.jpgo4YBAGAKMVKAeUWaAACJJepSgyY082.jpgUg1085 UART清除中斷

7) 在main函數(shù)中,將ReceivedFlag和ReceivedByteNum清零,ReceivedBufferPtr指針復(fù)位。

pIYBAGAKMVKAbZm2AAAQ5CKjXOg111.jpg

8) Uart發(fā)送函數(shù)中,判斷TxFIFO是否滿,否則繼續(xù)發(fā)送,直到計(jì)數(shù)達(dá)到NumBytes

o4YBAGAKMVOAGQ4YAAAt4eJnVh0967.jpg

9) Uart接收函數(shù)中,判斷接收RxFIFO是否為空,否則繼續(xù)讀數(shù)據(jù),NumBytes為需要讀取的數(shù)據(jù)個(gè)數(shù),但如果接收的FIFO空了,計(jì)數(shù)沒有達(dá)到這個(gè)值,也會(huì)結(jié)束此函數(shù)。

pIYBAGAKMVOATuVRAAA6HV2Y5bI060.jpg

10) 除了自己寫程序外,還可以從system.mss中導(dǎo)入模塊的例子,參考Xilinx提供的程序,方便學(xué)習(xí)。

o4YBAGAKMVSAKmcbAAAafnGEnYk848.jpg

3. 板上驗(yàn)證

1) 接下來(lái)下載程序

pIYBAGAKMVSAKqr_AACaz4PUyhQ089.jpg

2) 打開工程目錄下的串口調(diào)試工具

o4YBAGAKMVWAAXJSAAAGjubltm0668.jpg

3) 設(shè)置好參數(shù)如下,打開串口,即可看到打印信息。

pIYBAGAKMVWAHkT1AABOBEwiPT8185.jpg

4) 在發(fā)送區(qū)填入數(shù)據(jù),點(diǎn)擊手動(dòng)發(fā)送,即可看到接收區(qū)的數(shù)據(jù)。

o4YBAGAKMVaALpFtAABS-x55pPQ175.jpg

4. 總結(jié)

本章學(xué)習(xí)了UART的發(fā)送與接收,以及中斷的使用,希望大家能養(yǎng)成良好的習(xí)慣,多看文檔,理解原理,能對(duì)系統(tǒng)的認(rèn)識(shí)有很大提高。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618732
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1588

    瀏覽量

    79978
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1276

    瀏覽量

    103996
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    615

    瀏覽量

    48262
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    201

    瀏覽量

    24757
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    明德?lián)P視頻分享點(diǎn)撥FPGA課程--第二十一章 ?矩陣鍵盤工程

    第二十一章矩陣鍵盤工程1. 矩陣掃描模塊2. 數(shù)碼顯示模塊3. for循環(huán)的使用4. 統(tǒng)計(jì)模塊5. generate的使用6. 進(jìn)制轉(zhuǎn)換模塊7. 頂層模塊http://yunpan.cn/cjZTiDA9pY56x訪問(wèn)密碼 c359
    發(fā)表于 11-09 08:47

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制

      如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraS
    發(fā)表于 01-07 16:02

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    發(fā)表于 01-22 06:29

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    發(fā)表于 02-02 07:53

    第二十一講 組合邏輯電路中的競(jìng)爭(zhēng)冒險(xiǎn)

    第二十一講 組合邏輯電路中的競(jìng)爭(zhēng)冒險(xiǎn) 6.7.1 競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象及其產(chǎn)生的原因一、競(jìng)爭(zhēng)、冒險(xiǎn)1.理想情況2.實(shí)際情況3.競(jìng)
    發(fā)表于 03-30 16:25 ?3357次閱讀
    <b class='flag-5'>第二十一</b>講 組合邏輯電路中的競(jìng)爭(zhēng)冒險(xiǎn)

    模擬電路網(wǎng)絡(luò)課件 第二十一節(jié):場(chǎng)效應(yīng)管與BJT放大電路的比較

    模擬電路網(wǎng)絡(luò)課件 第二十一節(jié):場(chǎng)效應(yīng)管與BJT放大電路的比較 場(chǎng)效應(yīng)管放大電路與BJT放大電路的性能比較
    發(fā)表于 09-17 11:01 ?1386次閱讀
    模擬電路網(wǎng)絡(luò)課件 <b class='flag-5'>第二十一</b>節(jié):場(chǎng)效應(yīng)管與BJT放大電路的比較

    閑話Zynq UltraScale+ MPSoC(連載1)

    Zynq-7000,這款SoC功能顯得更加強(qiáng)勁:最顯著的變化是新加入了GPU和視頻編解碼器,PS的高速接口更加豐富。按照Xilinx官方的說(shuō)法,Zynq
    發(fā)表于 02-08 08:24 ?871次閱讀
    閑話<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>(連載1)

    閑話Zynq UltraScale+ MPSoC(連載5)

    作者:Hello,Panda Part3 I/O資源 和Zynq-7000相比較,Zynq UltraScale+ 增強(qiáng)了PS的IO性能;
    發(fā)表于 02-08 08:29 ?1023次閱讀
    閑話<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>(連載5)

    Zynq UltraScale+ MPSoC的發(fā)售消息

    Zynq?UltraScale+?MPSoC,現(xiàn)已開始發(fā)售。視頻向您重點(diǎn)介紹了Xilinx UltraScale +產(chǎn)品組合的第一位成員
    的頭像 發(fā)表于 11-27 06:47 ?3912次閱讀

    米爾科技Zynq UltraScale+ MPSoC技術(shù)參考手冊(cè)介紹

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多處理SoC系統(tǒng),在第一代Zynq-7000的基礎(chǔ)上做了全面升級(jí),在單
    的頭像 發(fā)表于 11-18 11:03 ?3668次閱讀
    米爾科技<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>技術(shù)參考手冊(cè)介紹

    ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介紹

    Zynq UltraScale+ MPSoC系列是Xilinx第二Zynq平臺(tái)。其亮點(diǎn)在于FPGA
    發(fā)表于 01-31 07:43 ?17次下載
    【<b class='flag-5'>ZYNQ</b> <b class='flag-5'>Ultrascale+</b> <b class='flag-5'>MPSOC</b> <b class='flag-5'>FPGA</b>教程】第<b class='flag-5'>一章</b> <b class='flag-5'>MPSoC</b>芯片介紹

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持在
    發(fā)表于 02-23 06:00 ?15次下載
    如何調(diào)試 <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b> VCU DDR <b class='flag-5'>控制</b>器?

    ZYNQ Ultrascale+ MPSoC系列FPGA芯片設(shè)計(jì)

    基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列 FPGA 芯片設(shè)計(jì),應(yīng)用于工廠自動(dòng)化、機(jī)器視覺、工業(yè)質(zhì)檢等工業(yè)領(lǐng)域
    發(fā)表于 11-02 14:35 ?1944次閱讀

    Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 11:28 ?3次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>的隔離設(shè)計(jì)示例

    Zynq UltraScale+ MPSoC數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-30 14:37 ?2次下載