【STM32】FSMC接口的复用和非复用

问题背景

在阅读《零死角玩转STM32---F103指南者》,以及《STM32F10x-中文参考手册》关于FSMC一章节的时候,对于在控制NOR/SRAM的时候使用到的引脚,在提到NOR器件的时候提到了地址复用和非复用接口,一时间没明白是什么东西。

结论

非复用模式:16位数据线及26位地址线分开始用。推荐在144脚及以上的STM32产品上使用该模式。

复用模式低16位数据/地址线复用。在该模式下,推荐使用地址锁存器 以区分数据与地址。

若不使用锁存器:当NADV为低时,ADx(x=0...15)上出现地址信号Ax,当NADV变高时,ADx上出现数据信号Dx。若使用锁存器:可同时在ADx上得到Ax和Dx。

复用模式

1、寄存器的配置,首先注意使能地址数据复用,其次要存储器类FSMC_MemoryType_NOR,否则出现不了NADV信号。

FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;

FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;

2、注意GPIO复用功能的使能,以及时钟使能。

3、地址总线。在16位模式访问时,访问地址的[25...0]位必须先左移一位.。才能正确输出地址信号,原因是,STM32会将地址右移一位后在输出。如果输出前不左移,会导致输出地址错误,比如当我们软件访问地址6000 0005H这个地址时,实际访问的地址是6000 0002H。为何右移一位?看中文数据手册327页。如下

相关推荐
不怕犯错,就怕不做20 分钟前
RK3562 +RK817的dts布尔属性解析(uboot基础知识)
linux·驱动开发·嵌入式硬件
逐梦之程1 小时前
STM32的串口通讯--DMA接收和CPU接收不定长数据帧对比
stm32·单片机·嵌入式硬件
文弱书生6561 小时前
2-electronbot主控免驱工程结构
linux·单片机·嵌入式硬件
求知喻2 小时前
LCD真值表
单片机·嵌入式硬件
csg11073 小时前
高效驱动,灵活控制:深度解析RZ7899大电流DC双向马达驱动芯片及其创新应用
单片机·嵌入式硬件·物联网
心疼你的一切3 小时前
三菱FX5U PLC与C#通信开发指南
开发语言·单片机·c#
JSMSEMI114 小时前
JSM9N20C 200V N 沟道 MOSFET
单片机·嵌入式硬件
梁下轻语的秋缘5 小时前
I2S与I2C
运维·stm32·单片机·51单片机
chipsense5 小时前
机器人用霍尔电流传感器,能提升操作安全性么?
单片机·嵌入式硬件·人形机器人·霍尔电流传感器
Zeku5 小时前
20251222 - 韦东山Linux开发板I.MX6ULL连接无线WiFi
stm32·freertos·linux驱动开发·linux应用开发