zynq zedboard standalone audio

本文基于zedboard改进版本,编写了裸机(standalone)的audio控制程序,实现了audio的控制。

采用的功放芯片是ADAU1761,zynq型号是020,以下是原理图的连接。



其和zynq的连接端口原理图如下:


在创建vivado工程时注意板子按如下选择

创建如下系统框图:

这里需要注意的是,有两个自己创建的IP,一个是用于IIS接口的,一个是创建了一个nco,nco创建使用了HLS,从图中的IP图就可以看出这一点。

按照设计流程,export HW, 然后load SDK,创建工程,软件编写软件。


这里说一下我遇到的两个问题。

1.FCLK_CLK1的10MHz时钟始终出不来,原因也未查明,有机会在zedboard上试试相同的程序看看能否出来,哪位有zedboard的愿意帮忙的请联系我,帮我验证一下是否是板子设计原因导致的,遇到类似问题的也望不吝赐教。

2.就是下载bit流的configure,FPGA和SDK程序如果分别在vivado和SDK开发环境下载,则时钟极有可能出不来,下图附上下载设置。

默认reset system和Program FPGA是没有选上的。(SDSOC开发环境上是这样的。)

附上zynq时钟控制法:

PL fabric clock控制方法
1.设置IO_PLL_CTRL[PLL_FDIV]值以及PLL的寄存器IO_PLL_CFG[LOCK_CNT, PLL_CP, PLL_RES]值
2.将PLL强制进入bypass模式,通过向IO_PLL_CTRL [PLL_BYPASS_FORCE, 4]写入1来实现。
3.先向IO_PLL_CTRL [PLL_RESET, 0]写入1使能复位,然后写入1取消复位。
4.通过读取PLL_STATUS [IO_PLL_LOCK, 2]确认PLL锁相成功
5.向to IO_PLL_CTRL [4]写入0,退出bypass模式。

PLL Frequency Control Settings
P699

PS-PL voltage level shifter enables
在ps和pl之间传输的信号都要经过voltage boundary。
1.上电PL,slcr.LVL_SHFTR_EN应该等于0.
2.使能PS-PL的电平转换寄存器,向slcr.LVL_SHFTR_EN写入0x0A。
3.编程PL
4.等待PL被编程,等待devcfg.INT_STS [PCFG_DONE_INT]等于1,即PL部分编程完毕。
5.使能PL-PS的电平转换寄存器,向slcr.LVL_SHFTR_EN写入0x0F。
6.使用PS和PL之间信号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shichaog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值