工控主板EM9161实现音频输出的方法

 2009-7-2          [nemail]    
[lablebox]

        随着嵌入式技术的广泛应用,在工业控制领域有越来越多的应用需要高品质的音频输出,而EM9161作为一款高性价比的工控主板产品,在推出不到三个月的时间里,已得到广大客户的广泛认可,其中不乏对音频输出的需求。针对这一应用需求,我们在保持EM9161现有基本功能不变的前提下,在后续的EM9161产品中加入了对音频输出的驱动程序,音频输出接口信号与EM9161的若干GPIO信号复用。在出厂缺省配置下,音频输出功能是关闭的,对需要音频输出功能的客户,只需运行一次系统自带的AudioSet命令,再重启系统,音频输出的功能即打开。

        EM9161的音频接口是以I2S信号格式的数字码流信号,这些信号需接入音频解码芯片codec中,才能最终获得可驱动喇叭的模拟音频信号。EM9161的音频驱动程序是面向Atmel公司的AT73C213音频解码芯片编写的,为了控制AT73C213芯片,还需要提供SPI接口,以及上电复位信号。具体的EM9161音频接口信号与复用的GPIO对应关系如下:


GPIO信号

音频接口信号

简要说明

  GPIO2  SPI_CLK  SPI时钟,上升沿输出数据,下降沿锁存输入数据
  GPIO3  SPI_DOUT  SPI串行数据输出
  GPIO4  SPI_CSn  SPI片选控制信号,低电平有效
  GPIO5  SPI_DIN  SPI串行数据输入
  GPIO14  I2S_TX0  I2S格式音频串行输出bit码流
  GPIO0  I2S_LRFS  I2S格式数据帧同步信号
  GPIO1  I2S_BCLK  I2S格式数据串行输出bit时钟
  GPIO6  I2S_MCLK  为codec的I2S接口提供的工作时钟
  GPIO15  RSTOUTn  上电复位信号,低电平有效


 

        在不使用音频输出功能时,EM9161的GPIO功能完全保持不变,即使启动音频输出功能,没有被音频接口占用的GPIO仍然可以使用。

        为了对EM9161的音频输出功能进行快速评估,客户可选购英创公司的音频扩展模块ETA973。ETA973是一款基于AT73C213的音频解码扩展单元,其接口管脚的定义如下:


信号名称及简要描述

CN1信号名称及简要描述

PIN#

PIN#

  SPI_CLK

12

  SPI_DOUT

  SPI_CS

34

  SPI_DIN

  I2S_TX0

56

  I2S_LRFS

  I2S_BCLK

78

  I2S_MCLK

  系统保留

910

  GND

  RSTOUTn,上电复位

1112

  GND

  系统保留

1314

  系统保留

  +5V电源输入

1516

  +5V电源输入



        注意,在本文的信号命名中,都是以EM9161为参考的,如对SPI接口信号来说,SPI_DOUT是指从EM9161输出,所以应接入AT73C213的DIN管脚。在实际用ETA973进行评估时,相关信号一般从EM9161开发评估底板的CN12引出。CN12的信号顺序与ETA973的CN1的信号顺序不是一一对应的,需要制作专门的连接线。

 

        EM9161开发评估底板的CN12为20芯双排IDC插座,各信号的定义如下:


信号名称及简要描述

CN12信号名称及简要描述

PIN#

PIN#

  GPIO0,上电为输入状态

12

  GPIO1,上电为输入状态

  GPIO2,上电为输入状态

34

  GPIO3,上电为输入状态

  GPIO4,上电为输入状态

56

  GPIO5,上电为输入状态

  GPIO6,上电为输入状态

78

  GPIO7,上电为输入状态

  GPIO8,上电为输入状态

910

  GPIO9,上电为输入状态

  GPIO10,上电为输入状态

1112

  GPIO11,上电为输入状态

  GPIO12,上电为输入状态

1314

  GPIO13,上电为输入状态

  GPIO14,上电为输入状态

1516

  GPIO15,上电输出低电平

  +5V电源输出

1718

  +5V电源输出

  GND

1920

  GND



        可通过EM9161的命令AudioSet来打开或关闭音频输出功能。使用命令AudioSet的方法是启动Telnet,在Telnet窗口下运行AudioSet即可。若关闭音频功能,需要在AudioSet后面带上参数“0”,如:AudioSet 0。若打开音频功能,可不带参数,或带上参数“1”。在运行AudioSet命令后,需重启系统,设置才能有效。之后系统将始终保持当前设置,无需客户反复设置。

[lablebox]