16位数据宽度的SRAM里有UB,LB两根控制线,代表高低字节,怎么控

青年   2008-11-6 09:20 楼主
                                 我的单片机数据线就是16位的,那是不是应该把这两根线接地?

回复评论 (16)

                                 应该是在cpu为8位总线宽度时才会用到,具体的时序该型号的sram手册中应该有描述
点赞  2008-11-6 10:22

有,但没看懂

                                 我说的意思是如果这两根线直接接地的话是不是每次读写就是16位的操作,能访问全部空间
点赞  2008-11-6 10:36

每次读写就是16位的操作

我说的意思是如果这两根线直接接地的话是不是每次读写就是16位的操作,能访
问全部空间 

应该没有问题

但是你的代码也是能使用 16 位的方式了. 这样对于字节操作不是很方便.

无法直接单独更改每一字节, 不过可以读取 16 位, 修改其中的 8 位, 然后再写回 16 位.

UB,LB两根控制线

UB 应该是访问 高 8 位
LB 应该是访问 低 8 位

如果使用 UB,LB两根控制线 就可以控制读取/写入的是 高 8 位 或者 低 8 位
, 或者整个 16 位.







点赞  2008-11-6 14:22

stm32 使用 16 位宽度SRAM例子

                                  
点赞  2008-11-6 14:26

这个PDF叫什么名字?

                                 我去下个文档
点赞  2008-11-7 09:00

找到了

                                 Using the high-density STM32F10xxx FSMC peripheral to drive external memories.PDF
点赞  2008-11-7 10:43

香主能不能给解释下

                                 NBL0和NBL1是怎么控制的,用外部的16位SRAM到底是怎么个操作过程?
点赞  2008-11-7 14:44

请看看STM32技术参考手册中的有关章节

可以在我的博客中找到这章的中文译文:http://blog.ednchina.com/STM32/
点赞  2008-11-7 21:41

学习中

                                 学习高手的做法
点赞  2008-11-10 22:53

香主也不直接给解释下

                                 如我8楼所问
点赞  2008-11-11 08:55

请看我翻译的STM32技术参考手册中第18章的内容

在表18-8中写得很清楚:

NBL[1]  输出  高字节使能(存储器信号名称为:NUB)
NBL[0]  输出  低字节使能(存储器信号名称为:NLB)

NBL0控制操作低字节,NBL1控制操作高字节。你哪点还不明白,还需要更详细的解释吗?
点赞  2008-11-11 09:03

这个可能是比较通用的问题

应该是很多网友都想知道的问题
上面的说明我倒是看明白了,现在的疑问就是当我在程序里访问单字节变量和双字节变量的时候这个NBL[1]和NBL[0]是不是硬件自动控制的,需要我用软件干涉么?
点赞  2008-11-11 09:27

请看我翻译的STM32技术参考手册中表18-9的内容

当配置了外部存储器的宽度为16位时,如果程序需要以8位宽度访问外部存储器时,则这两条信号线会由硬件自动产生。

FSMC_BCR1…4的MWID位用于指定外部存储器的宽度,见18.5.6节。

在18.3.1节中“一般的操作规则”下的第3点也明确说明了。
点赞  2008-11-11 09:53

ok

                                 明白了
点赞  2008-11-11 10:48

读倒没关系,就是写数据时,如果要单独写一个字节,就要

                                 所以处理器会有高、低字节选通的控制线。这些信号都是硬件自动产生的
点赞  2008-11-11 11:00
                                 ub控制高位,lb控制低位
点赞  2010-4-5 21:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复