ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现
生活随笔
收集整理的這篇文章主要介紹了
ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上一篇文章,《Vitis ZYNQ開發秘籍》- PS 端任意控制 VGA 顯示畫面的硬件架構,已經介紹了在 Vivado 中需要調用的 IP 已經各 IP 間的連線。而在實現顯示的功能,咱們還需要對 VDMA 這個 IP 進行配置,如果沒有正確配置,VDMA 是工作不起來的。當然從圖中,也可以看出 VDMA 的配置接口 AXI_LITE 是連接在 ZYNQ IP 的。所以咱們要在 Vitis 中編寫 VDMA 的控制代碼。對于 VDMA 的控制代碼,先看看文檔(PG020)里面說的需要配置哪些寄存器。文檔里面包含了 VDMA 的 寫 和 讀 兩個通道,但咱們在本次過程中,只使用到了 讀通道,所以只需要看介紹中關于 MM2S 的信息就行了。咱們將上面文檔中關于 MM2S 通道的控制信息單獨列出來:1、將控制信息寫入通道 VDMACR 寄存器(MM2S的偏移量為0x00),如果需要的話設置啟用中斷,并設置 VDMACR.RS=1 開始AXI VDMA通道運行。2、在通道 START_ADDRESS 寄存器 1到N 中寫入一個有效的視頻幀緩沖區開始地址,其中N等于幀緩沖區 ( 對于MM2S,偏移0x5C到0x98 ) 。如果需要,設置 REG_INDEX 寄存器。3、寫一個有效的幀延遲 (僅對Genlock Slave有效)并大步走到通道FRMDLY_STRIDE 寄存器 (MM2S偏移0x58)。4、將有效的水平大小寫入通道 HSIZE 寄存器(對于 MM2S 偏移量為 0x54 )。5、將有效的垂直大小寫入通道 VSIZE 寄存器(對于MM2S偏移量為0x50) 。這將啟動傳輸視頻數據的通道。當然上面的這 5 個步驟,是啟動 VDMA 傳輸的最起碼的步驟,當然也可以有一些其他的完善步驟。對于這些寄存器更加詳細的介紹,大家也可以參考 PG020 這個文檔。咱們按照上面的步驟,代碼如下:簡單說明代碼的意思,將 VDMA 配置的幀緩存起始地址為 0x2000000,尺寸大小為 1280x720,與 720P 的像素尺寸保持一致。代碼編譯,下載后,效果如下。是的,顯示出來就這么奇葩,為什么會這樣呢?因為目前 DDR3 里面的數據,可以大部分都是一些隨機數,大家可能會想咱們現在明明沒有向 DDR3 寫入數據,但不得不承認的一個事實,你沒寫數據并不代表它里面沒數據,DDR3 在沒有寫入數據之前,就是這些隨機數。好了,咱們現在往 DDR3 寫入一些測試數據,讓它顯示類似彩條一樣的東西。運行后的顯示結果如下:現在咱們可以成功的通過 ARM 那邊直接控制 VGA 顯示的內容了,大家也可以自己更改 C 語言代碼進行其他的顯示哦。#下期預告#咱們現在已經可以在 PS 端控制 VGA顯示的內容了,咱們下一期繼續在本章的工程上做一個稍微有意思一點的東西,把一副圖片預先存在 SD 卡中,之后 ARM 讀取 SD 卡中的圖片至 DDR3,進而 VGA 顯示 DDR3 中的圖片。簡言之,VGA 顯示 SD 卡中存儲的圖片!#《Vitis ZYNQ 開發秘籍》往期精彩#【視頻】《Vitis ZYNQ開發秘籍》第二章-開始使用礦板【視頻】《Vitis ZYNQ開發秘籍》第一章-硬件資源介紹第九章:《Vitis ZYNQ開發秘籍》- PS 端任意控制 VGA 顯示畫面的硬件架構第八章:《Vitis ZYNQ開發秘籍》- 在礦板上實現 VGA 畫面顯示第七章:《Vitis ZYNQ開發秘籍》-礦板打印“Hello World!”第六章:《Vitis ZYNQ開發秘籍》-開始使用 Vitis第五章:《Vitis ZYNQ開發秘籍》- 用戶IP打包及ZYNQ IP設置第四章:《Vitis ZYNQ 開發秘籍》礦板 EABZ4205 的 PL 端晶振改造第三章:《Vitis ZYNQ開發秘籍》PL端實現流水燈(上)-使用PL端晶振第二章:《Vitis ZYNQ開發秘籍》-開始使用礦板第一章:EBAZ4205 礦板+轉接板 硬件平臺介紹前言:對于ZYNQ,我想重新寫一套教程
總結
以上是生活随笔為你收集整理的ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多特征值数据预处理_「人工智能」No.6
- 下一篇: 坚持总体国家安全观必须坚持国家利益至上以