启用Duo/Duo 256的内部音频编解码器并播放wav文件

Duo/Duo 256内部音频codec是可用的,并且能够正常工作,但是官方没有默认开启,因此本帖来尝试一下如何启用内部音频codec

首先编辑dts文件
用自己喜欢的编辑器打开

vim duo-buildroot-sdk/build/boards/default/dts/cv180x/cv180x_base.dtsi

在第620行修改DAC的时钟源来启用DAC

        dac: dac@0300A000 {
                compatible = "cvitek,cv182xadac";
                reg = <0x0 0x0300A000 0x0 0x100>;
                clocks = <&i2s_mclk 0>;
                clock-names = "i2sclk";
                clk_source = <0x04130000>; /* MCLK source is I2S3 */
        };

其实buildroot里面是有dac的驱动,直接配置时钟源就可以了

编译,烧录,等待duo上电启动后,使用aplay/tinyALSA来查看系统信息。


就可以看见正常的输入输出设备了
由于Duo64M的音频输出引脚是LED,因此使用命令播放音频后能够看见LED闪烁变化,256M有独立输出引脚,经测试外接PAM8403功放可以正常播放声音

以上

2 Likes

感谢你的分享~

可以去 Github 给我们提 PR 呀

按照你的配置说明修改了dts,结果如下:

[root@milkv-duo]~# tinypcminfo
Info for card 0, device 0:

PCM out:
cannot open device '/dev/snd/pcmC0D0p'
Device does not exist.

PCM in:
      Access:   0x000009
   Format[0]:   0x000004
   Format[1]:   00000000
 Format Name:   S16_LE
   Subformat:   0x000001
        Rate:   min=8000Hz      max=48000Hz
    Channels:   min=1           max=2
 Sample bits:   min=16          max=16
 Period size:   min=64          max=32768
Period count:   min=2           max=4096

求指导为啥没有pcmout