OpenEdv-开源电子网

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

讲fsmc的非常好,贴出来给大家分享

[复制链接]

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-1-4 15:55:44 | 显示全部楼层 |阅读模式
这个是从网上找到的,内容如下:

STM32 FMSC  LCD难点解析:

以下是网上和自己整理的:感觉应该可以把STM32 ----FSMC LCD中的关键RS说清楚~

----------------------------------------------------------------------------------------------------------------------

 

 

第一个角度理解STM32FSMC(其实其他芯片基本都有类似的总线功能),FSMC的好处就是你一旦设置好之后,WR()RD()DB0-DB15这些控制线和数据线,

都是FSMC自动控制的。打个比方,当你在程序中写到:

 

*(volatile unsigned short int *)(0x60000000)=val;

 

那么FSMC就会自动执行一个写的操作,其对应的主控芯片的WERD这些脚,就会呈现出写的时序出来(即WE=0,RD=1),数据val的值也

会通过DB0-15自动呈现出来(FSMC-D0:FSMC-D15=val  )。地址0x60000000会被呈现在数据线上(即A0-A25=0,地址线的对应最麻烦,要根据具体情况来,好好看看FSMC手册)。

 

那么在硬件上面,我们需要做的,仅仅是MCULCD控制芯片的连接关系:

 

WE-WR,均为低电平有效

RD-RD,均为低电平有效

FSMC-D0-15LCD DB0-15

FSMC_NE1--CSPD7

 

连接好之后,读写时序都会被FSMC自动完成。但是还有一个很关键的问题,就是RS没有接因为在FSMC里面,根本就没有对应RS。怎么办呢?这个时候,有一个好方法,就是用某一根地址线来接RS。比如我们选择了A16这根地址线来接,那么当我们要写寄

存器的时候,我们需要RS,也就是A16(RS为高)置高。软件中怎么做呢?也就是将FSMC要写的地址改成0x60020000如下:

 

 

*(volatile unsigned short int *)(0x60020000)=val;

 

这个时候,A16在执行其他FSMC的同时会被拉高,因为A0-A18要呈现出地址0x600200000x60020000里面的Bit17=1,就会导致A161

当要读数据时,地址由0x60020000改为了0x60000000,这个时候A16就为0了。

 

那么有朋友就会有疑问,第一,为什么地址是0x6xxxxxxx而不是0x0xxxxxxx;第二,CS怎么接;第三,为什么Bit17对应A16

 

RS问题:RS0表示;读写寄存器;RS1,读写数据RAM

 

先来看前两个问题,大家找到STM32FSMC手册,在FSMC手册里面,我们很容易找到,FSMC0x60000000-0x6fffffff的地址用作NOR/PRAM

256M地址范围)。而这个存储块,又被分成了四部分,每部分64M地址范围。当对其中某个存储块进行读写时,对应的NEx就会置低。这里,

就解决了我们两个问题,第一,LCD的操作时序,和NOR/PRAM是一样的(为什么一样自己找找NOR/PRAM的时序看看),所以我们选择0x6xxxxxxx

这个地址范围(选择这个地址范围,操作这个地址时,FSMC就会呈现出NOR/PRAM的时序)。第二,我们可以将NEx连接到LCDCS,只要我们操作

的地址是第一个存储块内即可(即0-0x3ffffff地址范围)。 

 

第三个问题再来看一看FSMC手册关于存储器字宽的描述,我们发现,当外部存储器是16位时,硬件管脚A0-A24表示的是地址线A1-A25的值,所以

我们要位移一下,Bit17的值,实际会被反应到A16这根IO来。关于数据宽度及位移的问题,初学的朋友可能会比较疑惑,当你接触了多NOR/PRAM

这样的器件后,你会发现,很多芯片的总线,都是这样设计的,为的是节省地址线。

 

第二个角度理解:

 

 

FSMC总线上看,LCD只有2个地址.

Bank1_LCD_C是写寄存器,此时RS=1,告诉LCD我在总线上输出数据的是寄存器的地址

Bank1_LCD_D是写数据,此时RS=0,告诉LCD我在总线上输出地数据是寄存器的数据或者GRAM的数据.

 

写寄存器数据按2步来:

第一步先往Bank1_LCD_C (对应RS=1),送寄存器的地址:*(__IO uint16_t *) (Bank1_LCD_C)= index;  接着在Bank1_LCD_D这个地址(对应RS=0),写入刚指向的寄存器的数据: *(__IO uint16_t *) (Bank1_LCD_D)= val;

 

为什么*(__IO uint16_t *) (Bank1_LCD_C)= index; 就是往 LCD 写寄存器呢?

 

 

这是一个16位的IO赋值操作,地址是Bank1_LCD_C,这个地址就是指向FSMC Bank1NE1对应的地址空间。而LCD片选正是连接到NE1,具体地址要看RS接到哪一根地址线上。当CPU执行到这一条的时候,就会通过FSMC总线控制器在数据总线上进行一个地址为 Bank1_LCD_C的数据写操作,此操作自动完成CS信号,

RD信号,WR信号,以及地址总线数据(RS信号)的输出以及数据总线数据的输出.

 

其他的操作都是这两个操作组合完成。也就是我上面所说的,

"所有的寄存器地址和寄存器数据,以及 GRAM数据都是通过 IO0-IO15完成传输的,而不是FSMC的地址.这是容易搞混的一个地方.LCDFSMC地址只有一根 ,就是RS."

 

----------------------------------------------------------------------------------------------------------------------第三个角度理解:

TFT看做类似SRAM的存储器,只能接在 BANK1上。对应基地址是0x60000000.

BANK1又有划分为四个片选,分别对应基地址:

NE1 0x600000000

NE2 0x640000000

NE3 0x680000000

NE4 0x6C0000000

所以每个NEx能寻址的空间大小为64M,也就是对应了FSMCA0A25 26根地址线.

 

假如使用NE4接到为LCD的片选CS上,那么就对应基地址 0x6C000000,

如果RS接到地址线的 A0上,那么当 RS0时对应的地址就是 LCD_REG = 0x6C000000,(其实你用0x6CFFFFF0是一样的,因为只用到一根地址线).

RS1时对应的地址就是 LCD_RAM =0x6C000001,(0x6CFFFFF1一样对应 LCD_RAM,因为它一样对应 RS=1).

 

如果 RS接到 其他地址线上,情况是类似的。

比如接到 An上,那么

LCD_REG= 0x6C000000,

LCD_RAM= 0x6C000000 | (1<<n)

 

注意这个地址不是唯一的,只要这个地址能寻址到 BANK1  NE4上而且使 RS=0,那么就是 LCD_REG,使 RS=1,就是LCD_RAM.

 

----------------------------------------------------------------------------------------------------------------------

 

对应Bank1_LCD_C 的地址,FSMC总线控制器在RS接的那根地址线输出的是 1,而对应Bank1_LCD_D,输出的0.

RS接的可不是GPIO,FSMC地址总线的一根.FSMC进行读写操作的时候会在地址总线根据要读写的地址输出电平的.

RS接哪一根地址线虽然没有固定要求,但是一旦你确定要接哪一根,那么Bank_LCD_CBank_LCD_D也要随之确定,这可不是“自动的".

 

虽然没有手动操作GPIO来操作RS,但是你敲代码的时候可是手动指定 Bank1_LCD_C 或者 Bank1_LCD_D ,从而确定 RS的电平.

所谓的“自动”是指:不是通过操作GPIO来操作RS,而是直接根据地址总线地址的不同来完成操作RS,这两种方法的速度差别是非常大的.

 

 

如果是GPIO方式,先要通过操作GPIO 分别 输出 RS,CS,等的电平,然后再通过过GPIO操作输出数据,然后还要通过GPIO 再操作RD,WR,CS等的电平。

每操作一个GPIO都要好几个周期,加起来就非常慢了.

FSMC是在一个FSMC写周期内就完成了这所有的动作。

 

 

 

 

*******************************************************************************

#define Bank1_LCD_R    ((uint32_t)0x60000000)    //disp Reg ADDR

#define Bank1_LCD_D    ((uint32_t)0x60020000)   //disp Data ADDR

 

 

 

STM32 FMSC系统手册可以看到:

 

FSMC其实就相当于外部总线存储器和内部AHB总线的接口:而AHB32位的,当外接NOR/LCD 时,而外部存储器的数据宽度可以选择8位和16位的,这时候就存在一个地址转换的问题即32位和8位或者16位地址转换的问题。解决这个问题STM32采用的HADDR[25:0],它的作用就是将外部存储器地址转换为AHB地址线。

 

其中:

STM32 <wbr>----小谈FSMC <wbr>RS选择

STM32 <wbr>----小谈FSMC <wbr>RS选择

 并且无论外部存储器的宽度是多少位,FSMC_A[0]始终连接到外部存储器的A[0];

 

 

 

 

 

NOR闪存/LCD

 

1:寄存器

2RAM

 

 

 

 

             

 

 

FSMC核心控制器

