Linux音频调试示例
Posted 2023-04-01 xxccry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux音频调试示例相关的知识,希望对你有一定的参考价值。
Linux音频调试示例
- 硬件设计
- 设备树
- 在i2c节点添加设备
- 使能i2s总线
- 添加dai_link
- 修改pinmux
- 驱动
- code驱动
- platform驱动
- machine驱动
- 激活音频流
- 播放
- 录音
- 问题定位
- 声卡未识别
- 录音/播放失败
- 检查codec寄存器值
- 检查音频流的trace
硬件设计
cpu | codec | peripheral interface |
---|---|---|
nvidia-jetson | max9867 | line-in×1, hp×1 |
codec与cpu之间通过i2c读写寄存器,i2s传输音频信号(i2s总线简介)。
cpu作为主设备,codec作为从设备,cpu提供主时钟(aud_mclk)。
codec连接1路line-in,1路headphone。
设备树
因为cpu是nvidia jetson系列,所以基于Nvidia官方释放的“L4T Sources”(Jetson下载中心)修改。
在i2c节点添加设备
/
i2c@c250000 // 硬件连通的i2c通道
status = "okay";
max9867: codec@18
compatible = "maxim,max9867"; // 与官方驱动匹配
reg = <0x18>; // i2c地址
;
;
;
使能i2s总线
// 在tegraxx_soc_audio.dtsi中查找
/
aconnect@2a41000
ahub
i2s@2901300 // 硬件连通的i2s通道
status = "okay";
;
;
;
;
添加dai_link
/
sound
status = "okay";
compatible = "nvidia,tegra-audio-t186ref-mobile"; // 修改,与rt565x解绑
nvidia,model = "tegra-snd-t19x-mobile"; // 修改,与rt565x解绑
nvidia,audio-routing = // 需要与codec驱动匹配,从右到左,代表数据流向
// x是前缀,与dai-link的name-prefix匹配
"x LINE_IN", "x Linein",
"x Headphone", "x HPOUT"
nvidia,dai-link-