国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

ZYNQ系列開發(fā)板:PS控制PL產(chǎn)生需要的PWM波

電子設(shè)計(jì) ? 來源:CSDN ? 作者:ChuanjieZhu ? 2020-12-23 11:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這一節(jié)我們探索基于AXI總線的設(shè)計(jì),來看一看ZYNQ系列開發(fā)板的獨(dú)特優(yōu)勢,PS可以控制PL產(chǎn)生定制化的行為,而不需要去動硬件代碼。

這次實(shí)驗(yàn)是產(chǎn)生頻率和占空比可調(diào)的PWM(Pulse Width Modulation)信號,調(diào)用8次,產(chǎn)生8路PWM波,并用這些信號去控制8路LED燈,觀察實(shí)驗(yàn)效果。后面會做一個(gè)比較。

用的板子是zc702。

新建一個(gè)工程,命名為PWM_AXI_Lite

創(chuàng)建基于AXI總線的PWM波IP

IP設(shè)計(jì)為一個(gè)寄存器負(fù)責(zé)控制頻率,一個(gè)寄存器負(fù)責(zé)控制占空比。

創(chuàng)建一個(gè)IP核,tools-->Create and Package ,這里需要16個(gè)寄存器,創(chuàng)建方法見系列(六)、系列(七),這里命名為PWM_AXI_Lite。

在IP核工程里,新建一個(gè)PWM模塊文件,這里占空比設(shè)計(jì)的比較糙,直接就用一個(gè)計(jì)數(shù)值代替功能,后面的軟件設(shè)計(jì)要注意:

module PWM(
input clk,
input rst_n,
input cnt_set,
input fre_set,
output pwm_o
);

wire[31:0] cnt_set;
wire[31:0] fre_set;
reg [31:0] fre_cnt;

always @(posedge clk) begin
if(!rst_n) begin
fre_cnt end
else begin
if(fre_cnt fre_cnt else
fre_cnt end
end

assign pwm_o=(cnt_set>fre_cnt);
endmodule

在自動產(chǎn)生的實(shí)例文件里,添加端口信號和自定義功能,后面要約束到LED上:

o4YBAF9uHN2AXueaAAAee8p20ys261.png


o4YBAF9uHN6AdHWMAABHkC0jICo966.png

自定義的功能就是一個(gè)寄存器控制頻率(fre_set),一個(gè)寄存器控制占空比(cnt_set):
// Add user logic here
PWM PWM0(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg1),
.fre_set(slv_reg0),
.pwm_o(PWM_o[0])
);

PWM PWM1(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg3),
.fre_set(slv_reg2),
.pwm_o(PWM_o[1])
);

PWM PWM2(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg5),
.fre_set(slv_reg4),
.pwm_o(PWM_o[2])
);

PWM PWM3(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg7),
.fre_set(slv_reg6),
.pwm_o(PWM_o[3])
);
PWM PWM4(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg9),
.fre_set(slv_reg8),
.pwm_o(PWM_o[4])
);
PWM PWM5(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg11),
.fre_set(slv_reg10),
.pwm_o(PWM_o[5])
);
PWM PWM6(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg13),
.fre_set(slv_reg12),
.pwm_o(PWM_o[6])
);

PWM PWM7(
.clk(S_AXI_ACLK),
.rst_n(S_AXI_ARESETN),
.cnt_set(slv_reg15),
.fre_set(slv_reg14),
.pwm_o(PWM_o[7])
);
// User logic ends

在頂層模塊添加好用戶信號,一個(gè)是端口里的,一個(gè)是調(diào)用里的:

pIYBAF9uHN-AD0k0AAA8JBRcnPY181.png


o4YBAF9uHOGAVAiuAACfxdJpB_8885.png

修改完后重新打包好。

回到原先建的工程,將這個(gè)IP添加到IP庫里,然后Create Block Design,添加ZYNQ核和PWM_AXI_Lite,為了觀察PWM波信號,這里又添加了一個(gè)ILA(為了簡化,可以去掉),配置如下:

