您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [原创]SPI0与AD通信用DMA接收数字信号时发生... 
本帖共有622个阅读者
发表帖子 发表投票 回复主题
[原创]SPI0与AD通信用DMA接收数字信号时发生错误,急待解决!求帮助!!!
Ling_Zero00(论坛新手)
Ling_Zero00
头衔:社区公民
帮派:无帮无派
帖数:37
金钱:436
积分:50
注册时间:2014/9/16
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[原创]SPI0与AD通信用DMA接收数字信号时发生错误,急待解决!求帮助!!!
SPI0与AD通信用DMA接收数字信号时发生错误,部分代码如下:已经初始化DMA设置位数,方向,中断
       *pDMA7_CONFIG =(*pDMA7_CONFIG | 0x0001);  //开启DMA
        *pSPI0_CTL=0x5909;//开启SPI0
        *pDMA7_START_ADDR = &buffer;    //存放起始地址
        Red_data(0x00); //向AD芯片中写控制字
        //printf("Data0 is %x\n",*pDMA7_IRQ_STATUS);
        while(!(*pSPI0_STAT & RXS)); //是否数据是否传输过来
现在的问题是,SPI0_RDBR中有转换的数据,但是DMA接收不到!这是为什么?我输出DMA状态寄存器的值为2(DMA发生错误),不知道什么原因。求指教!

ADSP
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/26 22:58:44
tianjietao(论坛新手)
tianjietao
头衔:社区公民
帮派:无帮无派
帖数:25
金钱:326
积分:36
注册时间:2012/8/13
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
没用过spi和ad通信,但我用过sport,感觉你dma只配置个startaddr不行,,

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/27 8:42:12
Ling_Zero00(论坛新手)
Ling_Zero00
头衔:社区公民
帮派:无帮无派
帖数:37
金钱:436
积分:50
注册时间:2014/9/16
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我这只是程序的一部分,还有一个初始化函数针对DMA,里面设置了DMA位数,方向,中断以及自动缓存等

ADSP
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/27 11:39:56
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你确认下DMA7是映射的是不是SPI接收数据DMA

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/1/29 22:04:52
Ling_Zero00(论坛新手)
Ling_Zero00
头衔:社区公民
帮派:无帮无派
帖数:37
金钱:436
积分:50
注册时间:2014/9/16
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
是映射的SPI0
DMA控制寄存器

我配置的是0x1007

ADSP
等级:论坛新手 参考IP地址:*.*.*.*
2015/1/30 12:32:42
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你看看你的DMA采集个数是不是太多了,如果待采集的数据没有那么多,也会报错。你可以先配置采一个看看。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/2/2 23:29:23
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159218 Call, 1 Queries, Processed in 0.062500 second(s),