ARM DIY(六)音频调试

前言

今天,调试一下音频

硬件焊接

硬件部分核心是 LM4871 音频功放芯片

对于 SOC 来讲很简单,就一个引脚 HPOUTL(单声道);对于扬声器来讲也很简单,就两个引脚,插上就可以了。

另外一个关键点是电容和电阻要焊到位,有没有噪音,音质好坏,全屏电容电阻打下手。

设备树

arch/arm/boot/dts/sun8i-v3s.dtsi

c 复制代码
        dma: dma-controller@01c02000 {
            compatible = "allwinner,sun8i-v3s-dma";
            reg = <0x01c02000 0x1000>;
            interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&ccu CLK_BUS_DMA>;
            resets = <&ccu RST_BUS_DMA>;
            #dma-cells = <1>;
        };


        codec_analog: codec-analog@01c23000 {
            compatible = "allwinner,sun8i-v3s-codec-analog";
            reg = <0x01c23000 0x4>;
        };


        codec: codec@01c22c00 {
            #sound-dai-cells = <0>;
            compatible = "allwinner,sun8i-v3s-codec";
            reg = <0x01c22c00 0x400>;
            interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
            clock-names = "apb", "codec";
            resets = <&ccu RST_BUS_CODEC>;
            dmas = <&dma 15>, <&dma 15>;
            dma-names = "rx", "tx";
            allwinner,codec-analog-controls = <&codec_analog>;
            status = "disabled";
        };

arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dts

c 复制代码
&codec {
    allwinner,audio-routing =
        "Headphone", "HP",
        "Headphone", "HPCOM",
        "MIC1", "Mic",
        "Mic",  "HBIAS";
    status = "okay";
};

驱动

使能内核编译选项

bash 复制代码
> Device Drivers > Sound card support > Advanced Linux Sound Architecture > ALSA for SoC audio support > Allwinner SoC Audio support
<*> Allwinner sun8i Codec Analog Controls Support

应用程序

参照《v3S驱动音频》移植 alsa-lib 和 alsa-utils

测试

1、查看设备信息

bash 复制代码
# ls /dev/snd/
controlC0  pcmC0D0c   pcmC0D0p   timer
#
# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Codec [V3s Audio Codec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
# 

设备驱动正常

2、取消静音

bash 复制代码
# ./amixer -c 0 sset 'Headphone',0 100% unmute

3、调节音量

4、播放音乐

bash 复制代码
# aplay dlj-yldbwdx.wav 
Playing WAVE 'dlj-yldbwdx.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

扬声器播放音乐

至此,音频调试 OK

相关推荐
华清远见IT开放实验室7 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
沐禾安信10 小时前
AVI 视频打不开?2026 四款转 MP4 工具封神
音视频·电脑录屏
兵叔物联12 小时前
基于FFmpeg的短视频自动剪辑工具
ffmpeg·音视频
AORUO奥偌12 小时前
从“拼凑”到“集成”:音视频系统如何重塑弱电智能化建设逻辑
音视频·公共广播系统·音视频系统·多媒体会议与ip广播系统·多媒体会议系统
执迷不悟82312 小时前
ARM--按键/中断
arm开发
禹亮科技13 小时前
大型国企会议室音视频集成实战:3间120㎡空间Poly G7500+LED大屏+讯飞多语言会议系统落地方案
音视频·视频会议系统集成·上海禹亮科技·讯飞听见多语言会议系统·poly g7500
维基框架13 小时前
汽车座舱开发上云 Google的Arm实例解决了什么实际问题
arm开发·人工智能·汽车
音视频牛哥15 小时前
SmartMediaKit macOS版RTSP/RTMP低延迟播放器:技术架构、核心能力与应用实践
音视频·低延迟rtsp播放器·macos直播播放器·macos rtsp播放器·macos rtmp播放器·rtsp播放器mac版·rtmp播放器mac版
潜创微科技17 小时前
沁恒CH9339:USB3.0超高速对拷,两台电脑一根线共享一切
音视频
Cxiaomu17 小时前
从 TRTC Demo 到独立音视频服务:React + TRTC Web SDK 服务化实践
前端·react.js·音视频