0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >设计应用 > STM32开发设计中FSMC可能遇到问题应对方案

STM32开发设计中FSMC可能遇到问题应对方案

2018-04-26
类别:设计应用
eye 365
文章创建人 拍明

本文将就使用FSMC可能遇到的问题进行说明。希望能对大家的学习有所帮助。

一、端口配置

1、 由于FSMC写NOR时序与8080接口的时序十分相识,因此我们采用模拟8080时序,

 模拟8080时序.png

2、 STM32的引脚图如图所示。

 STM32的引脚图.png

3、根据上图我们可以得出,FSMC的数据端口D[15:0]如下

FSMC的数据端口D[15:0].png

4、我们使用的是 FSMC 的信号线 NE1 作为控制 8080 的 CSX 片选信号,所以我们把本成配置为 FSMC_Bank1_NORSRAM1 (NE1 片选BANK1)。由上图得FSMC-NE1 ==PD7 ---------LCD-CS

FSMC-NE1 ==PD7 ---------LCD-CS.png

5、数据地址的选择

本成员用于设置 FSMC 接口的数据宽度,可被设置为 8Bit 或 16bit。对于16 位宽度的外部存储器。在 STM32 地址映射到 FSMC 接口的结构中,HADDR信号线是需要转换到外部存储器的内部 AHB 地址线,是字节地址。

若存储器的数据线宽为 8Bit,FSMC 的 26 条地址信号线 FSMC_A[25:0]直接可以引入到与 AHB 相连HADDR[25:0],26 条字节地址信号线最大寻址空间为 64MB。见图 0-9。

26 条字节地址信号线最大寻址空间为 64MB.png

若存储器的数据线宽 16Bit,则存储器的地址信号线是半字地址(16Bit) 。为了使 HADDR 的字节地址信号线与存储器匹配,FSMC 的 25 条地址信号线FSMC_A[24:0]与 HADDR[25:1]相连,由于变成了半字地址(16Bit),仅需要 25条半字字地址信号线就达到最大寻址空间 64MB。正因地址线的不对称相连,16bit 数据线宽下,实际的访问地址为右移一位之后的地址。

如下,我的地址选择FSMC_A16, 只需在命令地址上左移(16+1)位。

我的地址选择FSMC_A16, 只需在命令地址上左移(16+1)位。.png

6、FSMC寄存器的配置

FSMC寄存器的配置.png

7、如果我们需要改动端口,只需注意以下几个要点即可

(1)我们需要改动BANK1_SRAM[X],,如我改成BANK1_EN4,需改动

改动BANK1_SRAM[X],,如我改成BANK1_EN4,需改动.png

因为EN4的地址是0X6C000000,

EN4的地址是0X6C000000,.png

(2)如需改动命令地址,FSMC_A[25:0],如我选择A16

如需改动命令地址,FSMC_A[25:0],如我选择A16.png

只需将命令地址改为0x6c000000+(16+1)

只需将命令地址改为0x6c000000+(16+1).png


责任编辑:Davia

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: STM32 存储器

相关资讯