(1)AHB接口(包括FSMC配置寄存器) (2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一个PSRAM的里面只有2个16位的存储空间,一个是DATA RAM 一个是CMD RAM) (3)NAND闪存和PC卡控制器 (4)外部设备接口 小结:FSMC是一种用于为STM32扩展外部存储器的控制器,它是一种控制器! 1.FSMC控制器,包括AHB接口及两个控...
比如选择A3,我们逆向操作来解决这个问题,A3写数据地址是0x6c000010,也就是LCD_RAM的地址。LCD_REG比LCD_RAM小两个字节,减2就得到了0x6c00000e,此时HADDR4为0,那这个就是我们需要的LCD基地址,因为只有这个值加2后会变成写数据的地址,这就是那个实用的地址。 操作框图如下图所示,FSMC初始化好后就跟透明的一样...
2.FSMC的LCD接口信号 图5 通过图5,可以看到FSMC提供了LCD驱动所需的全部信号。 片选有专门的硬件信号,也可以使用地址信号Ax,即空闲的地址信号任选一根使用。而LCD的RS信号也可以连接到一根地址线。 3.FSMC 和LCD 连接框图 8080类型接口 6800类型接口 4.驱动程序 以STM32F103VCT6为例,关于103VCT6的信息如下: 只能...
STM32F1 的 FSMC 支持 8/16/32 位数据宽度,我们这里用到的 LCD 是 16 位宽度的,所以在设置的时候,选择 16 位宽就 OK 了。我们再来看看 FSMC 的外部设备地址映像, STM32F1的 FSMC 将外部存储器划分为固定大小为 256M 字节的四个存储块,如图 所示: FSMC 总共管理 1GB 空间,拥有 4 个存储块(Bank),STM...
因此可以把TFTLCD当成一个SRAM来用(将TFTLCD的RS连接到地址线的时候可以当作SRAM),只不过这个SRAM有2个地址,这就是FSMC可以驱动LCD的原理。 外设接口 STM32的FSMC支持8/16/32位数据宽度。FSMC的外部设备地址映像,STM32的FSMC将外部存储器划分为固定大小为256M字节的四个存储块。 这个我们来简单理解一下,8位...
FSMC NOE:输出使能,连接LCD的RD脚。 FSMC NWE:写使能,连接LCD的RW脚。 FSMC Ax:用在LCD显示RAM和寄存器之间进行选择的地址线,即该线用于选择LCD的RS脚,该线可用地址线的任意一根线,范围:FSMC_A[25:0]。 注:RS = 0时,表示读写寄存器;RS = 1表示读写数据RAM。
指令/数据 FSMC_A0 : PF0 输出功能 背光BL : PF9 复位RESET : PF11 FSMC控制LCD原理 利用时序中写入地址的最低位来控制RS引脚,实现命令和数据分开传输 lcd.h #ifndef __DEBUG_LCD_H#define __DEBUG_LCD_H#include"stm32f4xx.h"//FSMC_Bank1_NORSRAM用于LCD命令操作的地址#define FSMC_Addr_ILI9806G...
那么在硬件上面,我们需要做的,仅仅是MCU和LCD控制芯片的连接关系: WE-WR,均为低电平有效 RD-RD,均为低电平有效 FSMC-D0-15接LCD DB0-15 连接好之后,读写时序都会被FSMC自动完成。但是还有一个很关键的问题,就是RS没有接,CS没有接。因为在FSMC里面,根本就没有对应RS和CS的脚。怎么办呢?这个时候,有一个...
第一个图:这里的LCD->LCD_REG是一个地址(0x6c000007FE),这里的寄存器序号哦:是指LCD手册里定义的寄存器地址。只要我们往LCD->LDC_REG这个地址里写一个变量(地址)。因为LCD->LDC_REG这个地址是FSMC管辖的。所以这时候FSMC就要勇敢的站出来管了~FSMC会自己生成相应的时序,包括CS、WR、RD和IO方向都是由FSMC控制...