OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3197|回复: 8

STM32F7总线设备冲突

[复制链接]

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-8-10
在线时间
23 小时
发表于 2017-7-17 09:59:38 | 显示全部楼层 |阅读模式
1金钱
大家好:目前用STM32遇见总线冲突的问题。总线是常见的地址总线和数据总线。总线上总共挂有3个设备,分配是NAND、SDRAM、SRAM。LCD屏单独挂载在LCD引脚上。在同时开启LCD和NAND SDRAM的时候,本来应该存在NAND上的数据被改动了。只是偶尔发生。但是后果也很严重。大家有没有用过类似的东西,或者类似情况发生呢。请教大家。项目用的是7系芯片。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-7-18 02:25:16 | 显示全部楼层
你这挂的比我还多啊。。。容易产生问题哦。
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8017
金钱
8017
注册时间
2014-8-13
在线时间
1594 小时
发表于 2017-7-18 08:26:42 | 显示全部楼层
这就要看你控制总线的时序了,各个设备的控制在程序上尽量留出“死区”来,保证你操作单位的唯一。
回复

使用道具 举报

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-8-10
在线时间
23 小时
 楼主| 发表于 2017-7-18 08:52:15 | 显示全部楼层
mack13013 发表于 2017-7-18 08:26
这就要看你控制总线的时序了,各个设备的控制在程序上尽量留出“死区”来,保证你操作单位的唯一。

感觉总线上存在仲裁机制,避免操作总线冲突。控制总线时序能实现吗?如何留出死区呢?之前没遇到过,能详细说下吗,谢谢您
回复

使用道具 举报

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-8-10
在线时间
23 小时
 楼主| 发表于 2017-7-18 08:53:31 | 显示全部楼层
正点原子 发表于 2017-7-18 02:25
你这挂的比我还多啊。。。容易产生问题哦。

嗯 项目之前架构就是这样的。也没有办法。打算尝试冲裁机制试试
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8017
金钱
8017
注册时间
2014-8-13
在线时间
1594 小时
发表于 2017-7-18 10:57:02 | 显示全部楼层
ayuexuea 发表于 2017-7-18 08:52
感觉总线上存在仲裁机制,避免操作总线冲突。控制总线时序能实现吗?如何留出死区呢?之前没遇到过,能详 ...

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

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

另外,类似OC或者OD的总线(这个一般是数据总线,这里估计不适用),拉阻可以适当减小或者增大,看下有没有效果。
回复

使用道具 举报

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-8-10
在线时间
23 小时
 楼主| 发表于 2017-7-18 14:56:02 | 显示全部楼层
mack13013 发表于 2017-7-18 10:57
各个设备的CE,WR,RD之类的控制总线,在使能失效之后再程序上加一段延时,确保信号是失效了的,再不行就 ...

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

使用道具 举报

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-8-10
在线时间
23 小时
 楼主| 发表于 2017-7-18 16:28:31 | 显示全部楼层
正点原子 发表于 2017-7-18 02:25
你这挂的比我还多啊。。。容易产生问题哦。

原子 我发现只要LCD初始化打开,主函数中不发送数据,就会影响总线上NAND数据。关上LCD初始化以后,NAND数据正常,不受影响。
LCD初始化不关闭,屏蔽这个LCD指针数组ltdc_framebuf[0]=(u32*)&ltdc_lcd_framebuf;。现象是一样的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-7-19 01:48:49 | 显示全部楼层
ayuexuea 发表于 2017-7-18 16:28
原子 我发现只要LCD初始化打开,主函数中不发送数据,就会影响总线上NAND数据。关上LCD初始化以后,NAND ...

我们开发板都支持LTDC+NAND操作了。
去参考下我们代码
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 14:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表