当前位置: 首页 > news >正文

T507 音频调试

一、音频系统

ASOC音频系统由Codec Platform 和 Machine组成。单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结合在一起才能完成整个设备的音频处理工作

1、音频设备

在T5平台中,最多可以存在8个音频设备,分别是:

• daudio0

• daudio1(默认用于HDMI音频播放)

• daudio2

• daudio3

• audiocodec(line out)

• DMIC

• SPDIF

• AHUB

2、硬件框图

二、硬件连接

T507 内置audiocodec模块,audiocodec仅支持Lineout输出。

R_LINE_IN_P和L_LINE_IN_P直接连到了audio的LINEOUTR和LINEOUTL

三、软件配置

1、内核配置

(1) 在内核目录下输入如下命令:

cd kernel/linux-4.9/make ARCH=arm64 menuconfig

(2)使能音频模块

Device Drivers –><*> Sound card support –><*> Advanced Linux Sound Architecture –><*> ALSA for SoC audio support –><*> Allwinner SoC Audio support –>

2、board.dts

/* 内置音频编解码器配置 */
&codec {adcdrc_cfg = <0x00>;       // 关闭ADC DRCadchpf_cfg = <0x00>;       // 关闭ADC高通滤波dacdrc_cfg = <0x00>;       // 关闭DAC DRCdachpf_cfg = <0x00>;       // 关闭DAC高通滤波fmin_gain = <0x03>;        // FM输入增益linein_gain = <0x03>;      // Linein输入增益digital_vol = <0x00>;      // 数字音量(0dB)lineout_vol = <0x1a>;      // Lineout输出音量(0x1a = 26/31)pa_ctl_level = <0x00>;     // PA控制电平pa_msleep_time = <0x78>;   // PA使能延时ramp_func_used = <0x01>;   // 启用音量渐变avcc-supply = <&reg_aldo2>; // 模拟部分供电(1.8V)status = "okay";           // 启用编解码器
};/* 内置编解码器声卡 */
&sndcodec {status = "okay";           // 启用内置编解码器声卡
};/* 关闭不必要的音频接口 */
&ahub_daudio0 {status = "disabled";       // 不需要外部DAI
};&snddaudio0 {status = "disabled";       // 禁用外部DAI声卡
};

3、驱动

sun50iw9-codec.c:目录位于sound/soc/sunxi中,负责audiocodec音频codec的部分,注册为codec,codec_dai模型。

四、测试

查看音频设备:

音频参数配置

配置如下:

播放

aplay -D hw:0,0 /usr/share/alsa/syfs-chenhuilin.wav

问题1:播放声音很小

输出混音器设置中,左声道使用了DACL和LINEINL,右声道使用了DACR和LINEINR。这意味着DAC和LINEIN的信号都被混合到了输出,但 LINEIN 没有输入信号,导致混合后信号弱。但这里我们只希望DAC输出,所以应该关闭LINEIN到输出混音器的开关。

重新配置如下:

播放正常!!!!!

http://www.xdnf.cn/news/1418455.html

相关文章:

  • Redis--Lua脚本以及在SpringBoot中的使用
  • 基于STM32设计的宠物寄养屋控制系统(阿里云IOT)_276
  • 【python+requests】告别繁琐XML解析!用xmltodict.parse像处理JSON一样轻松操作XML
  • MySQL下载及安装(Windows 11)
  • 【图论】 Graph.jl 操作汇总
  • Qt Widgets 之 QAbstractButton
  • 每周读书与学习->认识性能测试工具JMeter
  • Kafka Connect + Streams 用到极致从 CDC 到流处理的一套落地方案
  • UCIE Specification详解(十二)
  • Git中批量恢复文件到之前提交状态
  • 收藏!VSCode 开发者工具快捷键大全
  • 在Linux系统中安装Jenkins(保姆级别)
  • Java:Could not resolve all files for configuration
  • Day42 Grad-CAM与Hook函数
  • UniApp + SignalR + Asp.net Core 做一个聊天IM,含emoji 表情包
  • 【Docker】Docker容器和镜像管理常用命令
  • 【2025ICCV】Vision Transformers 最新研究成果
  • 无题250901
  • GaussDB 集群故障cm_ctl: can‘t connect to cm_server
  • .Net程序员就业现状以及学习路线图(二)
  • oracle默认事务隔离级别
  • Windows神器,按键屏蔽
  • 深入理解 HTTP 与 HTTPS:区别以及 HTTPS 加密原理
  • 【 VPX638】基于KU115 FPGA+C6678 DSP的6U VPX双FMC接口通用信号处理平台
  • 配送算法19 Two Fast Heuristics for Online Order Dispatching
  • Objective-C 的坚毅与传承:在Swift时代下的不可替代性优雅草卓伊凡
  • Java面试宝典:Redis高并发高可用(主从复制、哨兵)
  • 【算法基础】链表
  • PowerPoint和WPS演示如何在放映PPT时用鼠标划重点
  • 趣味学RUST基础篇(String)