L3接口介绍及UDA1341声卡测试

    mini2440内部集成了IIS控制单元(源码中配置了几个寄存器,使5个脚用于IIS).对外引出了五个引脚:
CDCLK : 为编解码芯片提供系统同步时钟(芯片工作时钟)
I2SSCLK: IIS控制器提供的串行时钟信号
I2SLRCK: 声道控制信号,当为低电平时是左声道,为高电平是右声道
I2SDI : 数据输入信号
I2SDO : 数据输出信号

mini2440 UDA1341硬件原理图:


外接的IIS设备的IIS5条线与soc引出的这5条线对应地连接。


UDA1341 与 soc相接的有IIS和L3接口,IIS主要用于传输数据声音,L3用于配置UDA1341寄存器的数据传输,都是串行传输。
UAD1341的IIS的5条线是12、16、17、18、19脚,分别是
CDCLK : 为编解码芯片提供系统同步时钟(UDA1341芯片工作时钟)
I2SSCLK: IIS控制器提供的串行时钟信号
I2SLRCK: 声道控制信号,当为低电平时是左声道,为高电平是右声道
I2SDI : 数据输入信号
I2SDO : 数据输出信号


L3接口有3条线:
L3MODE : L3接口模式输入引脚,0:地址模式;1:数据模式。
L3CLOCK: L3接口时钟输入引脚,1clk传1bit数据
L3DATA : L3接口数据输入输出引脚,表示地址,或者数据,由L3MODE决定是地址还是数据。

L3是一种总线,在L3总线上可以接多个具有L3接口的设备,各L3设备在L3总线上的地址,可以阅读L3设备数据
手册获得。L3总线数据格式:

    1、地址模式下传输的一个8位数据用于L3总线选中设备和选择被选中的设备的寄存器,传输的顺序是先低位数据,再高位数据。第0位和第1位表示选择设备的那个寄存器操作,剩余6位表示L3设备地址,从UDA1341手册可知数据的bit0和1的格式如下:

bit0 bit1 寄存器        寄存器作用
 0       0        DATA0  : 控制音量,低音增加,高音等声音特性
 0       1        DATA1  : 返回一些信息给麦克风
 1       0        STATUS : 复位,clk,增益控制等的控制状态
 1       1        not used

只要没有再改变地址模式下的数据,则数据模式下的数据始终是传输到上一个地址模式所定义的寄存器内。
 
    2、在传输数据模式下,STATUS是用于设置复位,系统时钟频率、数据输入模式、DC滤波等内容。DATA0分为直接寻址模式和扩展寻址模式,直接寻址模式是直接进行模式的控制,包括音量、静音等等,而扩展寻址模式是在直接寻址模式下先设置3位扩展地址,再在直接寻址模式下设置5位扩展数据。在DATA1下,可以读取到被检测峰值。
    各寄存器的数据格式含义可以阅读UDA1341芯片手册tab5-tab10.

    IIS总线和L3总线的操作,对我来说很复杂,内核已经支持了sound\soc\s3c24xx\s3c2410-uda1341.c,修改一下用起来就好了。对mini2440板子,硬件上IIS的5条线不会接错,L3总线用GPIO模拟,对照板子硬件连接图,把L3对应的GPIO修改一下即可(实际上对mini2440板子也不用修改)。

    需要修改的是:对于mini2440,硬件上麦克风的输入接在UDA1341的通道2,所以需将s3c2410-uda1341.c的1037行改为
uda1341_l3_data(EXTDATA(EXT2_MIC_GAIN(0x6)) |EXT2_MIXMODE_CH2)
(软件需要知道硬件上使用的是那个通道,以便控制)

直接参考东山老师的办法测试:
1. 确定内核里已经配置了sound\soc\s3c24xx\s3c2410-uda1341.c
-> Device Drivers
  -> Sound
    -> Advanced Linux Sound Architecture
      -> Advanced Linux Sound Architecture
        -> System on Chip audio support
        <*> I2S of the Samsung S3C24XX chips

2. make uImage
   使用新内核启动

3. ls -l /dev/dsp /dev/mixer
4. 播放:
   在WINDOWS PC里找一个wav文件,放到开发板根文件系统里
   cat Windows.wav > /dev/dsp
5. 录音:
   cat /dev/dsp > sound.bin  
   然后对着麦克风说话
   ctrl+c退出

   cat sound.bin > /dev/dsp  // 就可以听到录下的声音

参考文章:3线接口与wm8976声卡驱动点击打开链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值