(这里就只介绍使用BANK1的块1:这个块1的起始地址为0x6000 0000)                                                                              




                    

                                       FS  FSMC_NOE(输出使能)

 

STM32 <wbr>----小谈FSMC <wbr>RS选择

 

 

 

 

STM32

AHB总线                           

 


STM32 <wbr>----小谈FSMC <wbr>RS选择                                    FSMC_NE1(片选)

STM32 <wbr>----小谈FSMC <wbr>RS选择

RS?

STM32 <wbr>----小谈FSMC <wbr>RS选择右箭头: D[0:15]右箭头: FSMC_A[16:25]FSMC_NWE(写使能)

 

STM32 <wbr>----小谈FSMC <wbr>RS选择

 

 

 


HADDR[25:0]总共26位线,可以寻址64M的地址空间,而AHB总线是32位宽度,所以能寻址0x0000 0000~0xFFFF FFFF;在这里我们只是指定了FMSC控制器块1的地址为0x6000 0000。寻址空间0x6000 0000 ~0x63ff  ffff;

 

LCD 手册相关知识:(9320或者hx8312都一样)

RS引脚决定是寄存器命令还是显示RAM数据。寄存器指令的输入数据是16位,前8位是地址,后8位是数据。

STM32 <wbr>----小谈FSMC <wbr>RS选择

不同的MPU类型寄存器命令和数据总线的格式不同。并且对应输入总线:有一下对应关系:

STM32 <wbr>----小谈FSMC <wbr>RS选择

对于SPI方式,则用以下对应关系:

STM32 <wbr>----小谈FSMC <wbr>RS选择

 

(2)显示RAM数据格式和系统接口输入总线之间的联系

STM32 <wbr>----小谈FSMC <wbr>RS选择

 

 

问题:RS如何选择: 

#define Bank1_LCD_R    ((uint32_t)0x60000000)    //disp Reg ADDR

#define Bank1_LCD_D    ((uint32_t)0x60020000)   //disp Data ADDR

这里LCD选取的16位,将RS接在A16,则HADDR[25:1]对应FSMC_A[24:0];关键在于为什么???

 

从上面可以看出,LCD除了需要数据线之外,额外的地址线是不需要的~~~~~但是在STM32在进行FSMC总线操作时,所有的地址线还是会出现时序的,但是操纵LCD 不需要额外的地址线了,也就是FSMC_A[16:25]可以解放了,但是要注意一旦配置了FSMC,这些管脚还是会出现时序的;

 

现在我们向0x60000000这个块地址送出数据,当然这些数据肯定是16位的,因为是16位的LCD,由于RS(A16)0,所以这个读写寄存器的操作;当向0x60020000写数据时,由于总线时序是要有地址写的,这时bit17就为高了,也就是RS1了,这时所进行的操作就是读写RAM了!!!!

其中RS的选择可以是任意的,但一般还是选择,不用的地址线为好~~~~~


原帖地址:http://blog.sina.com.cn/s/blog_66ffe2770100wabh.html
原子哥是不是又要出黑科技了呀。^_^...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-1-4 23:07:23 | 显示全部楼层
写的不错,谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

314

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2012-7-20
在线时间
102 小时
发表于 2015-1-4 23:58:23 | 显示全部楼层
感谢楼主分享!!!
互联网,智能设备爱好者,欢迎讨论任何有意思的想法。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-1-5 08:26:17 | 显示全部楼层
谢谢分享!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

85

主题

378

帖子

0

精华

高级会员

Rank: 4

积分
902
金钱
902
注册时间
2013-4-29
在线时间
87 小时
发表于 2015-1-5 11:22:48 | 显示全部楼层
markmarkmark
回复 支持 反对

使用道具 举报

16

主题

253

帖子

0

精华

高级会员

Rank: 4

积分
565
金钱
565
注册时间
2013-10-16
在线时间
52 小时
发表于 2015-1-5 15:02:15 | 显示全部楼层
看不明白,谢谢楼主分享,楼主辛苦勒
回复 支持 反对

使用道具 举报

27

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2012-9-11
在线时间
31 小时
发表于 2015-1-6 09:51:50 | 显示全部楼层
写的很好嘛,不错。
回复 支持 反对

使用道具 举报

27

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2012-9-11
在线时间
31 小时
发表于 2015-1-6 13:57:24 | 显示全部楼层
 因为A0-A18要呈现出地址0x60020000。0x60020000里面的Bit17=1,就会导致A16为1。

当要读数据时,地址由0x60020000改为了0x60000000,这个时候A16就为0了。

如果RS接到地址线的 A0上,那么当 RS为0时对应的地址就是 LCD_REG = 0x6C000000,(其实你用0x6CFFFFF0是一样的,因为只用到一根地址线).

