请教下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 去了, 有可能:如果是WAV文件,24bit文件是没有填充成32bit的,你需要把24bit补1个字节0在最低字节提升成32bit再给到DMA 本帖最后由 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 播放完全正常 终于搞定了, 原来 wm8960 有个 左对齐, 右对齐 寄存器, reg=07h, 播放 24bit 是设置为左对齐就完事了
页:
[1]