硬汉嵌入式论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: eric2013
收起左侧

【简易教程】关于采用F429的FMC总线实现IO扩展和采用32位总线方式时译码器的地址计

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
 楼主| 发表于 2018-12-10 01:15:31 | 显示全部楼层
云琴箫龙 发表于 2018-12-8 17:38
最近想用FMC扩展IO口,再次翻看这个帖子的时候又产生了一点儿疑问
如果用FMC_NE2_B直接接四片574的片选,F ...

不行,OE端是高电平的话,输出是高阻态。
回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2018-12-10 13:40:42 | 显示全部楼层
eric2013 发表于 2018-12-10 01:15
不行,OE端是高电平的话,输出是高阻态。

对诶,忽略了这点儿了,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
 楼主| 发表于 2018-12-11 10:32:57 | 显示全部楼层
云琴箫龙 发表于 2018-12-10 13:40
对诶,忽略了这点儿了,谢谢!



后面有好的想法了,我们再交流
回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2018-12-11 22:14:31 | 显示全部楼层
本帖最后由 云琴箫龙 于 2018-12-11 22:20 编辑
eric2013 发表于 2018-12-11 10:32
后面有好的想法了,我们再交流

刚做的用FMC总线驱动多个输入输出的方案,请硬汉哥赐教。CPU和SDRAM通过FMC直接相连的,扩展的输入输出口由于走线太长,所以总线由245驱动。 总线驱动方案.jpg

C:\Users\Administrator\Desktop\总线驱动方案.jpg


回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2018-12-12 09:03:46 | 显示全部楼层
本帖最后由 云琴箫龙 于 2018-12-12 09:06 编辑
eric2013 发表于 2018-12-11 10:32
后面有好的想法了,我们再交流

向574写数据看了一下时序应该可以实现,但从245端口读取数据,现在疑问在于,FMC何时锁存总线上的输入数据?是NOE由低到高的跳变吗?如果是这样,那这个方案就实现不了读数据了。但NOE和NE0是同时由低到高跳变的,想着FMC应该不会在这个临界点上锁存数据吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
 楼主| 发表于 2018-12-13 01:22:03 | 显示全部楼层
云琴箫龙 发表于 2018-12-12 09:03
向574写数据看了一下时序应该可以实现,但从245端口读取数据,现在疑问在于,FMC何时锁存总线上的输入数 ...

锁存数据,根据你使用的FMC模式,在参考手册有对应的时序图。
回复

使用道具 举报

6

主题

41

回帖

59

积分

初级会员

积分
59
发表于 2018-12-15 18:11:25 | 显示全部楼层
本帖最后由 tianheyun 于 2018-12-15 19:02 编辑
云琴箫龙 发表于 2018-12-11 22:14
刚做的用FMC总线驱动多个输入输出的方案,请硬汉哥赐教。CPU和SDRAM通过FMC直接相连的,扩展的输入输出口 ...

看不懂你这么设计的意图。你这完全没必要245那。读也用574DQ触发器。在片选NE拉低和NWE上升沿写数据。在片选NE拉低和NOE上升沿读数据。至于读写哪一个DQ触发器芯片。通过译码器选则触发器的OE端。DQ的保持锁存功能你的用上。读写无非就是交换DQ端。另外读由单片机寄存,不怕选择下一个触发器后上一个触发器数据丢失,写就不行了,写当前触发芯片会造成上个写的触发芯片Q端丢失,所以写不能用触发器16位扩展32位(除非不断刷新写,另外读写不能同时进行,所以不适用发收同时进行的设备)。至于并口写扩展IO除了8255之类的芯片目前我还不知道有什么并口级联芯片可以实现。
回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2018-12-18 22:20:11 | 显示全部楼层
tianheyun 发表于 2018-12-15 18:11
看不懂你这么设计的意图。你这完全没必要245那。读也用574DQ触发器。在片选NE拉低和NWE上升沿写数据。在 ...

1、FMC总线总是先采样再拉高NE,NOE上升沿的时候574输出数据,但这个时候已经错过FMC采样时间了,而用245,在NOE整个低电平过程中数据始终都在FMC总线上,所以不会错过采样时间。
2、输出用574,它的OE端始终是使能的,所以不会存在数据丢失(当然上次写的什么数据,肯定在CUP里面有备份)。
3、8255是不错的选择,但那么大的封装不适合项目上应用。
回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2018-12-19 08:54:26 | 显示全部楼层
tianheyun 发表于 2018-12-15 18:11
看不懂你这么设计的意图。你这完全没必要245那。读也用574DQ触发器。在片选NE拉低和NWE上升沿写数据。在 ...

且扩展的IO口都是用于普通开关量的输出和采集,方向是固定的,不会用于双向的数据通信。
回复

使用道具 举报

9

主题

48

回帖

75

积分

初级会员

