duan1234
驱动牛犊
驱动牛犊
  • 注册日期2009-10-24
  • 最后登录2010-07-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1956回复:3

U盘制作

楼主#
更多 发布于:2010-07-22 22:46
 

描述:FLASH

图片:111.jpg

FLASH
大家好,我想使用AT89C51SND单片机和K9F1208U0M  FLSH芯片制作U盘。可是我不知道单片机对K9F1208U0M  FLSH芯片的WE和RE引脚怎么操作;I/O0-I/O7怎么作为地址和数据复用的。
tishion
驱动牛犊
驱动牛犊
  • 注册日期2010-02-02
  • 最后登录2012-02-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-07-25 22:22
WE
RE
应该是高电平有效的。不确定 你可以去看这个芯片的PDF。
至于端口复用
是根据不同脉冲来选择的 前一个脉冲的IO0-IO7是输入地址
然后锁存,后一个脉冲就可以传输数据
duan1234
驱动牛犊
驱动牛犊
  • 注册日期2009-10-24
  • 最后登录2010-07-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-07-26 22:25
根据不同脉冲来选择的 前一个脉冲的IO0-IO7是输入地址
然后锁存,后一个脉冲就可以传输数据?
能不能举个例子?谢谢
tishion
驱动牛犊
驱动牛犊
  • 注册日期2010-02-02
  • 最后登录2012-02-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-07-27 12:33
详细资料

引 脚 功 能
 
I/O0~I/O 数据输入输出端,芯片未选中为高阻态
CLE 命令锁存使能
ALE 地址锁存使能
CE 芯片选择控制
RE 数据输出控制,有效时数据送到I/O总线上
WE 写I/O口控制,命令地址数据在上升沿锁存
WP 写保护
R/B 指示器件的状态,0为忙,1为闲。开漏输出
Vcc 电源端
Vss 地

①命令锁存使能(CLE),使输入的命令发送到命令寄存器。当变为高电平时,在WE上升沿命令通过I/O口锁存到命令寄存器。

②地址锁存使能(ALE),控制地址输入到片内的地址寄存器中,地址是在WE的上升沿被锁存的。

③片选使能(CE),用于器件的选择控制。在读操作、CE变为高电平时,器件返回到备用状态;然而,当器件在写操作或擦除操作过程中保持忙状态时,CE的变高将被忽略,不会返回到备用状态。

④写使能(WE),用于控制把命令、地址和数据在它的上升沿写入到I/O端口;而在读操作时必须保持高电平。

⑤读使能(RE),控制把数据放到I/O总线上,在它的下降沿tREA时间后数据有效;同时使用内部的列地址自动加1。

⑥I/O端口,用于命令、地址和数据的输入及读操作时的数据输出。当芯片未选中时,I/O口为高阻态。

⑦写保护(WP),禁止写操作和擦除操作。当它有效时,内部的高压生成器将会复位。

⑧准备/忙(R/B),反映当前器件的状态。低电平时,表示写操作或擦除操作以及随机读正进行中;当它变为高电平时,表示这些操作已经完成。它采用了开漏输出结构,在芯片未选中时不会保持高阻态。

K9F1208U0M的接口控制方法

K9F1208U0M在应用时必须通过外部微控制器来控制其内容的读写。

K9F1208U0M的数据总线与AT90S8515的数据口PA口相连,用单片机的地址高位引脚PC6作为K9F1208U0M的片选信号(CS);PC5接K9F1208U0M的命令数据选择端(CMD/DATA),而PC4接K9F1208U0M的地址锁存允许端(ALE)。因此,对K0F1208U0M的访问就相当于访问地址分别为0xaf00、0x9f00、0x8f00的三个端口,分别对应K9F1208U0M的命令端口、地址端口、数据端口。因此,对于单片机而言,对K9F1208U0M的命令、地址和数据操作可通过不同的端口进行,简化了K9F1208U0M读写控制的难度。

读写操作流程


进行写操作时先要写入命令字80H,通知K9F1208U0M要进行写操作,然后顺序写入目的地地址和待写入的数据。应该注意的是,地址只需写入一次,便可以连续写入多个字节数据。地址指针的调整是由K9F1208U0M内部逻辑控制的,不用外部干预。写入操作是以页为单位(1~528字节)进行的,即每次连续写入能超过528个字节。这是由于K9F1208U0M的工作方式决定的:写入的数据先保存至Flash内部的页寄存器(528字节)中,然后再写入存储单元。数据写完之后还要给K9F1208U0M发出1个写操作指令10H,通知其将页寄存器中的数据写入存储单元,随后就应该对状态引脚进行查询。如果该引脚为低,表明此次写操作结束。最后的步骤是数据校验,如果采用了ECC校验模式,则此步骤可以省略。

其它操作如读操作、擦除操作等过程均与此类似,可参考相关的器件说明文档。限于篇,这里不再多述。
游客

返回顶部