阅读:1988回复:19
关于EZ-USB AN2131存储器的问题
在EZ-USB TRM v1.8.pdf中,page 3-4的图下面有这样两句话:
Note 1: OK to populate data memory here--RD#, WR#, CS# and OE# pins are inactive.既然这里的RD#, WR#, CS# and OE# pins inactive,干嘛populate data memory here还ok呢?那些信号都不起作用,怎么读取呀? Note 2: OK to populate code memory here--no PSEN# strobe is generated. 或许是我没理解对,谁知道,指点一下。 |
|
最新喜欢:![]() |
沙发#
发布于:2001-12-06 22:48
这儿的意思是说,0到8K的外部RAM是和内部RAM地址冲突,所以当用MOVX访问0到8K的RAM空间时,这几个片选信号都inactive,这样就将外部RAM和内部RAM区分开了。NOTE2也一样。
|
|
|
板凳#
发布于:2001-12-07 20:11
这个倒是知道,可是它说的OK to populate data memory here就是可存放数据,而那些不起作用,怎么读取呀?
是不是我的脑袋不转了? |
|
地板#
发布于:2001-12-08 10:46
还有一个问题就是usb片上ram的地址应该是接着51的吧
|
|
地下室#
发布于:2001-12-08 12:12
这个意思用一句很俗的话就是:“你不能脚踩两只船”;不能同时拥有片内8K的RAM和片外8K的RAM。
USB片上的地址线就是51的地址线,就是51来处理firmware 的,SIE的USB核只是拥有一些Register,这些Register和片内RAM地址冲突时,不选通片内RAM。(我是这么理解的,不敢保证正确性,请斟酌;还请高手指点) |
|
|
5楼#
发布于:2001-12-08 18:13
我不是这么理解的,我觉的51的ram只有256 byte,其余的都不算是51的,而是ez-usb device的,只是它的8k ram 有的要用movx指令访问,如bulk buffer,但他们确实是属于on chip ram。
|
|
6楼#
发布于:2001-12-09 08:51
51就是51,EZ-USB中的只是一个时钟可以跑得快的51,你想想51有没有内部的8K的RAM!?
|
|
|
7楼#
发布于:2001-12-09 10:28
所谓的内部就是集成在一个芯片内的,不是吗?
|
|
|
8楼#
发布于:2001-12-09 19:00
liuxf66你说得没错,可是对那段话还是想不太通,还有没有别的解释。
|
|
9楼#
发布于:2001-12-10 15:26
这儿的意思是说,0到8K的外部RAM是和内部RAM地址冲突,所以当用MOVX访问0到8K的RAM空间时,这几个片选信号都inactive,这样就将外部RAM和内部RAM区分开了。NOTE2也一样。 Note 2: OK to populate code memory here--no PSEN# strobe is generated. 你的解释让我思路清晰了好多,不过还是有一些不明白的,比如片外CODE MEMORY(EEPROM > 16K) 里的程序是如何在这8K RAM 里去运行的? 是不是需要运行哪部分CODE就把那一部分临时调进去运行,还是启动时把所有的先进去再运行?这8K RAM怎样划分为DATA MEMORY 和 PROGRAM MEMORY 这两部分? |
|
|
10楼#
发布于:2001-12-10 23:02
片外code memory里的程序是通过PSEN#管脚(还有CS#、WR#、RD#、OE#、EA等管脚,我忘了具体怎么搭配的了,你查查手册看)访问的,好象不需要在内部RAM里执行。另外,若你用汇编编程,你要定义Code segment(指令好象是:CS AT 500H 之类,你看看例子);若你用C语言编程,KEIL会处理这些问题,这样就将内部RAM划分为CODE和DATA MEMORY了。
不知道解释的对不对? |
|
|
11楼#
发布于:2001-12-11 08:30
我觉得要想处理好一点还是要自己指定的
|
|
12楼#
发布于:2001-12-11 09:42
片外code memory里的程序是通过PSEN#管脚(还有CS#、WR#、RD#、OE#、EA等管脚,我忘了具体怎么搭配的了,你查查手册看)访问的,好象不需要在内部RAM里执行。另外,若你用汇编编程,你要定义Code segment(指令好象是:CS AT 500H 之类,你看看例子);若你用C语言编程,KEIL会处理这些问题,这样就将内部RAM划分为CODE和DATA MEMORY了。 如果不需要在内部RAM里执行,那为何要将内部RAM划分为CODE和MEMORY呢,CODE到底起什么样的作用呢? |
|
|
13楼#
发布于:2001-12-12 11:21
如果不需要在内部RAM里执行,那为何要将内部RAM划分为CODE和DATA MEMORY呢,CODE MEMORY到底起什么样的作用呢?
|
|
|
14楼#
发布于:2002-01-11 16:12
我想是为了代码的兼容吧
|
|
|
15楼#
发布于:2002-01-17 22:06
是不是说2131内部有8K的RAM随便我来存数据呢?
|
|
16楼#
发布于:2002-01-17 22:57
主要用来存程序,所说的“soft solution”就是基于这个ram的,可以更改配置和升级
|
|
|
17楼#
发布于:2002-01-18 21:28
我的理解是8k的ram在地址上是和51的内部ram统一编址的,但是载下载程序时,好像也把程序的个别部分放在51的内部ram中。
|
|
18楼#
发布于:2002-01-18 21:54
我在编译器里面想开多大的缓冲都没有问题
它好像是不检查越界的 是吗? |
|
19楼#
发布于:2002-01-19 09:12
那应该是和硬件有关的,但可能在软件中能设定一下,不过我没找到
|
|