STM32F7总线设备冲突

2019-08-16 23:06发布

大家好:目前用STM32遇见总线冲突的问题。总线是常见的地址总线和数据总线。总线上总共挂有3个设备,分配是NAND、SDRAM、SRAM。LCD屏单独挂载在LCD引脚上。在同时开启LCD和NAND SDRAM的时候,本来应该存在NAND上的数据被改动了。只是偶尔发生。但是后果也很严重。大家有没有用过类似的东西,或者类似情况发生呢。请教大家。项目用的是7系芯片。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-08-17 00:01
你这挂的比我还多啊。。。容易产生问题哦。
mack13013
2楼-- · 2019-08-17 05:11
这就要看你控制总线的时序了,各个设备的控制在程序上尽量留出“死区”来,保证你操作单位的唯一。
ayuexuea
3楼-- · 2019-08-17 09:52
 精彩回答 2  元偷偷看……
ayuexuea
4楼-- · 2019-08-17 15:31
正点原子 发表于 2017-7-18 02:25
你这挂的比我还多啊。。。容易产生问题哦。

嗯 项目之前架构就是这样的。也没有办法。打算尝试冲裁机制试试
mack13013
5楼-- · 2019-08-17 20:39
ayuexuea 发表于 2017-7-18 08:52
感觉总线上存在仲裁机制,避免操作总线冲突。控制总线时序能实现吗?如何留出死区呢?之前没遇到过,能详 ...

各个设备的CE,WR,RD之类的控制总线,在使能失效之后再程序上加一段延时,确保信号是失效了的,再不行就在电路上加拉阻,总之,想办法确保你片选的那个是你要操作的对象。

简单说就是提高控制总线速度,并且在程序上,取消片选之类的操作之后加一段延时,来确保下一对象被操作时,上一对象不再处于使能状态。

另外,类似OC或者OD的总线(这个一般是数据总线,这里估计不适用),拉阻可以适当减小或者增大,看下有没有效果。
ayuexuea
6楼-- · 2019-08-17 22:05
mack13013 发表于 2017-7-18 10:57
各个设备的CE,WR,RD之类的控制总线,在使能失效之后再程序上加一段延时,确保信号是失效了的,再不行就 ...

恩恩 谢谢您。非常感谢。用总线仲裁机制是不是更好呢。只是不知道如何实现呢。这样单纯延迟是不是会导致数据丢包呢。

一周热门 更多>