ALC5621声卡调试记录
转载请注明出处:https://blog.csdn.net/luomin5417/article/details/80731790
平台:imx6q
内核版本: linux 3.14
1. 硬件连接
2. 设备树修改
根据硬件连接关系,编辑内核设备树文件。
2.1 音频解码器配置
添加alc562x音频解码器描述,因为是挂在i2c-2下面所以定义在i2c3总线下(手册中从i2c设备0-2,设备树中i2c是从1-3)。
图2.1 解码器配置
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 录音
ALC5621声卡调试记录相关推荐
- AML8726调试记录
一:源代码下载: 1:Installing Repo # mkdir ~/bin # PATH=~/bin:$PATH # curl https://dl-ssl.google.com/dl/goog ...
- ROS上同时预览depth,IR,RGB 调试记录
ROS上同时预览depth,IR,RGB 调试记录 用rviz同时显示RGB,IR,DEPTH(验证设备:astraprosm,canglong2,deeyea) 1.编译libuvc库 cd lib ...
- ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录
ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值--bug调试记录 目录 输出结果 1.增加XGBR算法 ...
- [Deepin - Pycharm调试记录] Pyinstaller索引系统库问题
Deepin - Pycharm调试记录 - Pyinstaller索引不到系统库 现象 在Pycharm的Terminal中执行Pyinstaller指令时候遇到如下报错提示 OSError: Py ...
- RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案)
RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案) 参考文章: (1)RAISR-ma ...
- SX1278 FSK 调试记录
SX1278 FSK 调试记录 先挖个sx1278 FSK的坑慢慢填 手中有两个SX1278模组 是安信可的产品 采用主从模式 SPI访问 MCU是STM32F107 数据格式 说明收据接收的第一步就 ...
- 松下MINAS-A6伺服电机调试记录
松下MINAS-A6伺服电机调试记录 因项目需求,进行松下MINAS-A6伺服电机调试 文章目录 松下MINAS-A6伺服电机调试记录 概述 一.手册数据 二.设备使用 1.驱动器及电机连接 2.设备 ...
- Xilinx AXI Crossbar相关调试记录
Xilinx AXI Crossbar相关调试记录 本文记录在使用Xilinx AXI Crossbar IPcore现象 ** AXI Crossbar IPcore设置如下** 使用AXI Cro ...
- android pppd参数介绍,android 3G pppd 调试记录
android 3G pppd 调试记录. 1. JAVA 部分 android/development/data/etc/apns-conf_sdk.xml ---> system/e ...
最新文章
- dataframe重命名
- 百度CTO王海峰博鳌解读AI“融合创新”,算力算法数据发挥综合作用
- android studio 跳转后保留原页面数据_Intent详解以及Activity的跳转与数据传递
- QT笔记:数据库总结(三)之SQL模型类-QSqlTableModel模型
- python计算每月工资-python税后工资计算器
- Leetcode - 169. Majority Element (多数投票问题)
- 数据结构(三)--链表
- MySQL Cluster 用户权限共享 (各sql节点同步)
- PHP获取随机字符串的两种方法
- java字符替换函数示例_Java字符串替换函数replace()用法解析
- 闰年判断_小学数学,平年和闰年怎么判断,百年不闰很多人都容易忘
- mysql内部联结_关于mysql的内部联结
- C#|图像快速傅立叶变换与反变换
- 收藏 | 江苏省各地教师公务员等实际工资爆料
- 新医改背景下,民营医院如何通过绩效变革支持高质量发展?
- LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页
- ctfshow web入门 命令执行:55-57
- python 中文变量名_大疆机甲大师Python开发: 中文命名变量初尝试
- c语言错误c2059 void,c2059(c语言错误代码c2059)
- php 表示什么,php是什么意思