您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助关于bf533 开发板TLV320AIC23B i2s 24... 
本帖共有1144个阅读者
发表帖子 发表投票 回复主题
[求助关于bf533 开发板TLV320AIC23B i2s 24 dma 的问题。谢谢!
wdmfhvk(论坛新手)
wdmfhvk
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:145
积分:7
注册时间:2013/12/11
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助关于bf533 开发板TLV320AIC23B i2s 24 dma 的问题。谢谢!

在bf533板试了自带的pcm例程,及搜看了论坛i2s dma 相关咨询解答,在上修改成32bit 模式可以,但在24bit不行,希望给以帮助,谢谢!

1、wav文件是 24bit的,是不是只有转成32bit格式后(人为在后面加8个0),用i2s 32bit模式传输,但把24bit转成32bit费时间

2、我试了如下配置,不成功,不知哪里错了,希望能给个24bit i2s dma的参考,谢谢!

*pSPORT0_TCR2 = 23| TSFSE;//24bit模式

...............................................................................................................................

   ((audio_list_t *)sport_input_ptr)->des.CFG = 0x7900 | WDSIZE_32|DMAEN|DI_EN;//这里没有WDSIZE_24,只能WDSIZE_32

............................................................................................................................

   ((audio_list_t *)sport_input_ptr)->des.XMOD = 3;//3*8bit=24bit

                                        谢谢


fdsfds
等级:论坛新手 参考IP地址:*.*.*.*
2013/12/14 19:20:40
wdmfhvk(论坛新手)
wdmfhvk
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:145
积分:7
注册时间:2013/12/11
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我顶

fdsfds
等级:论坛新手 参考IP地址:*.*.*.*
2013/12/16 12:15:43
wdmfhvk(论坛新手)
wdmfhvk
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:145
积分:7
注册时间:2013/12/11
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我顶

fdsfds
等级:论坛新手 参考IP地址:*.*.*.*
2013/12/20 8:40:35
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
转到新手区了,andy看到回复一下。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2013/12/20 10:43:09
wdmfhvk(论坛新手)
wdmfhvk
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:145
积分:7
注册时间:2013/12/11
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

谢谢op转过来


fdsfds
等级:论坛新手 参考IP地址:*.*.*.*
2013/12/20 10:58:24
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
DMA传输没有24位模式,只能用32位。音频数据24位,仍是按32位格式存放的,只是高8位都为0.所以要正常播放24位的文件,必须将数据高8位填为0,浪费时间也在所难免。你可以用软件把播放的数据转为16位或者32位,再进行播放。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/12/20 11:07:00
wdmfhvk(论坛新手)
wdmfhvk
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:145
积分:7
注册时间:2013/12/11
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

((audio_list_t *)sport_input_ptr)->des.CFG = 0x7900 | WDSIZE_32|DMAEN|DI_EN;//这里WDSIZE_32,是对滴??????

((audio_list_t *)sport_input_ptr)->des.XMOD = 3;//3*8bit=24bit,这里三字节也是对滴吧???????

若不谈是不是音频,及存放位数格式,仅看上面这个dma,对吗?我试了,感觉不能完成dma操作

这个情况,我分析是:会发生重复发送最后一字节,但实际,不能进行传送,及dma操作

若24转32bit费时,dsp上有没什么好的做法

就只有一个一个慢慢搬移吗?

谢谢andy



「该帖子被 wdmfhvk 在 2013-12-20 11:44:23 编辑过」

fdsfds
等级:论坛新手 参考IP地址:*.*.*.*
2013/12/20 11:26:59
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
这样写即使能正常运行,音频输出也会有杂音。因为DMA传输的是32bit数据,其中最高位数据会保留在SPORT数据下一次发送数据时发送。举个例子,比如16bit接口传输数据,用32bitDMA搬运,DMA搬运一次数据,接口会发送两次数据。
24位转32位的话,可以用MDMA来做,代码下载地址:

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/12/20 21:33:22
wdmfhvk(论坛新手)
wdmfhvk
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:145
积分:7
注册时间:2013/12/11
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢!给力。。。

fdsfds
等级:论坛新手 参考IP地址:*.*.*.*
2013/12/23 11:51:55
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159281 Call, 1 Queries, Processed in 0.031250 second(s),