您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF533 与STM32双机通信接口问题
本帖共有2928个阅读者
发表帖子 发表投票 回复主题
BF533 与STM32双机通信接口问题
szjdb(论坛新手)
szjdb
头衔:社区公民
帮派:无帮无派
帖数:43
金钱:418
积分:48
注册时间:2012/3/30
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF533 与STM32双机通信接口问题

请教大家一个问题,如下:

我的系统BF533其中一个SPORT接音频CODEC,以192K速度采样双通道音频信号,24BIT量化,经过FIR后通过某种接口传给STM32将数据通过USB上传主机。不知BF533应该用什么接口与STM32通信,SPI是不是不太合适?因为是主从结构,而我希望是双主结构,双方都可随时发起数据传输。另外一个SPORT可以吗?有没有代码例子?或者其他更好的方案?

多谢各位大侠!


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/10/23 16:26:44
szjdb(论坛新手)
szjdb
头衔:社区公民
帮派:无帮无派
帖数:43
金钱:418
积分:48
注册时间:2012/3/30
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
自己顶一下。希望版主及各位大侠不吝赐教,先谢过了。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/10/24 17:10:33
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

用另外一个SPORT吧,BF533的其他接口都不太合适,只有SPROT走线少,速度快,但要注意接口飞线不能太长。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/10/24 22:55:53
szjdb(论坛新手)
szjdb
头衔:社区公民
帮派:无帮无派
帖数:43
金钱:418
积分:48
注册时间:2012/3/30
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

多谢ANDY版主!

我的系统需求有点变化,现在需要接两个CODEC,且需要同时工作,如果每个CODEC接一个SPORT,则每个SPORT需要的带宽为=192K*24*2=9.216Mhz,两个SPORT则要18.432Mhz, 从速度上看似乎可以通过SPI将数据发给STM32,如果加上FIR等处理,这样实际可行吗?

另外,可以将两个CODEC,接同一个SPORT上且可同步工作吗?

先谢过!



这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/10/26 9:13:50
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

从数据量计算上看,方案可行,如果想实现同时收,同时发数据,必须用ingpangbuffer的机制。在采样率一直时,可以用一个SPORT接口连接两个设备进行采集数据。

另外硬件上最好保留2个IO作为备用的握手信号线


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/10/27 12:12:04
szjdb(论坛新手)
szjdb
头衔:社区公民
帮派:无帮无派
帖数:43
金钱:418
积分:48
注册时间:2012/3/30
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

多谢ANDY. 我试试看。另外,可通过EBIU接口完成与ARM的通信吗?类似BF对DM9000网口的操作?

还有,

1.  如果我在BF上跑UCOS, 包括GUI等组件,肯定需要用到SDRAM,代码也一定会溢出到FLASH, 那么怎样可以将高速的实时FIR等模块与 UCOS接口呢?

2. 我的初步想法是在192或98Khz的SPORT0中断处理函数中完成双通道69点的FIR,逐点进行,如果在UCOS中注册并管理中断,UCOS可以调度的过来吗?或者有别的办法吗?比如SPORT0为最高级中断,不受UCOS管理,通过内存共享交换数据,处理后的数据集合打包后再由UCOS通过SPORT1完成对外部ARM通信,可行吗?

3. 将所有与FIR,SPORT等实时的模块代码和变量用LDF定位到内部RAM, UCOS 和GUI等代码放在FLASH,变量放在SDRAM,是否可以满足以上速度要求?

期待您的指导,多谢!


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/10/30 17:37:33
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

EBIU接口也可以通讯,但EBIU接口数据线至少你要连接8根,加上读写控制线,地址线共地线,起码要走到15-20根以上,走线越多,数据出错的概率就更高,所以不建议你使用EBIU。

ucos我没用过,所有代码接口部分我不清楚。代码速度是否满足要求,需要看你的FIR函数的耗时,还有你自身代码的运行机制,代码的书写格式等,需要得到实际数据才能分析。如果SPORT中断等级在UCOS之上,会不会影响操作系统异常,这个需要你来评估一下。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/10/31 10:22:19
szsunyuanj(论坛新手)
szsunyuanj
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:115
积分:3
注册时间:2012/4/12
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

多谢!

因为要逐点处理,故不能将SPORT中断频率降下来,中断间隔仅10US,应该怎样安排呢?


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

如果没有操作系统的话,通常是采用timer定时器,定时10uS,进入中断后启动SPROTDMA发送,接收方始终处于接收状态,通常为了保持数据的连续接收,处理,要采用乒乓buffer机制,实现实时传输和处理。发送方每次进入定时器,就进行一次数据发送即可。



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