o4YBAF9uHOOAaN7KAAD8pWVGi9o607.png


pIYBAF9uHOWAfQOIAADMoJSJWJY039.png

連接CLK 和 FCLK_CLK0 ,連接 Probe0 和 PWM_o,最后創(chuàng)建的系統(tǒng)如下:

o4YBAF9uHOeAMBx7AAFRaOZ6LCM920.png

添加約束文件,將8路PWM波綁定到8個(gè)LED上:
#GPIO PMOD1
set_property PACKAGE_PIN E15 [get_ports {PWM_o[7]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[7]}]
set_property PACKAGE_PIN D15 [get_ports {PWM_o[6]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[6]}]
set_property PACKAGE_PIN W17 [get_ports {PWM_o[5]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[5]}]
set_property PACKAGE_PIN W5 [get_ports {PWM_o[4]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[4]}]
#GPIO PMOD2
set_property PACKAGE_PIN V7 [get_ports {PWM_o[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[3]}]
set_property PACKAGE_PIN W10 [get_ports {PWM_o[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[2]}]
set_property PACKAGE_PIN P18 [get_ports {PWM_o[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[1]}]
set_property PACKAGE_PIN P17 [get_ports {PWM_o[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {PWM_o[0]}]

一系列常規(guī)操作,生成比特流文件后,Lanch到SDK。

SDK部分設(shè)計(jì)
在BSP包里找到xparameter.h文件:

pIYBAF9uHOiAGqF6AAAhWRFEXPE751.png

在xparameters.h文件里找到系統(tǒng)為我們的PWM IP配置的地址,待會我們要操作它的寄存器:

打開xparameters.h文件,Ctrl+F:

pIYBAF9uHOqAfXYRAAE0fLqXvXs100.png

這個(gè)基地址就是我們的寄存器0的地址,然后我們將各路PWM波的頻率和占空比寫入:
#include
#include "xparameters.h"
#include "xil_io.h"
#include "sleep.h"
#include "xil_types.h"

int main(){

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+4,30000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+8,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+12,20000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+16,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+20,10000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+24,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+28,8000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+32,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+36,6000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+40,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+44,4000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+48,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+52,2000000);

Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+56,40000000);
Xil_Out32(XPAR_PWM_AXI_LITE_V1_0_0_BASEADDR+60,100000);

return 0;
}

板子上電,然后Program FPGA,debug as后,在vivado里會自動打開調(diào)試界面,觸發(fā)后能看到8路波形,在板子上我們可以看到LED燈依次閃爍!

總結(jié):

這里我們達(dá)到了led依次閃爍的效果,如同系列(六)達(dá)到的效果,但是這里有本質(zhì)的區(qū)別,系列(六)需要CPU一直發(fā)送指令控制LED燈,而這次試驗(yàn)CPU寫入頻率和占空比后,現(xiàn)在8路PWM波自己工作,是PL完成的,不需要CPU發(fā)命令,CPU可以去干其他事情。這就是SOPC的優(yōu)勢!
編輯:hfy


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

    關(guān)注

    1660

    文章

    22421

    瀏覽量

    636624
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5609

    瀏覽量

    130027
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5872

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    【ESP32-C2系列】WT99C262-SG開發(fā)板上手指南

    本指南將幫助你快速上手WT99C262-SG系列開發(fā)板,并提供該開發(fā)板的詳細(xì)信息。WT99C262-SG系列開發(fā)板是深圳市啟明云端有限公司推
    的頭像 發(fā)表于 02-25 18:25 ?142次閱讀
    【ESP32-C2<b class='flag-5'>系列</b>】WT99C262-SG<b class='flag-5'>開發(fā)板</b>上手指南

    基于ZYNQ-MZ702P開發(fā)板實(shí)現(xiàn)以太網(wǎng)通信

    本章以太網(wǎng)通信實(shí)驗(yàn)是基于ZYNQ-MZ702P開發(fā)板進(jìn)行實(shí)現(xiàn),在配置方面,需要讀者自主修改不同的地方。文章末尾有本項(xiàng)目原工程壓縮包,提供參考。
    的頭像 發(fā)表于 02-11 11:42 ?1047次閱讀
    基于<b class='flag-5'>ZYNQ</b>-MZ702P<b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)以太網(wǎng)通信

    DR1 系列評估 PS 端裸機(jī)與 FreeRTOS 開發(fā)案例手冊

    本文為創(chuàng)龍科技DR1 系列評估 PS 端裸機(jī)與 FreeRTOS 開發(fā)指南,涵蓋三大核心案例與雙開發(fā)模式實(shí)現(xiàn)。核心內(nèi)容包括 LED 定時(shí)閃
    的頭像 發(fā)表于 01-19 17:12 ?162次閱讀
    DR1 <b class='flag-5'>系列</b>評估<b class='flag-5'>板</b> <b class='flag-5'>PS</b> 端裸機(jī)與 FreeRTOS <b class='flag-5'>開發(fā)</b>案例手冊

    DR1 系列核心 PS+PL 異構(gòu)多核實(shí)戰(zhàn)案例手冊(二)

    本文為創(chuàng)龍科技DR1 系列評估 PS+PL 異構(gòu)多核開發(fā)指南,涵蓋 9 類核心案例與關(guān)鍵技術(shù)實(shí)現(xiàn)。核心內(nèi)容包括 AXI 總線與 PS_PL
    的頭像 發(fā)表于 01-14 17:23 ?4650次閱讀
    DR1 <b class='flag-5'>系列</b>核心<b class='flag-5'>板</b> <b class='flag-5'>PS+PL</b> 異構(gòu)多核實(shí)戰(zhàn)案例手冊(二)

    DR1 系列核心 PS+PL 異構(gòu)多核實(shí)戰(zhàn)案例手冊(一)

    本文為創(chuàng)龍科技DR1 系列評估 PS+PL 異構(gòu)多核開發(fā)指南,涵蓋 9 類核心案例與關(guān)鍵技術(shù)實(shí)現(xiàn)。核心內(nèi)容包括 AXI 總線與 PS_PL
    的頭像 發(fā)表于 01-14 15:37 ?175次閱讀
    DR1 <b class='flag-5'>系列</b>核心<b class='flag-5'>板</b> <b class='flag-5'>PS+PL</b> 異構(gòu)多核實(shí)戰(zhàn)案例手冊(一)

    工程師必入!288 元解鎖賽靈思開發(fā)板

    做項(xiàng)目、練技術(shù)、備賽事卻找不到高性價(jià)比開發(fā)板?合眾恒躍重磅福利——賽靈思ZYNQ系列開發(fā)板限時(shí)特惠,HZ-XC-7Z010-SP_EVM寵粉價(jià)僅需288元!
    的頭像 發(fā)表于 12-17 17:48 ?790次閱讀
    工程師必入!288 元解鎖賽靈思<b class='flag-5'>開發(fā)板</b>

    探索 Kunlun Pi | 基于匠芯創(chuàng)D13x系列開發(fā)板分享(二)

    探索 Kunlun Pi | 基于匠芯創(chuàng)D13x系列開發(fā)板分享(二)
    的頭像 發(fā)表于 11-18 18:11 ?1806次閱讀
    探索 Kunlun Pi | 基于匠芯創(chuàng)D13x<b class='flag-5'>系列</b><b class='flag-5'>開發(fā)板</b>分享(二)

    ZYNQ PSPL數(shù)據(jù)交互方式

    ZYNQ SoC 的 PS (Processing System) 和 PL (Programmable Logic) 之間的數(shù)據(jù)交互是系統(tǒng)設(shè)計(jì)的核心。
    的頭像 發(fā)表于 10-15 10:33 ?1066次閱讀
    <b class='flag-5'>ZYNQ</b> <b class='flag-5'>PS</b>與<b class='flag-5'>PL</b>數(shù)據(jù)交互方式

    fpga開發(fā)板 璞致ZYNQ 7000 系列之 PZ7035/PZ7045/PZ7100-FH 核心開發(fā)板用戶手冊

    本文介紹了Xilinx Zynq-7000系列可擴(kuò)展處理平臺及其開發(fā)板應(yīng)用。Zynq-7000采用雙核ARM Cortex-A9處理器與28nm FPGA架構(gòu),支持高性能嵌入式
    的頭像 發(fā)表于 09-15 15:54 ?6892次閱讀
    fpga<b class='flag-5'>開發(fā)板</b> 璞致<b class='flag-5'>ZYNQ</b> 7000 <b class='flag-5'>系列</b>之 PZ7035/PZ7045/PZ7100-FH 核心<b class='flag-5'>板</b>與<b class='flag-5'>開發(fā)板</b>用戶手冊

    ALINX AMD RFSoC射頻開發(fā)板選型指南

    ALINX 作為 FPGA 開發(fā)板領(lǐng)域領(lǐng)先供應(yīng)商,RFSoC 系列開發(fā)板精準(zhǔn)定位于雷達(dá)通信、5G 基站、衛(wèi)星通信、測試測量等對性能要求嚴(yán)苛的高端射頻應(yīng)用。
    的頭像 發(fā)表于 07-11 10:03 ?1655次閱讀
    ALINX AMD RFSoC射頻<b class='flag-5'>開發(fā)板</b>選型指南

    【新品】遠(yuǎn)距離圖傳數(shù)傳模塊開發(fā)板、藍(lán)牙模塊開發(fā)板、無線模塊開發(fā)板

    新品上市圖傳數(shù)傳模塊開發(fā)板藍(lán)牙模塊開發(fā)板國產(chǎn)無線模塊開發(fā)板部分型號參與送樣文末了解詳情↓↓↓EWT611-900NW20S遠(yuǎn)距離圖傳數(shù)傳模塊開發(fā)板EWT611-900NW20S是一款入
    的頭像 發(fā)表于 06-12 19:33 ?1164次閱讀
    【新品】遠(yuǎn)距離圖傳數(shù)傳模塊<b class='flag-5'>開發(fā)板</b>、藍(lán)牙模塊<b class='flag-5'>開發(fā)板</b>、無線模塊<b class='flag-5'>開發(fā)板</b>

    正點(diǎn)原子Z15I ZYNQ 開發(fā)板資料發(fā)布!板載PCIe2.0、SPFx2、MIPI CSI等接口,資料豐富!

    正點(diǎn)原子Z15I ZYNQ 開發(fā)板資料發(fā)布!板載PCIe2.0、SPFx2、MIPI CSI等接口,資料豐富! 正點(diǎn)原子Z15I ZYNQ開發(fā)板,核心
    發(fā)表于 05-30 16:59

    正點(diǎn)原子Z20 ZYNQ 開發(fā)板發(fā)布!板載FMC LPC、LVDS LCD和WIFI&amp;藍(lán)牙等接口,資料豐富!

    正點(diǎn)原子Z20 ZYNQ 開發(fā)板發(fā)布!板載FMC LPC、LVDS LCD和WIFI&amp;藍(lán)牙等接口,資料豐富! 正點(diǎn)原子新品Z20 ZYNQ開發(fā)板來啦!核心
    發(fā)表于 05-30 16:55

    LTC3886輸出PWM異常的原因?

    穩(wěn)定下來,謝謝。 圖1是OUT0的PWM,圖2是OUT1的,圖3是這部分的原理圖,參考了DC2155A開發(fā)板
    發(fā)表于 04-17 06:59

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制PWM外設(shè)

    1、案例簡介本案例是在小凌派-RK2206開發(fā)板上使用IoT庫PWM接口,進(jìn)行PWM編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),每隔5秒將PWM0~10依
    的頭像 發(fā)表于 04-09 08:59 ?2674次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b><b class='flag-5'>PWM</b>外設(shè)