您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 如何写iTxBuffer???????
本帖共有736个阅读者
发表帖子 发表投票 回复主题
如何写iTxBuffer???????
zww1989(论坛新手)
zww1989
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:165
积分:11
注册时间:2015/11/26
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
如何写iTxBuffer???????

用bf52x系列的DSP控制一个芯片  用SPORT模拟SPI 要控制的芯片的时序是这样的

我用PF11 PF12  PF13  PF14分别控制我芯片的CS、SDIO_0、SCLK、SDIO_1
这个芯片时序有两个阶段  第一阶段 是指令周期  给它发8位 最高位控制读写,剩下的控制要访问的寄存器地址
然后 第二阶段  发送所要访问寄存器的值   这个芯片的寄存器有2个字节的、3个字节的、4个字节的
那么我的*pDMAx_START_ADDR = (void *)iTxBuffer; iTxBuffer里面存放的是要发送的数据数组嘛吧?这个iTxBuffer里面是不是就写我的寄存器的值,那我的指令周期的值怎么写?
那么我的iTxBuffer怎么写,是不是第一阶段和第二阶段两个在一起放在iTxBuffer?
假如我的第一阶段分别是0x01、0x02、0x03  ,第二阶段分别是0x1111、0x222222 、0x33333333,我怎么往iTxBuffer里面写


上传的图片
  2015123113281627.png [ 46.63 KB 554×188 ] (缩略时请点击查看原图)

 


你好
等级:论坛新手 参考IP地址:*.*.*.*
2015/12/31 13:29:13
zww1989(论坛新手)
zww1989
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:165
积分:11
注册时间:2015/11/26
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
有没有人懂啊   指点指点啊

你好
等级:论坛新手 参考IP地址:*.*.*.*
2016/1/5 10:59:45
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你的这个时序图上,SDIO_0和SDIO_1数据是位交替存在的,SPORT虽然有两个数据接口,但传输方式并不是这种位交错传输,而是数据字交错传输,不知道你直接用SPORT口传输数据是否可行。

假设可行,因为你的传输字节的宽度不断的变化,8bit到32bit,若采用32bit方式传输8bit的数据,会产生很多冗余时钟,若你的设备不能接受这些冗余时钟,你在发送数据时,必须根据数据的实际宽度,不断的改变SPORT传输数据的宽度。

至于传输的数据是分两组还是放在一组,因为你的指令周期是8位的,所以建议你单独放在一组里面,至于数据,因为宽度不同,你可以在传输数据前判断数据宽度,然后配置相应的SPORT传输宽度,再使能DMA,最好做个变量记录当前DMA传输的地址,或者记录下当前传输的数组的地址,方便下次传输时,重新配置ADDR。


只要时序满足设备要求,到底是把数据放在一起传输还是分成几个部分传输都可以。前提是你的传输时序一定要满足设备要求。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2016/1/21 19:41:20
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159209 Call, 1 Queries, Processed in 0.015625 second(s),