zoukankan      html  css  js  c++  java
  • MSP430FLASH小结

    对FLASH编程必须满足编程最小电压2.2V;

    内部FLASH必须在内存定时器设定的工作频率范围内工作,这个频率为257~476KHz。对于FLASH来讲编程和擦除的速度相对较慢。

    MSP430内部集成了Flash控制器。主要由三个部分组成,分别为4个配置寄存器,Flash定时器和编程电压发生器。

    配置寄存器主要用来配置Flash控制器的工作状态,Flash定时器用来产生编程会哦或者擦出操作的时钟。编程电压发生器用于产生编程火花则擦除操作中所需要的电压。

    特别注意的是,从地址空间0xFFFF到0xFFC0是中断向量表的位置,这块区域可以不做中断向量表,也可以作为用户空间使用,但是不建议这样做。如果开启的中断所对应的中段向量表位置被用作用户空间使用,可能会导致中断服务函数发生跳转错误,进而导致代码跑飞。其中,存储在A段的往往存有器件的校准信息,所以对Segment A的操作设立了保护机制。

    在Flash的定时器功能框图中,其时钟源可以是任意一个,通过FSSELx位来完成,选中的时钟源可以通过FNx来进行分频操作。

    对Flash进行擦除,除了进行擦除模式配置,还需要对Flash进行一次假写入,一个Flash的写操作用来启动定时器和电压发生器,在写入之后便会对Flash进行擦除。

    注意:在对Flash进行写操作之前必须进行一次擦除,否则可能会对Flash造成损毁。

    基本步骤:1设置时钟源,得到Flash的工作频率。

         2.

    #include "msp430x14x.h"
    typedef unsigned char uchar;
    typedef unsigned int uint;
    
    int main( void )
    {
      // Stop watchdog timer to prevent time out reset
      WDTCTL = WDTPW + WDTHOLD;
      FCTL2=FWKEY+FSSEL0+FN0;//   时钟源设置,得到Flash的工作频率;
      
      return 0;
    }
    
    void Write_SegA(uchar value)
    {
      uchar * flashP;
      uchar i;
      flashP=(uchar * )0x1080;
      
      FCTL1=FWKEY+ERASE;
      FCTL3=FWKEY;
      *flashP=0;  //假写入已启动擦除操作;
      
      FCTL1=FWKEY+WRT;
      for(i=0;i<128;i++)
      {
        *flashP++=value;
      }
      FCTL1=FWKEY;
      FCTL3=FWKEY+LOCK;
    }
    
    void Copy()
    {
       uchar  * flashPa,*flashPb,i;
       flashPa=(uchar *)0x1080;
       flashPb=(uchar *)0x1000;
       FCTL1=FWKEY+ERASE;
       FCTL3=FWKEY;
       *flashPb=0;
       FCTL1=FWKEY+WRT;
       for(i=0;i<128;i++)
       {
         *flashPb++=*flashPa;
       }
       FCTL1=FWKEY;
       FCTL3=FWKEY+LOCK;
    }
  • 相关阅读:
    UOJ425【集训队作业2018】strings【分块,常数优化】
    UOJ444【集训队作业2018】二分图【构造,结论】
    各种类型转换为字符串类型(ToString())
    ADO.net数据绑定
    关于扫雷游戏学习笔记(二)
    关于扫雷游戏学习笔记(一)
    Luogu P2864 [USACO06JAN]树林The Grove(bfs)
    Luogu P1712 [NOI2016]区间(线段树)
    Luogu P2051 [AHOI2009]中国象棋(dp)
    Luogu P2577 [ZJOI2005]午餐(dp)
  • 原文地址:https://www.cnblogs.com/droidxin/p/3417173.html
Copyright © 2011-2022 走看看