新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > IIS接口的FPGA实现

IIS接口的FPGA实现

作者:时间:2011-06-29来源:网络收藏
2.3 L3

本文引用地址:http://www.eepw.com.cn/article/150545.htm

  由于总线只处理声音数据,其他信号必须单独传输,所以为了控制UDA1341TS而设计了L3。在L3时,根据UDA1341TS操作模式的不同,设计了两个元件。图3中元件L3_2B_Mod用于只需传输1字节地址和1字节数据的情况,而L3_3B_Mod则用来传输1字节地址和两字节数据。

  为了便于控制,在元件ARM_Interface中专门设置了一个控制寄存器来控制L3接口的工作模式,该寄存器偏移地址为0x01100,其高4位有定义。最高位为接口允许位TRANS_EN,为‘1’时L3接口启动工作,为‘0’时停止;次高位为L3接口工作模式选择位TRANSMODE,为‘0’时选择L3_2B_Mod,为‘1’时选择L3_3B_Mod;接下来的二位用于选择寄存器。

  实际设计的元件L3_3B_Mod时序仿真图见图5。

  图5显示的是L3接口DATA0扩展地址模式时序图,共传输了3字节数据,即1个地址字节、2个数据字节。地址字节的高6位为UDA1341TS地址,低2位选择DATA0操作模式,紧接着的数据字节最高两位为‘11’选择扩展地址模式,这意味着该字节后面还要传输1字节数据。图5中的3字节分别为0x14、0xC4和0xF0,该命令将打开输入通道的自动增益控制。L3接口要求串行数据的低位在前传输,这一点与有所不同。

  实现L3_3B_Mod元件时引入了一个参考时钟REF_CLK,由一个5位计数器对该时钟信号计数,根据L3接口在3字节操作时的时钟信号图案,控制由REF_CLK生成L3CLOCK,得到L3CLOCK之后,L3接口的操作均以此时钟信号来同步。

  元件L3_2B_Mod设计及仿真结果与L3_2B_Mod类似。

  3 测试方法及结果

  在以S3C4510B为核心的嵌入式系统中,根据存储器配置情况,选择一段未用的存储空间,将实现的寄存器映射成S3C4510B在该段存储空间中的存储单元,这样就可以用C语言编程来访问这些存储单元,从而实现对UDA1341TS的控制。实际选择了S3C4510B的可重定位片选信号nRCS1作为实现的寄存器基地址选择信号,并将该片选地址定位为0x12000000,这样各寄存器的实际地址如表1。

  

  根据UDA1341TS命令列表,在Hitool For ARM support μClinux软件开发环境下,编写C语言程序,测试STATUS操作和DATA0操作功能及结果。程序运行之前需要用JTAG下载电缆将ISE开发环境下生成的bit文件下载 到FPGA芯片中,以实现要求的功能。

  经实际测试,通过FPGA实现的总线和L3接口,S3C4510B可以控制UDA1341TS芯片完成各种操作,实现STATUS操作模式和DATA0模式的各种控制功能,并可用DATA1操作模式获取音频数据重放时的峰值电平。

  编写测试程序,输出1kHz正弦信号,并控制声道、音量、静音等变化,示波器观察和耳机听到的结果正确。

  编写测试程序,读入麦克风音频信号,分时由左右声道输出,测试结果正确。

  本设计采用音频接口专用芯片UDA1341TS,并通过FPGA实现了IIS总线和L3接口,使得基于S3C4510B的嵌入式系统可以方便地扩展音频功能,实验结果正确。

  在本文工作的基础上,可以进一步发挥FPGA的灵活性。如可以利用FPGA实现DSP功能,从而提供音频DSP处理或编码解码;也可以与SoPC相结合,作为音频接口模块,为片上系统提供音频接口。


上一页 1 2 3 下一页

关键词: 实现 FPGA 接口 IIS

评论


相关推荐

技术专区

关闭