您的位置:首页 > 其它

zynq zedboard standalone audio

2016-04-05 21:28 253 查看
本文基于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之间信号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: