精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-01-27 09:25 ? 次閱讀

原創聲明:

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

適用于板卡型號:

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

vivado工程目錄為“ps_hello/vivado”

vitis工程目錄為“ps_uart/vitis”

軟件工程師工作內容

以下為軟件工程師負責內容。

在前面的實驗中,大家或多或少會發現有打印信息的情況,主要是調用”xil_printf”或”printf”,但是通過什么打印信息呢?我們還記得打印信息之前設置了串口,是的,確實是串口,但這些函數是如何調用串口呢?其實我們可以在”xil_printf”函數定義中看到,注意outbyte函數就是調用UART打印的。

pIYBAGAKMUuAE642AABF7ek9_1k937.jpg

再進入outbye的函數,即可看到調用了PS端UART的函數,得以在串口中顯示。

o4YBAGAKMUyAQy2HAAATNltDNzc995.jpg

除了打印信息之外,如果我們想用UART進行數據傳輸呢?本章便來介紹PS端UART的讀寫控制,實驗中,每隔1S向外發送一串字符,如果收到數據,產生中斷,并將收到的數據再發送出去。

1.UART模塊介紹

以下是UART模塊的結構圖,TxFIFO和RxFIFO都為64字節。

pIYBAGAKMU2AFO_lAABhvyPhSRs691.jpg

下圖為UART的四種模式

o4YBAGAKMU6AWnnUAACQwPdsNjY707.jpg

可以用remote loopback mode測試物理電路是否正常,使用API函數XUartPs_SetOperMode

pIYBAGAKMU6AMv5NAAAJmCQvXFQ422.jpg

2. Vitis程序開發

1) 本實驗流程如下:

主程序流程:

UART初始化設置UART模式設置數據格式設置中斷發送UART數據檢查是否收到數據如果收到,發送收到的數據,如果沒有,等待1秒鐘,繼續發數據

中斷程序流程:

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

中斷服務程序:

判斷狀態寄存器是trigger還是empty清除相應中斷trigger狀態讀取RxFIFO數據,empty狀態將接收標志ReceivedFlag置1

2) 在main函數中進行模式的設置,可以直接調用函數,設置為正常模式,數據格式設置為波特率115200,數據8bit,無校驗位,1bit停止位。UartFormat定義在uart_parameter.h中。

o4YBAGAKMU-ACf61AAAOI7mukpI580.jpgpIYBAGAKMU-AMfRBAAAJEGUIcIg527.jpg

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

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

pIYBAGAKMVCAEE96AAATs4GOcr4038.jpg

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

o4YBAGAKMVCALvq_AAALxC_WozQ403.jpg

在接收緩存中設置了最大2000字節的緩沖,可以根據需要修改。

pIYBAGAKMVCATG_fAAAF-3VZxC8477.jpgo4YBAGAKMVGAG32pAAAJV8dExoI017.jpg

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

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

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

pIYBAGAKMVKAbZm2AAAQ5CKjXOg111.jpg

8) Uart發送函數中,判斷TxFIFO是否滿,否則繼續發送,直到計數達到NumBytes

o4YBAGAKMVOAGQ4YAAAt4eJnVh0967.jpg

9) Uart接收函數中,判斷接收RxFIFO是否為空,否則繼續讀數據,NumBytes為需要讀取的數據個數,但如果接收的FIFO空了,計數沒有達到這個值,也會結束此函數。

pIYBAGAKMVOATuVRAAA6HV2Y5bI060.jpg

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

o4YBAGAKMVSAKmcbAAAafnGEnYk848.jpg

3. 板上驗證

1) 接下來下載程序

pIYBAGAKMVSAKqr_AACaz4PUyhQ089.jpg

2) 打開工程目錄下的串口調試工具

o4YBAGAKMVWAAXJSAAAGjubltm0668.jpg

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

pIYBAGAKMVWAHkT1AABOBEwiPT8185.jpg

4) 在發送區填入數據,點擊手動發送,即可看到接收區的數據。

o4YBAGAKMVaALpFtAABS-x55pPQ175.jpg

4. 總結

