ALC5621声卡调试记录

转载请注明出处:https://blog.csdn.net/luomin5417/article/details/80731790


平台:imx6q

内核版本: linux 3.14

1.  硬件连接

图 1.1 硬件连接

2.  设备树修改

    根据硬件连接关系,编辑内核设备树文件。

2.1 音频解码器配置

    添加alc562x音频解码器描述,因为是挂在i2c-2下面所以定义在i2c3总线下(手册中从i2c设备0-2,设备树中i2c是从1-3)。


图2.1 解码器配置

2.2 声卡配置

图 2.2 声卡配置

2.3 设置音频接口i2s总线

    ssi主要负责音频数据的收发,具体的模块功能可以参考imx6q的手册,该处需要注意将cpu设置为slave模式,芯片设置为master模式,反过来设置,会导致调试时多花很多时间,因内核中fsl提供的驱动,貌似只实现了slave模式,之前在调试时在这个地方也花了很多时间


图 2.3 设置i2s总线音频接口

2.4 管脚配置

Audmux主要实现了外部设备与soc上的ssi模块的连接,设置管教时即配置audmux的连接管脚即可。


图 2-4 AUDMUX音频接口

设备树中的管脚配置


图 2-5 管脚配置

3.  驱动代码修改

3.1 ALC5621解码器驱动

    alc5621驱动编写的文件:alc5623.c和alc5623.h

3.2 声卡驱动

    声卡驱动编写的文件为:imx-alc562x.c和imx-audmux.h

4.  i2c控制接口调试

    i2c接口的调试可以通过逻辑分析仪抓取接口时序进行分析。在调试驱动时刚开始发现i2c总线没有响应,alc5621芯片控制接口没有工作,导致调试了一天,最后发现是alc5621芯片的时钟没有给。

图 4.1 i2c接口时序

5. i2s音频接口调试

i2s总线也可以通过逻辑分析仪进行接口调试分析,在调试i2s数据总线时也是发现没有数据输入和输出,主要集中要调试的地方是解决:

(1)  确定alc5621芯片和soc之间的主从关系

(2)  打开alc5621内部电源开关

完成这两方面的调试基本上是能够进行数据收发了。

6. 音频录播配置

(1)  模块加载:

insmod imx-ssi.ko

insmod imx6q-ssi.ko

insmod alc5623.ko

insmod imx-alc562x.ko

(2)  参数设置:

耳机播放:

设置声音

amixer cset numid=3,iface=MIXER,name='Headphone Playback Volume' 31

amixer cset numid=7,iface=MIXER,name='PCM Playback Volume' 31

设置通道

amixer cset numid=53,iface=MIXER,name='HP Mix DAC2HP PlaybackSwitch' on

图 6.1 通道配置

设置声道:

amixer cset numid=56,iface=MIXER,name='Left Headphone Mux' 1

amixer cset numid=55,iface=MIXER,name='Right Headphone Mux' 1


设置捕获声音:

amixer cset numid=12,iface=MIXER,name='Rec Capture Volume' 31

设置MIC1捕获声音:

amixer cset numid=10,iface=MIXER,name='Mic1 Capture Volume' 31

打开声音捕获开关:

amixer cset numid=26,iface=MIXER,name='Left Capture Mix Mic1 Capture Switch' on

amixer cset numid=17,iface=MIXER,name='Right Capture Mix Mic1Capture Switch' on

录音命令:

arecord-d 10 -f cd -t wav cap.wav

图 6.2 录音





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值