前言

问题描述: 基于 rk3399 linux SDK,音频芯片rt5640 不能录音,分享一下笔者的调试记录。

分析步骤

1. 通过如下命令确认声卡是否注册成功

可以看出,声卡已经注册上了。
controlC0 --> 用于声卡的控制,例如通道选择,混音,麦克风的控制等
pcmC0D0c --〉 用于录音的 pcm 设备
pcmC0D0p --〉 用于播放的 pcm 设备

声卡注册上之后,就开始调试播放和录音功能。rk3399 官方手册文档是基于android 调试的,安卓上
常用的是tiny工具,就与alsa裁剪的。
linux 常用的音频ALSA 开发工具 是alsa-utils
安装即可 :dpkg -i alsa-utils_1.2.2-1kylin1rk1_arm64.deb

2. 验证一下播放

在耳机中也能听到声音,播放没啥问题,基于也说明了,音频驱动iic ,i2s的问题不大。
接下来开始验证录音

3. 验证一下录音

再用上文的aplay 播放,发现放不出声音,接下来开始分析录音问题。

3.1 先打开 地板硬件原理图,找到音频芯片部分,

如圈出来的部分,原理图上 看出重要的信息:
1.麦克风 通过 MIC_IN3P 接到了Mono(单声道),
2.与cpu通信用的是 i2s0.
3.播放接的是L_OUT,

3.2 在检查一下设备树的配置:

手上的源码里 ,图片圈出来的1 部分要改成IN3,
2 部分要改成 i2s0,
i2s 不对,板子里确能放音乐,有点不对劲,经过沟通,板子的内核是最新修改过的,已改成如下:


3.3 接下来大概率 就是音频通路的配置问题了,接着说linux 下如何配录音通路。

1.先通过 amixer contents 查看音频接口

2…在打开rt5640 的datasheet,如下图 Audio Mix Path

如上图所示:从上文原理图得知麦克风介入IN3P,在结合上图中的1. 2. 部分,通过MICBST3 接入RECMIXR器件。
可以 得出 BST3 相关的接口 numid = 33,需要打开这个开关

至此,通路第一条命令 可以得出
amixer cset numid=33 1

3.接着往下走 ,如下图 Audio Mix Path中,圈出来的红色标记3,接到到digital mixer path 部分
如下图:

同理可以得出图片4,5,6 ,7 的通路配置
amixer cset numid=41 1
amixer cset numid=42 1
amixer cset numid=49 1
amixer cset numid=23 1

接下来在设置一下录音的音量

由于我们接的是mono,所以:
amixer cset numid=18 100 100

至此 录音的通路就配置好了,由于硬件接的是Mono,所以不支持耳麦,需要找旧式的台式机耳机测试,这一点也是踩了坑才知道。

接着按上文的方法验证录音,录音功能ok

结语

如果,此时录音还有问题,就需要打印寄存器的值,量硬件波形等等方式,进一步排查。
如有不足之处欢迎您的批评指正!!

rk3399 rt5640 录音调试记录相关推荐

  1. [RK3399][Android8.1] 调试记录 --- LT9611驱动调试

    Platform: RK3399 OS: Android 8.1 现象: 使用LT9611实现MIPI TO HDMI输出功能,使用官方提供驱动后HDMI输出时有时无,并且很不稳定 问题1 1.开机H ...

  2. ROS上同时预览depth,IR,RGB 调试记录

    ROS上同时预览depth,IR,RGB 调试记录 用rviz同时显示RGB,IR,DEPTH(验证设备:astraprosm,canglong2,deeyea) 1.编译libuvc库 cd lib ...

  3. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录

    ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值--bug调试记录 目录 输出结果 1.增加XGBR算法 ...

  4. [Deepin - Pycharm调试记录] Pyinstaller索引系统库问题

    Deepin - Pycharm调试记录 - Pyinstaller索引不到系统库 现象 在Pycharm的Terminal中执行Pyinstaller指令时候遇到如下报错提示 OSError: Py ...

  5. RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案)

    RAISR-master:google图像新压缩技术RAISR的测试代码调试记录(Python实现,没接触过python的小白,内含pip install解决方案) 参考文章: (1)RAISR-ma ...

  6. SX1278 FSK 调试记录

    SX1278 FSK 调试记录 先挖个sx1278 FSK的坑慢慢填 手中有两个SX1278模组 是安信可的产品 采用主从模式 SPI访问 MCU是STM32F107 数据格式 说明收据接收的第一步就 ...

  7. 松下MINAS-A6伺服电机调试记录

    松下MINAS-A6伺服电机调试记录 因项目需求,进行松下MINAS-A6伺服电机调试 文章目录 松下MINAS-A6伺服电机调试记录 概述 一.手册数据 二.设备使用 1.驱动器及电机连接 2.设备 ...

  8. Xilinx AXI Crossbar相关调试记录

    Xilinx AXI Crossbar相关调试记录 本文记录在使用Xilinx AXI Crossbar IPcore现象 ** AXI Crossbar IPcore设置如下** 使用AXI Cro ...

  9. android pppd参数介绍,android 3G pppd 调试记录

    android 3G pppd 调试记录. 1.  JAVA 部分 android/development/data/etc/apns-conf_sdk.xml   --->  system/e ...

  10. RV1126 调试记录

    RV1126 调试记录 ######################################################################################## ...

最新文章

  1. 中国AI专利申请量占全球74%,腾讯、百度、OPPO前五
  2. JVM 常用的基本配置有哪些?
  3. Transformer详细解读与预测实例记录
  4. 理解 Angular 中的 $digest() 和 $apply()
  5. C语言课后习题(56)
  6. Android服务注册完整过程源码分析
  7. 【Linux】centos7安装bcp报错
  8. centos yum mysql-devel 5.5_CentOS 6.5通过yum安装 MySQL-5.5
  9. python numpy array最大长度_python中找出numpy array数组的最值及其索引方法
  10. shell转化bat工具_shell脚本与bat转换
  11. 国家信息安全漏洞库最新动态发布,墨云科技成为CNNVD技术支撑单位
  12. 自学FPGA第一期:初学FPGA
  13. 跨账号迁移阿里云镜像
  14. vue3 loadsh 防抖功能
  15. vue常用插件(一)
  16. win10截图软件工具
  17. 机器学习神器Scikit-Learn保姆级入门教程
  18. 7z001怎么解压在安卓手机上面_安卓手机时间怎么显示在中间 时间居中设置教程...
  19. Vue组件自调用/无限递归导航/element-ui导航封装
  20. C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印

热门文章

  1. php大马2022亲测可用,绕过waf无加密版本
  2. postgreSQL可视化工具pgAdmin3 导入表结构和数据
  3. CA证书无法与服务器连接,湖北国税常见CA登陆问题的解决办法
  4. 华为星环大数据_华为和星环大数据平台关键能力对比(附报告)
  5. 银行系统的开发精华1
  6. MAC 浏览器长截屏 滚动截屏
  7. mysql左连接on后 多个条件_数据库左右连接on后的限制条件问题
  8. 基于Matlab的无标度网络仿真
  9. GIS Experience (六):QGIS安装及使用教程
  10. 【labelme】数据标注工具