hpdell 发表于 2023-6-11 17:12:01

请教下rt1170/1176 配置sai 驱动 24bit 音频数据失败?

本帖最后由 hpdell 于 2023-6-11 17:16 编辑

请教下rt1170/1176 配置sai 驱动 24bit 音频数据失败?
wm8960 也配置为 24bit
目前表现是 可以播放 sai 24bit 数据, 就是有破音出现 .

sai 配置:

播放速度及时间都是正常的, 就是声音有破音出现





从sd 卡读取数据

               readlen=(size / 2) * 3;
               f_read(_file, audiodev->tbuf, readlen, (UINT*)&bread);

读取的 audiodev->tbuf 这个数据就丢到了 edma 去了,

lusson 发表于 2023-6-12 09:14:38

有可能:如果是WAV文件,24bit文件是没有填充成32bit的,你需要把24bit补1个字节0在最低字节提升成32bit再给到DMA

hpdell 发表于 2023-6-12 16:29:05

本帖最后由 hpdell 于 2023-6-12 16:37 编辑

lusson 发表于 2023-6-12 09:14
有可能:如果是WAV文件,24bit文件是没有填充成32bit的,你需要把24bit补1个字节0在最低字节提升成32bit再 ...
(引用自2楼)

试过了,也不行啊,结果还是一样的有破音,

吧 sai, wm8960 都配置为 32bit,

如读取 wav 原始数据 , 2声道

L :0x25, 0x36, 0x89
R:0x15, 0x7a, 0x9e

补齐后:
L :0x00, 0x25, 0x36, 0x89
R:0x00, 0x15, 0x7a, 0x9e

----------------------------------------------------------

把 sai, wm8960 配置为 16bit, 读取 24bit 的wav 数据 后转成 16bit 播放完全正常

hpdell 发表于 2023-6-12 20:29:49

终于搞定了, 原来 wm8960 有个 左对齐, 右对齐 寄存器, reg=07h, 播放 24bit 是设置为左对齐就完事了
页: [1]
查看完整版本: 请教下rt1170/1176 配置sai 驱动 24bit 音频数据失败?