您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 技术讨论区 -> ADSP的SPORT口不配置成DMA模式可以吗?如何... 
本帖共有905个阅读者
发表帖子 发表投票 回复主题
ADSP的SPORT口不配置成DMA模式可以吗?如何使用?
奋斗的自我(论坛新手)
奋斗的自我
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:124
积分:4
注册时间:2013/6/5
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
ADSP的SPORT口不配置成DMA模式可以吗?如何使用?

我在网上看了很多例子,sport口都是用DMA口进行数据传输的。文档上面说用SPORT_TX寄存器,也应该可以收发,但是试了好多次,都不行。

谁在这方面是高手,希望得到指点。



不好意思,还有问题,求高手指点。

1、我前几天让他发送一个正弦波,输出波形十分不理想,是不是没判断FIFO是否为空的缘故?

2、SPORTx_TX不是有32位吗?我只发送24位(因为AD1836设置的是24位),是不是原来没有发送的那8位就丢失了?

3、还有一个AD1836有左右声道,SPORTx_TX发的时候是112233……的情况(也就是每个数都重复发),还是给左通道发一个,接着右通道发下一个数据呢?



「该帖子被 奋斗的自我 在 2013-06-05 11:37:40 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/6/5 9:24:38
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你只需要配置完SPORT初始化后,直接向SPORTx_TX寄存器写你需要传输的数据即可,在传输前,需通过状态寄存器判断传输FIFO是否为空。

当你将数据写入SPORTx_TX,数据会立刻发送出,如果你想用示波器测量到信号,可以用while循环一直发送数据。接收的话,需判断组状态是否SPORTx_RX FIFO有数据,有的话读SPORTx_RX即可。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/6/5 9:46:00
奋斗的自我(论坛新手)
奋斗的自我
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:124
积分:4
注册时间:2013/6/5
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

我前几天让他发送一个正弦波,输出波形十分不理想,是不是没判断FIFO是否为空的缘故?

SPORTx_TX不是有32位吗?我只发送24位(因为AD1836设置的是24位),是不是原来没有发送的那8位就丢失了?

还有一个AD1836有左右声道,SPORTx_TX发的时候是112233……的情况(也就是每个数都重复发),还是给左通道发一个,接着右通道发下一个数据呢?


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/6/5 11:34:10
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你可以加上判断,测试一下。
将高8位丢掉。
左右声道的话,通常采用IIS模式,数据存放为左右声道交替。假设有100个数据,有50个是左声道的,五十个是右声道的

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/6/5 14:39:14
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154075 Call, 1 Queries, Processed in 0.027344 second(s),