我是靠谱客的博主 怕黑冬瓜,最近开发中收集的这篇文章主要介绍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之间信号。

最后

以上就是怕黑冬瓜为你收集整理的zynq zedboard standalone audio的全部内容,希望文章能够帮你解决zynq zedboard standalone audio所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部