积分
75
QQ
发表于 2018-12-22 22:36:10 | 显示全部楼层
FMC真的看不懂,第一个历程就把我打败了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
 楼主| 发表于 2018-12-24 01:40:43 | 显示全部楼层
flymdk 发表于 2018-12-22 22:36
FMC真的看不懂,第一个历程就把我打败了

初次看的话,要从总线的角度去看,这样就好理解了。而实际记得时序,多看看手册,并实际用示波器或者逻辑分析仪走一遍会好很多
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-1-2 16:43:20 | 显示全部楼层
本帖最后由 roguebear 于 2019-1-2 20:52 编辑
云琴箫龙 发表于 2018-7-3 22:55
他们的回复是595设计抗干扰本来就差,对外部电路设计要求比较高,基本上要加一堆防护,DRV8860在板子上几 ...

不知道有没有更好点的能够又做输入又做输出 驱动又大 还内带泄流二极管,而且还是并行的片子。。。574和245和8860的结合体。 8860是串口,有时候需要快速IO的时候怕顾不过来。
回复

使用道具 举报

56

主题

904

回帖

1072

积分

至尊会员

积分
1072
发表于 2019-1-4 10:25:28 | 显示全部楼层
本帖最后由 roguebear 于 2019-1-4 10:32 编辑

TI这款芯片不错呢。。

SN74LVC16T245-EP

如果是8位双向IO   SN74LVC8T245

各位怎么看,我理想是能双向IO 能锁存  能直接寻址  驱动能力也要大的,至少每个脚一个led没问题。可惜没找到满足以上要求还内部带反向二极管的。。。


回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2019-1-6 22:57:25 | 显示全部楼层
云琴箫龙 发表于 2018-12-11 22:14
刚做的用FMC总线驱动多个输入输出的方案,请硬汉哥赐教。CPU和SDRAM通过FMC直接相连的,扩展的输入输出口 ...

刚意识到,自己纠正个错误,这个方案扩展IO口没问题,但用38译码器的输出去作为某些总线接口的芯片,可能会有问题,NWE上升沿就把片选禁止了,可能这些接口芯片还没有来得及锁存数据。
回复

使用道具 举报

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2019-1-6 22:58:38 | 显示全部楼层
roguebear 发表于 2019-1-2 16:43
不知道有没有更好点的能够又做输入又做输出 驱动又大 还内带泄流二极管,而且还是并行的片子。。。574和2 ...

不止这些,8860不支持5V供电,而且价格也很贵。
回复

使用道具 举报

4

主题

52

回帖

64

积分

初级会员

积分
64
发表于 2019-6-18 11:32:07 | 显示全部楼层
之前玩51的时候,搞过8255扩展IO,似乎既可以作为输入也可以作为输出,前提条件是一组要么作为输出,要么作为输出。STM32其实也是一样的,控制扩展芯片的片选,往数据总线写数据就可以
回复

使用道具 举报

7

主题

190

回帖

216

积分

高级会员

积分
216
发表于 2019-10-27 13:01:05 | 显示全部楼层
哇  太有用了  啥时候收录进BSP驱动包那个教程里面呀   这几天我看到跑马灯那一节后 教程里面说扩展了FMC接口  教程后续补上  我就想着调试跟进去看看怎么写的  越看越头大  还好论坛有这个教程
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
 楼主| 发表于 2019-10-28 07:40:43 | 显示全部楼层
abcde1224 发表于 2019-10-27 13:01
哇  太有用了  啥时候收录进BSP驱动包那个教程里面呀   这几天我看到跑马灯那一节后 教程里面说扩展了FMC接 ...

快到FMC章节了。
回复

使用道具 举报

7

主题

190

回帖

216

积分

高级会员

积分
216
发表于 2019-10-28 23:31:04 | 显示全部楼层

期待ing
  坐等嘿嘿
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2024-3-21 23:36:07 | 显示全部楼层
硬汉哥,有两个问题请教下:
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2024-3-21 23:39:21 | 显示全部楼层
硬汉哥,两个问题请教下:
1,这种扩展只能使用带FMC的片子吗?像stm32f103cBt6这种是否可以使用?
2, 很多便宜的屏幕都是8080口的,但是低端单片机没有,是否可以使用595之类的用SPI驱动,只是没见过这么用的,不知道速度怎么样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
 楼主| 发表于 2024-3-22 08:59:53 | 显示全部楼层
Superusrss 发表于 2024-3-21 23:39
硬汉哥,两个问题请教下:
1,这种扩展只能使用带FMC的片子吗?像stm32f103cBt6这种是否可以使用?
2,  ...

1、这个是FSMC接口的扩展,你用F103CB这种引脚少的,你可以使用I2C/SPI转的扩展IO
2、可以用IO模拟,能分配出一组16个IO接口即可。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 12:25 , Processed in 0.232313 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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