RS为1时对应的地址就是 LCD_RAM =0x6C000001,(0x6CFFFFF1一样对应 LCD_RAM,因为它一样对应 RS=1).

当外部存储器是16位时,硬件管脚A0-A24表示的是地址线A1-A25的值

有点疑问啊,按理说向右移动一位,那么RS接到地址线A0上的时候,RS=1对应的地址线不是LCD_RAM =0x6C000002吗??
回复 支持 反对

使用道具 举报

11

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-5-4
在线时间
0 小时
发表于 2015-1-6 14:48:23 | 显示全部楼层
很棒啊,帮顶...
行善,持咒
回复 支持 反对

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2015-1-6 15:36:16 | 显示全部楼层
赶紧来学习!
回复 支持 反对

使用道具 举报

27

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2012-9-11
在线时间
31 小时
发表于 2015-1-7 16:06:40 | 显示全部楼层
明白了,我理解错了。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2014-12-19
在线时间
19 小时
发表于 2015-1-11 08:16:01 | 显示全部楼层
哪NE1的基础上再加上NE4,需要加什么配置命令行?
回复 支持 反对

使用道具 举报

头像被屏蔽

65

主题

277

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2013-8-11
在线时间
29 小时
发表于 2015-1-11 13:43:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2014-4-14
在线时间
0 小时
发表于 2015-2-8 10:25:20 | 显示全部楼层
RS问题:RS为0表示;读写寄存器;RS为1,读写数据RAM;
第二个角度理解:
FSMC总线上看,LCD只有2个地址.
Bank1_LCD_C是写寄存器,此时RS=1,告诉LCD我在总线上输出数据的是寄存器的地址
Bank1_LCD_D是写数据,此时RS=0,告诉LCD我在总线上输出地数据是寄存器的数据或者GRAM的数据.

楼主原话,自相矛盾!
回复 支持 反对

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2014-4-14
在线时间
0 小时
发表于 2015-2-8 12:17:15 | 显示全部楼层
看了好几遍,整体上还是对的哈!挺好的。
回复 支持 反对

使用道具 举报

12

主题

216

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2011-4-7
在线时间
3 小时
发表于 2015-2-9 20:07:22 | 显示全部楼层
mark!!!
回复 支持 反对

使用道具 举报

5

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2014-10-21
在线时间
31 小时
发表于 2015-2-28 22:28:31 | 显示全部楼层
你好,我想请问下一个问题,可能比较白痴,但还是要问出来,憋着难受。。
就是我不清楚地址线跟数据线之间的关系,LCD是在地址线A10上进行读写,是因为A10连接着RS,用于判断是写命令还是写数据,那当命令或数据写入时,D0~D15的状态是什么呢?是写入数据对应的状态吗?
主要就是不知道D0~D15与地址线的关系,是不是往地址线上写数据,数据就会反映在数据线上吗?
本人愚钝,求各位解答,谢谢!!
最好举个例子,让我理解下,万分感激!!
 //写寄存器函数
//regval:寄存器值
void LCD_WR_REG(u16 regval)