本章學習了UART的發送與接收,以及中斷的使用,希望大家能養成良好的習慣,多看文檔,理解原理,能對系統的認識有很大提高。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21669

    瀏覽量

    601872
  • 串口
    +關注

    關注

    14

    文章

    1543

    瀏覽量

    76198
  • uart
    +關注

    關注

    22

    文章

    1227

    瀏覽量

    101177
  • Zynq
    +關注

    關注

    9

    文章

    608

    瀏覽量

    47128
  • MPSoC
    +關注

    關注

    0

    文章

    198

    瀏覽量

    24252
收藏 人收藏

    評論

    相關推薦

    明德揚視頻分享點撥FPGA課程--第二十一章 ?矩陣鍵盤工程

    第二十一章矩陣鍵盤工程1. 矩陣掃描模塊2. 數碼顯示模塊3. for循環的使用4. 統計模塊5. generate的使用6. 進制轉換模塊7. 頂層模塊http://yunpan.cn/cjZTiDA9pY56x訪問密碼 c359
    發表于 11-09 08:47

    如何調試Zynq UltraScale+ MPSoC VCU DDR控制

      如何調試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraS
    發表于 01-07 16:02

    如何調試Zynq UltraScale+ MPSoC VCU DDR控制

    如何調試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    發表于 01-22 06:29

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    發表于 02-02 07:53

    第二十一講 組合邏輯電路中的競爭冒險

    第二十一講 組合邏輯電路中的競爭冒險 6.7.1 競爭冒險現象及其產生的原因一、競爭、冒險1.理想情況2.實際情況3.競
    發表于 03-30 16:25 ?3054次閱讀
    <b class='flag-5'>第二十一</b>講 組合邏輯電路中的競爭冒險

    模擬電路網絡課件 第二十一節:場效應管與BJT放大電路的比較

    模擬電路網絡課件 第二十一節:場效應管與BJT放大電路的比較 場效應管放大電路與BJT放大電路的性能比較
    發表于 09-17 11:01 ?1243次閱讀
    模擬電路網絡課件 <b class='flag-5'>第二十一</b>節:場效應管與BJT放大電路的比較

    閑話Zynq UltraScale+ MPSoC(連載1)

    Zynq-7000,這款SoC功能顯得更加強勁:最顯著的變化是新加入了GPU和視頻編解碼器,PS的高速接口更加豐富。按照Xilinx官方的說法,Zynq
    發表于 02-08 08:24 ?726次閱讀
    閑話<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+ 增強了PS的IO性能;
    發表于 02-08 08:29 ?702次閱讀
    閑話<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>(連載5)

    Zynq UltraScale+ MPSoC的發售消息

    Zynq?UltraScale+?MPSoC,現已開始發售。視頻向您重點介紹了Xilinx UltraScale +產品組合的第一位成員
    的頭像 發表于 11-27 06:47 ?3573次閱讀

    米爾科技Zynq UltraScale+ MPSoC技術參考手冊介紹

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多處理SoC系統,在第一代Zynq-7000的基礎上做了全面升級,在單
    的頭像 發表于 11-18 11:03 ?3136次閱讀
    米爾科技<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>技術參考手冊介紹

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

    Zynq UltraScale+ MPSoC系列是Xilinx第二Zynq平臺。其亮點在于FPGA
    發表于 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>芯片介紹

    如何調試 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持在
    發表于 02-23 06:00 ?15次下載
    如何調試 <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底板外設資源清單分享

    米爾電子推出的國內首款zynq ultrascale+ mpsoc平臺核心板(及開發板):MYC-CZU3EG吸引了人工智能、工業控制、嵌入式視覺、ADAS、算法加速、云計算、有線/無
    發表于 01-07 15:20 ?3次下載
    米爾電子<b class='flag-5'>zynq</b> <b class='flag-5'>ultrascale+</b> <b class='flag-5'>mpsoc</b>底板外設資源清單分享

    ZYNQ Ultrascale+ MPSoC系列FPGA芯片設計

    基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列 FPGA 芯片設計,應用于工廠自動化、機器視覺、工業質檢等工業領域
    發表于 11-02 14:35 ?1555次閱讀

    Zynq UltraScale+ MPSoC的隔離設計示例

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