rk3399 rt5640 录音调试记录

前言

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

分析步骤

1. 通过如下命令确认声卡是否注册成功
hhh
可以看出,声卡已经注册上了。
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

结语

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

对于移植 Contiki 操作系统到特定硬件平台,以下是一些基本步骤: 1. 了解目标硬件平台:首先,你需要详细了解目标硬件平台的架构、处理器类型、存储器配置以及外设等信息。这将帮助你在移植过程中进行必要的配置和适配。 2. 下载 Contiki:从 Contiki 官方网站下载最新版本的 Contiki 操作系统。Contiki 是一个开源项目,可以在其官方网站上找到相关的文档和资源。 3. 配置编译环境:根据目标硬件平台的要求,配置合适的交叉编译工具链和开发环境。这些工具可用于将 Contiki 操作系统编译成适合目标硬件平台的可执行文件。 4. 修改配置文件:Contiki 提供了一个名为 'platform' 的目录,其中包含了不同硬件平台的配置文件。你需要根据目标硬件平台的要求,修改或创建适当的配置文件。 5. 实现驱动程序:根据目标硬件平台的外设要求,在 Contiki 中实现相应的驱动程序。这可能涉及到与硬件交互的底层代码编写。 6. 适配网络协议栈:Contiki 自带了一个轻量级的网络协议栈,你需要将其适配到目标硬件平台上。这包括配置网络接口、设置网络参数以及处理网络数据包等。 7. 编译和烧录:使用之前配置好的交叉编译工具链,将 Contiki 操作系统编译为可执行文件。然后,将可执行文件烧录到目标硬件平台上进行运行和测试。 请注意,移植 Contiki 操作系统可能需要一些底层嵌入式系统和操作系统的知识。确保你对目标硬件平台和 Contiki 的要求有足够的了解,并参考 Contiki 官方文档和社区资源来帮助你进行移植过程中的各种配置和适配。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值