OpenEdv-开源电子网

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

fsmc中的写命令

[复制链接]

20

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-4-8
在线时间
15 小时
发表于 2016-5-31 23:53:18 | 显示全部楼层 |阅读模式
1金钱


QQ截图.png


有那位大神可以用通俗易懂的语言解释一下,如果我们要往lcd驱动器里面写命令,直接用LCD.LCD_REG=CMD;就可以了呢?比如我们想度驱动器的id,就是lcd.lcd_reg=0xd3;当代码执行到这里的时候,那个fsmc的内部是怎么工作的呢?比如说数据线上的电平,和地址线上的电平会咋变化呢?
这句话不是往fsmc第一个模块的第四个去地址是0x6c0007fe这个位写一个数(比如是1)吗?咋会是往lcd驱动器里面输入命令0xd3呢?

求大神指点
QQ1799577165


最佳答案

查看完整内容[请看2#楼]

这是三总线的操作机制问题, 地址总线,A0、A1。。。 数据总线,D0、D1。。。 控制总线,CE、WR、RD等。 总线操作分为读和写。 写的时候, 要指明往哪里写——即地址, 要指明写什么内容——即数据, 要给出相应的控制信号,才能驱动外部器件——即WR、片选及其他信号变成有效的电平。 CPU内核集成了全套机制,只需要一条指令ADD=xxx,三总线的这些动作都会自动完成。即:地址总线会出现你的地址(ADD),数据总线会出 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11546
金钱
11546
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-5-31 23:53:19 | 显示全部楼层
本帖最后由 xuande 于 2016-6-1 08:38 编辑

这是三总线的操作机制问题,
地址总线,A0、A1。。。
数据总线,D0、D1。。。
控制总线,CE、WR、RD等。

总线操作分为读和写。
写的时候,
要指明往哪里写——即地址,
要指明写什么内容——即数据,
要给出相应的控制信号,才能驱动外部器件——即WR、片选及其他信号变成有效的电平。
CPU内核集成了全套机制,只需要一条指令ADD=xxx,三总线的这些动作都会自动完成。即:地址总线会出现你的地址(ADD),数据总线会出现你的数据(xxx),控制总线会自动变成有效;
当然,都是以上升沿、下降沿、电平的形式出现,而且它们之间有严格的时间关系,即时序。

读也类似。






回复

使用道具 举报

20

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-4-8
在线时间
15 小时
 楼主| 发表于 2016-6-1 15:18:19 | 显示全部楼层
xuande 发表于 2016-6-1 08:33
这是三总线的操作机制问题,
地址总线,A0、A1。。。
数据总线,D0、D1。。。

象我买的这个战舰开发板中的LCD实验,它相当于fsmc控制一个SRAM,这个SRAM地址就有2个(读和写,通过A10控制)。比如这个实验中,我要读lcd驱动器的id,程序语句是LCD.LCD_REG=0xD3;当程序执行到这里的时候,D3这8位的数据先储存在fsmc的第一块第四区的某8位中,然后在送到数据线引脚发出去吗?
第二就是:为什么当程序执行到这条语句的时候,那个A10的引脚会变成1(即写指令)。这是不是和微机原理有关系呢
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11546
金钱
11546
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-6-1 15:30:41 | 显示全部楼层
本帖最后由 xuande 于 2016-6-1 15:31 编辑
feibosu 发表于 2016-6-1 15:18
象我买的这个战舰开发板中的LCD实验,它相当于fsmc控制一个SRAM,这个SRAM地址就有2个(读和写,通过A10控 ...


1、0xD3是保存在程序存储器里,CPU在指令译码、执行阶段,把数据从程序存储器取出来然后放到数据总线上。
你说的第几块第几区,没有这回事吧?!不知道你怎么得到的这个信息。。。

2、让所有地址位排队,然后指定A10=1,这时再读出地址的具体数据,
把这个数据送到地址总线,自然就有A10=1了。

3、三总线,确实和微机原理大同小异。


回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2016-6-1 15:36:14 | 显示全部楼层
feibosu 发表于 2016-6-1 15:18
象我买的这个战舰开发板中的LCD实验,它相当于fsmc控制一个SRAM,这个SRAM地址就有2个(读和写,通过A10控 ...

这个跟FSMC的硬件工作时序有关系. 前面设置好FSMC对应的偏移量,当你往命令寄存器送数据时,对应的地址线自动高电平
回复

使用道具 举报

20

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-4-8
在线时间
15 小时
 楼主| 发表于 2016-6-3 15:59:46 | 显示全部楼层
xuande 发表于 2016-6-1 15:30
1、0xD3是保存在程序存储器里,CPU在指令译码、执行阶段,把数据从程序存储器取出来然后放到数据总线上 ...

回复


回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 16:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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