注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
Tobey的个人空间 https://home.eeworld.com.cn/space-uid-719346.html [收藏] [复制] [分享] [RSS]
日志

stm32中的FSMC,ADDR[25:1]为什么不是ADDR[24:0]

已有 876 次阅读2017-8-29 23:08 |个人分类:硬件开发_嵌入式编程



看了看stm32f1的FSMC部分的内容,纠结于一个无聊的问题~~


图 FSMC 内存块


如上图所示:bank = 256M = 4×64M


表 拓展内存地址

从表中可知内存中每个数据的长度可以是8位或16位,
8位:
      512M = 64M×8 =  64×1024×1024 = 2^(6+10+10) ×8 =  2^26×8
      数据长度为8位的时候地址总线需要26根,这就和上图中的ADDR[25:0] 26根地址线对上了,
      接着映射到FSMC_A[25:0],保持低位对齐
16位:
     512M  =64/2M×16 = 32M×16 = 32×1024×1024×16 =2^(5+10+10) = 2^25×16  
     数据长度为16位的时候地址总线需要25根,这就和上图中的ADDR[25:1] 对应,映射到FSMC_A[24:0]
     这样地址线就保持了低位对齐

简单点理解就是:8位和16位的SRAM的数据接口不同,
同容量的条件下(512M),8位的SRAM地址线比16位多一根(26、25)

那么在数据长度为16位的时候,为什么是ADDR[25:1] 而不是ADDR[24:0]呢?是为了方便硬件操作吗?






本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章