概述
本文基于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之间信号。
最后
以上就是怕黑冬瓜为你收集整理的zynq zedboard standalone audio的全部内容,希望文章能够帮你解决zynq zedboard standalone audio所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复