LCD->LCD_REG=regval;//写入要写的寄存器序号  
}
//写LCD数据
//data:要写入的值
void LCD_WR_DATA(u16 data)
{         
LCD->LCD_RAM=data;  
}
如果这里的data=0x50,那么在D0到D15上是什么??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-2-28 22:36:39 | 显示全部楼层
回复【17楼】你干嘛:
---------------------------------
此时D15:D0 为: 0000 0000 0101 0000
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2014-10-21
在线时间
31 小时
发表于 2015-3-1 09:52:35 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
哦哦,也就是说,regval或者data为何值,那么D0~D15就为何值,其实也就是往一个地址,写一个数据,恰好的是此时的地址的A10控制着RS,数据位D0~D15也就是数据,可以这样理解吗??
谢谢原子哥,他们都这么叫,跟着叫好了。
//写寄存器函数 
//regval:寄存器值 
void LCD_WR_REG(u16 regval) 
{  
LCD->LCD_REG=regval;//写入要写的寄存器序号   

//写LCD数据 
//data:要写入的值 
void LCD_WR_DATA(u16 data) 
{          
LCD->LCD_RAM=data;   
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-3-1 21:00:04 | 显示全部楼层
回复【19楼】你干嘛:
---------------------------------
是的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2013-12-14
在线时间
4 小时
发表于 2015-3-7 10:46:25 | 显示全部楼层
回复【8楼】apple:
---------------------------------
这是左移一位,我也很纳闷
回复 支持 反对

使用道具 举报

6

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2013-12-14
在线时间
4 小时
发表于 2015-3-7 10:47:00 | 显示全部楼层
回复【14楼】wymbsmmh:
---------------------------------
恩,很矛盾
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2014-3-29
在线时间
6 小时
发表于 2015-7-18 11:45:07 | 显示全部楼层
这篇关于FSMC的文章,写得不错,建议不懂FSMC的技术猿可以学一下
回复 支持 反对

使用道具 举报

11

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
425
金钱
425
注册时间
2013-3-19
在线时间
20 小时
发表于 2015-7-18 20:53:36 | 显示全部楼层
谢谢分享!!!
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-7-18 21:38:52 | 显示全部楼层
fsmc,写的很好,感谢楼主
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
 楼主| 发表于 2015-7-20 08:40:21 | 显示全部楼层
回复【25楼】龙之谷:
---------------------------------
不是我写的啊,我只是复制过来给大家分享的。^_^
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-7-20 08:52:55 | 显示全部楼层
回复【26楼】fanghuiopenedv:
---------------------------------
明白,你楼主位已经注明了,回复的时候一时想不出什么词来表达,刚想了一下,还是词穷,将就补充一下原话

fsmc,写的很好,感谢楼主copy

祝工作顺利
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2015-6-12
在线时间
0 小时
发表于 2015-9-7 10:07:01 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

8

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-9-7
在线时间
8 小时
发表于 2015-9-7 11:13:03 | 显示全部楼层
FSMC存储控制器(mark)
回复 支持 反对

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-9-22 17:09:17 | 显示全部楼层
RS是什么?
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
 楼主| 发表于 2015-9-22 17:18:06 | 显示全部楼层
回复【30楼】jiutianshenjian:
---------------------------------
RS应该是和51单片机的ALE差不多的功能。
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-9-22 17:29:39 | 显示全部楼层
回复【31楼】fanghuiopenedv:
---------------------------------
51没搞过。
我这里有个T6963c的芯片,
我看和这个功能一样,不过是相反的貌似。这个C/D连的FSMC的A18.

C/D#   WR# = L,C/D# = H 时,写命令;C/D# = L 时,写数据; 
            RD# = L,C/D# = H 时,读命令;C/D# = L 时,读数据; 

然后地址怎么算。FSMC_Bank1_NORSRAM3起始地址0x68000000,这个命令地址该是多少。
写命令对应写寄存器吧,高低电平不是反的吗?
小小蜗牛
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
 楼主| 发表于 2015-9-22 17:48:30 | 显示全部楼层
回复【32楼】jiutianshenjian:
---------------------------------
写驱动的话要结合着硬件连接来写的。你要看下连接到那个管脚了,然后在写驱动。这个我转载的帖子应该可以帮到你的。你好好研究下吧。
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-9-22 18:26:09 | 显示全部楼层
回复【33楼】fanghuiopenedv:
---------------------------------
看了好久了,还是搞不懂这点东西。。。
小小蜗牛
回复 支持 反对

使用道具 举报

2

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2015-5-24
在线时间
9 小时
发表于 2016-1-27 10:58:02 | 显示全部楼层
很好的帖子,对于理解FSMC确实有用
回复 支持 反对

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-1-27 13:17:20 | 显示全部楼层
标记一下,慢慢学习
我有故事,你有酒吗
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-1-20
在线时间
7 小时
发表于 2016-2-17 09:48:36 | 显示全部楼层
感谢分享!!
回复 支持 反对

使用道具 举报

19

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
382
金钱
382
注册时间
2014-1-7
在线时间
42 小时
发表于 2016-2-18 22:03:14 | 显示全部楼层
为什么上面的图片显示不出来
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
 楼主| 发表于 2016-2-22 10:29:31 | 显示全部楼层
ALIEN_WALI 发表于 2016-2-18 22:03
为什么上面的图片显示不出来

你可以去看原帖地址的呀。
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-12-2
在线时间
3 小时
发表于 2018-6-1 10:21:53 | 显示全部楼层
推荐大家一个靠谱的论文检测平台。重复的部分有详细出处以及具体修改意见,能直接在文章上做修改,全部改完一键下载就搞定了。怕麻烦的话,还能用它自带的降重功能。哦对了,他们现在正在做毕业季活动, 赠送很多免费字数,可以说是十分划算了!地址是:http://www.paperpass.com/
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-3-26
在线时间
19 小时
发表于 2019-10-19 11:18:50 | 显示全部楼层
虽然看不很懂,但是也谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-17 11:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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