MSP430F149嵌入式系统中FLASH K9F1G08U0M的应用

原文地址【http://www.elecfans.com/emb/xitong/20111005219775.html】

        NAND Flash是采用NAND结构技术的非易失存储器,具有ROM存储器的特点。NAND FLASH 存储器将数据线与地址线复用为8条线,另外还分别提供了命令控制信号线,因此,NAND FLASH 存储器不会因为存储容量的增加而增加引脚数目。从而极大方便了系统设计和产品升级。

  1 元件介绍

  1.1 MSP430芯片

  MSP430系列单片机是TI公司推出的16位RISC系列单片机,该系列是一组超低功耗微控制器,供电电压范围为1.8V—3.6V。考虑到本系统有微体积、低功耗的要求,在此选用MSP430F149,它具有60KB Flash Memory、2kb RAM、有8个通道采样率为200K的12位A/D转换器、硬件乘法器、2个带有大量捕获/比较寄存器的16位定时器、看门狗等,为系统的进一步开发扩展提供了良好的基础,特别适用于较复杂的系统开发。

  1.2 NAND Flash

  NAND结构Flash是Sumsung公司隆重推出并着力开发的新一代数据存储器件,在此选用芯片K9F1G08U0M,电源电压2.7V—3.6V,与MSP430F149一致,功耗低,容量可达128M×8Bit,按页进行读写,按块擦除,通过I/O口分时复用作为命令引脚/地址引脚/数据引脚。有很高的可靠性。

  2 硬件设计

  本系统中,K9F1G08U0M的数据输入输出口与单片机的P6端口相连。片选信号与单片机的P2.4相连, CLE(命令锁存控制端)、ALE(地址锁存控制端)、WE(写操作控制端)、RE(读操作控制端)分别通过控制单片机P3.3、P2.3、P2.6、P2.5引脚的电平,决定对FLASH

  进行控制字操作、地址操作、写操作还是读操作。在此不使用写保护功能,所以WP接高电平。FLASH与单片机的部分连接组成电路如图1所示。

  

MSP430F149与K9F1G08U0M的连接

 

                                                                                                             图1 MSP430F149与K9F1G08U0M的连接

  3 软件设计

  MSP430的开发软件较多,本文采用IAR公司的集成开发环境—IAR Embedded workbench 嵌入式工作台,利用C430(MSP430系列的C语言)编写调试。单片机对FLASH的操作主要有写、读、擦除。

  3.1 写操作

  向FLASH内部写数据是基于页的,K9F1G08U0M的命令字、地址和数据都是通过并行口线I/O0—I/O7在控制信号的作用下分时操作。地址A0—A10,A11—A26通过I/O0—I/O7分4次送入。同时K9F1G08U0M芯片提供了一根状态指示信号线 ,当该信号为低电平时,表示FLASH可能正处于擦除、编程或读操作的忙状态;而当其为高电平时,则表示为准备好状态,此时可以对芯片进行各种操作。本系统须写入126M数据写操作流程图如图2。

        3.2 读操作

  读操作有串行页读、连续行读、随机读3种类型。在此选用串行页读取。首先将读操作控制字00h输入,再写入地址,写入控制字30h,待 信号变高后,将本页数据依次读出。随后再改变页地址读出其它页内数据。操作流程图如图3。

  

 

                                                                                                                              图2 写操作流程图

  

读FLASH数据程序流程图

 

                                                                                                                     图3 读FLASH数据程序流程图

  3.3 擦除操作

  任何FLASH器件的写入操作都必须在空的或已擦除的单元内进行,因此在进行下一次存储数据之前都必须对FLASH进行擦除操作。

  擦除操作基于块,K9F1G08U0M内有1024块,块地址的输入需要两个周期,块操作的地址只有A18—A27有效,A12—A17备忽略。在地址后被送入的块擦除命令(D0h)启动块擦除操作,待 信号变高后,送入命令字70h,读出I/O0的值来判断数据擦除是否成功。图4为块擦除流程图。

  

 擦除FLASH程序流程图

 

                                                                                                                 图4 擦除FLASH程序流程图

