共1条
1/1 1 跳转至页
[推荐]51 flash文件系统DIY(3)___FAT揭秘
今天说的就是另外一种我们文件系统可用片子,并行flash芯片。在这里用AT 29C040A
或者W29C040,当然其他牌子的芯片也可以用。每种flash的最大可写入次数是不同
的, W29C040在一千到一万次之间,AT29C040A大与一万次, SST29SF040则可达十万次以上。
如果你不想你的flash文件系统用不久就完蛋的话,就用SST的片子吧,话说回来W29C040
是里面最便宜的。
前面已经说过29C040的地址线有19根而单片机只有16根地址线,而且29C040不能把
16根地址线都占了,如果它占了16根地址线,我们的片外RAM就没办法扩展了。可以用P1来锁
存高位地址,让29C040少占一部分地址空间。但单片机的IO口都是比较珍贵的资源,P1口可
以按位寻址,操作很方便。要是用了P1口,将来我们要接个看门狗,外部开关量的检测,时
钟,I2C等等就没有IO口用了。所以我们用外部锁存器来锁存29C040的一部分高位地址。
外部锁存器我们用74373,74373可以锁存8位,我们就用它来锁存29C040的高8位地址
线,还剩下11根地址线把它挂到单片机的总线上去,这样29C040占用了2^11=2048就是
2K的地址空间。事实上由于需要向特殊地址写指令关闭芯片软件数据保护2K空间还不够,至
少要4K的空间。我们还要外接RAM,在这里我们外接 16K的RAM,他被安排在地址空间的
X:0x0000-0x3fff,这样29C040的地址空间就只能在0x3fff之上,这些都要由地址译码线路来
完成。
74373是我们锁存高位地址的,怎么把数据送到373让他锁存下来呢?我们吧373的输
入也接到数据总线上去,通过对单片机的WR信号配合地址信号译码,让我们往一个外部RAM
地址写数据的时候刚好能产生一个锁存信号,写入的数据就被锁存到373中去了。这个信号
需要由选通信号和WR来共同产生,我们也用地址译码线路来完成这部分功能。
地址译码常用3-8线译码器74138,由于我们还要产生74373的锁存信号,WR信号是低有效,选
通信号也是低有效的,而锁存信号是一个上升沿信号,所以把WR信号和选通信号或非一下就
得到了我们的需要的锁存信号。所以我们需要1片74138,一片或门7432和一片非门7404,总共
三片TTL芯片。片子比较多布线会很烦,money也花得多一点,干脆用一片GAL来全部搞掂。
GAL是可编程的数字逻辑器件(PLD),输入和输出是可编程的,对GAL芯片常用ABEL语言来编
程,ABEL语言很简单.我们这里不着重介绍他,GAL片子就用ATMEL的 ATF16V8B吧。(嗯,又是
ATMEL的。申明一点我可没收过ATMEL公司的任何好处费)
下面的ABEL程序是我的一个系统中的译码线路的ABEL程序,这里不做过多说明了.
MODULE addtran
TITLE 'translate address to chip select signal and latch signal for around chip'
"INPUT SIGNAL
WR,A8,A9,A10,A11,A12,A13,A14,A15 PIN 1,2,3,4,5,6,7,8,9;
"OUTPUT SIGNAL
CSRAM,GFATP,CSFAT PIN 19,12,17 ISTYPE 'COM';
"NODE
CSFATP NODE; "定义中间节点
X=.x.;
A=[A15..A8];
EQUATIONS
WHEN(A<=^h3f) THEN CSRAM=0; "RAM选通信号
ELSE CSRAM=1;
WHEN(A==^h63) THEN CSFATP=0; "74373选通信号
ELSE CSFATP=1;
WHEN((A>=^h68)&(A<=^h6f)) THEN CSFAT=0; "29C040选通信号
ELSE CSFAT=1;
GFATP=!(WR#CSFATP); "74373锁存信号
TEST_VECTORS
([WR, A]->[CSRAM,CSFAT,GFATP])
[ X,^h33]->[ 0, 1, 0];
[ X,^h60]->[ 1, 1, 0];
[ 1,^h63]->[ 1, 1, 0];
[ 0,^h63]->[ 1, 1, 1];
[ X,^h68]->[ 1, 0, 0];
[ X,^h6d]->[ 1, 0, 0];
[ X,^h6a]->[ 1, 0, 0];
[ X,^h80]->[ 1, 1, 0];
END
Taowa 2002.10.15
关键词: 推荐 flash 文件 系统 揭秘 我们 地址 锁
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |