这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » Lpc2210,flash Lpc2210是怎么符合flash的读写时序的,糊涂

共2条 1/1 1 跳转至

Lpc2210,flash Lpc2210是怎么符合flash的读写时序的,糊涂了,请高手指教

院士
2006-09-17 18:14:16     打赏
Lpc2210,flash Lpc2210是怎么符合flash的读写时序的,糊涂了,请高手指教



关键词: Lpc2210     flash     怎么     符合     读写     时序    

院士
2006-12-22 22:43:00     打赏
2楼
问 #define Fosc            11059200
#define Fcclk           (Fosc * 4)
以上是周公lpc2200模板的boot对pll的设置,也就是说2210工作于44MHz下,
按照周公的ARM教程上说ARM7tdmi“能提供0.9MIPS/MHz的指令执行速度”(3.2.1三级流水线),那就算是0.5MIPS/MHz吧(好算些,结论一样),就是说2个cclk可以执行一条指令,2个cclk是(1/22)ns。

lpc启动时MAM被禁止,直接从flash取指(设为外部flash启动),虽然BCFG0的WST(读访问长度)复位值为最大34 cclk(即0.77ns),但是根据SST39VF160数据手册所写,即使是最快的55ns的读周期时间也远远地超过了34 cclk,但为什么周公的smart2200能够用外部flash SST39VF160正常启动呢?

同样的,黄皮书里外部存储器接口1(实验2.15)的例程在写flash前先写入必须的软件命令时序:
(相关宏定义
#define    FLASH_ADDR    0x81000000
#define GetAddr(addr)    (volatile uint16 *)(FLASH_ADDR|(addr<<1))

实际语句:
    ip=GetAddr(0x5555);
    *ip=0xAA;
    ip=GetAddr(0x2AAA);
    *ip=0x55;
    ip=GetAddr(0x5555);
    *ip=0xA0;
从axd里看其产生的汇编语句也就1-3句/条c语句,而SST39VF160数据手册里一个命令的地址就必须保持最小30ns,同样与34 cclk差太多了,但执行却正确。

看来应该是我的时间的计算有问题,但是不知道哪有问题,请高手指教啊! 1: 2个cclk是(1/22)ns?怎么算的?34cclk才0.77ns?LPC2210什么时候成了GHz级的处理器?
2: boot运行的开始频率是不用pll的此时flash是满足要求的,在配置pll之前正确的配置了等待周期就不会到导致取指失败,但是此时的运行速度实在是很慢的,用22x0的用户最好要研究一下把最要求速度的一部分代码放到内部sram运行 3: 2个cclk是(1/22)ns?怎么算的?MIPS是百万条指令每秒,0.5MIPS/MHz,就是1条指令/2cclk,然后44MHz的倒数就是1/44ns(10e-6秒)=1cclk。是这么算的吗?
这样,就算mam有加速,但flash的最小读写周期是固定的,读写一个word还是要几十ns的吧。
应该是算法上有问题,希望大家能给出正确的算法。 4: 错了错了!1ns = 10e-9s!44MHz的时钟,每个时钟周期应该是1/44us = 22.7ns!
5: 44MHz的时钟,每个时钟周期应该是1/44us = 22.7ns!对了。
1ns是1秒的10亿分之一,我还以为ms以下是ns然后才是us,记错了:)。
多谢楼上的提醒。
那么这样的话,就是1条ARM指令/6cclk(2*16bit,6cclk>(2*55)ns)),即使mam加速,mam取指周期MAMTIM的值只能是1-7cclk,而mam每次取指为4个代码字,时间不够啊,教程里还推荐40MHz以上取MAMTIM=3cclk,这个是怎么算的?请大家继续帮助,谢谢。 6: 没人知道吗?还是因为太简单了大家不想帮忙回答一下吗?
我还是新手,希望大家指导一下。版主放假回来的话,也请看一下吧。
是关于楼上的mam加速的问题。
看了一下论坛的老贴,是不是mamtim实际是指一次读flash的操作的cclk,mam取指时是进行了4次的读flash操作,也就是mam一次取指所用周期为(4*2*MAMTIM)=8*3cclk? 7: mam是针对片内flash的片内flash的访问周期为50ns以上,即最高频率20MHz。
所以,CCLK>20MHz,mamtim设为2,CCLK>40MHz,mamtim设为3。 8: mam是针对片内flash的应该不是这样的,因为2210没有片内flash,但是有mam加速。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]