在此给出写操作部分程序,读操作和擦除操作均可参考文中流程图来编程,值得注意的是其它具体写地址操作应仔细阅读

  K9F1G08U0M芯片资料。

  #include

  #define CLE BIT3

  #define ALE BIT3

  #define WE BIT6

  #define CE BIT4

  #define RE BIT5

  #define RB BIT7

  void ReadFlash(); //读FLASH子程序

  void WriteFlash(); //写FLASH子程序

  void inituart(void); //初始化异步串行通信

  void Write10h(); //写控制字10h子程序

  void WriteCommand(); //写命令字写地址

  void ClrFlash(); //擦除FLASH子程序

  unsigned int k,i,a

  void main ()

  {

  WDTCTL = WDTPW + WDTHOLD;

  BCSCTL1 &= ~XT2OFF;

  do

  {

  IFG1 &= ~OFIFG;

  for (iq0=0x05; iq0>0; iq0--);

  } //检验晶振是否起振

  while ((IFG1 & OFIFG)!= 0);

  BCSCTL2 = SELM_2 + SELS + DIVS0;

  //SMCLK选择2分频后的4M

  While(k<0xFC00) //页数<64512时执行

  {

  WriteCommand(); //调用写控制字写地址子程序

  While(i<2048) //字节数<2048时执行循环

  {

  WriteFlash(); //调用写数据子程序,

  32个字节

  i=i+32; //字节数+32

  }

  i=0; //一页写完后,字节数置0

  Write10h(); //调用写10h子程序

  while(!(P2IN & RB)); //等待RB信号变高

  k++; //页数+1

  }

  k=0; //页数置0

  LPM4; //全部写完后,MSP430进入低功耗模式4

  5 结束语

  实验表明: 整个系统简单可靠、功能完善、运行稳定,具有实用价值。本文完成了对FLASH的写操作、读操作及擦除操作,达到了系统的微体积和低功耗特性。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
特 性 2 • 低 电 源 电 压 范 围, ,1.8V 至 至 3.6V • 片 载 比 较 器 • 超 低 功 耗 • 具 有 可 编 程 电 平 检 测 功 能 的 电 源 电 压 监 控器 器/监 监 视 器 – 激 活 模 式: :270μA( (在 在 1MHz 频 频 率和 和 2.2V 电 电 压 • 欠 压 检 测 器 条 件 下 ) • 引 导 加 载 程 序 – 待 机 模式 式 (VLO) :0.3μA • 串 行 板 上 编 程 、 无 需 外 部 编 程 电 压 、 由 安 全 熔丝 丝 实 – 关 闭 模 式( (RAM 保 保 持 ): :0.1μA 现 的 可 编 程 代 码 保 护 • 可 在 不到 到 1μs 的 的 时 间 里 超 快 速 地 从 待 机 模 式 唤 醒 • 系 列 产 品 包 括 : • 16 位 位 精 简 指 令集 集 (RISC) 架 架 构, ,62.5ns 指 指 令 周 期 时 – MSP430F233 间 – 8KB+256B 闪 闪 存 存 储 器 , • 基 本 时 钟 模 块 配 置 : – 1KB RAM – 内 部 频 率 高达 达 16MHz – MSP430F235 – 内 部 极 低 功 耗 低频 频 (LF) 振 振 荡 器 – 16KB+256B 闪 闪 存 存 储 器 – 32kHz 晶 晶 振 – 2KB RAM – 具有 有 4 个 个 精 度为 为 ±1% 校 校 准 频 率 且 高达 达 16MHz – MSP430F247 ,MSP430F2471 (1) 的 内 部 频 率 – 32KB+256B 闪 闪 存 存 储 器 – 谐 振 器 – 4KB RAM – 外 部 数 字 时 钟 源 – MSP430F248 ,MSP430F2481 – 外 部 电 阻 器 – 48KB+256B 闪 闪 存 存 储 器 • 带 内 部 基 准 、 采 样 与 保 持 以 及 自 动 扫 描 功 能的 的 12 – 4KB RAM 位 模数 数 (A/D) 转 转 换 器 – MSP430F249 ,MSP430F2491 • 具有 有 3 个 个 捕获 获/比 比 较 寄 存 器的 的 16 位 位 Timer_A – 60KB+256B 闪 闪 存 存 储 器 • 具有 有 7 个 个 捕获 获/比 比 较 寄 存 器 ( 带 有 影 子 寄 存 器 ) 的 – 2KB RAM 16 位 位 Timer_B – MSP430F2410 • 4 个 个 通 用 串 行 通 信 接口 口 (USCI) – 56KB+256B 闪 闪 存 存 储 器 – USCI_A0 和 和 USCI_A1 – 4KB RAM – 支 持 自 动 波 特 率 检 测 的 增 强 型 通 用 异 步 接 收 发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值