西東京市にいる組み込みおやじ-電子工作、回路設計、ファーム TIPS

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い気づきなどを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
<< 自分の書きたいプログラムを書く愚 | main | 9月21,22にソーラーバイクレース >>
MSP430のフラッシュ書き換え
0
    こんにちは、ビーコンの菅原です。
    MSP430には、パラメータなどを記憶しておくためのFlashROM領域が4つ用意されています。これをフラッシュ情報メモリとか INFO領域なんて呼んでます。
    FlashROMの書き込みや消去をしている間、プログラムが止まるので、その間、何してればいいとか、RAMにいないといけないみたいなことはありません。これがマイコンの機能として組み込まれているところもあって、消去や書き込みは他のマイコンと比べてめちゃくちゃ簡単ですね。
    たとえば以下のような感じです。
    0x1080番地の領域= INFOB をイレースして、先頭に'A'の文字を書き込むです。
    int i;
    char *Flash_ptr,*p;
    Flash_ptr = (char *)0x1080;               // Initialize Flash pointer
    FCTL2 = 0xA5C0 + 47;
    FCTL3 = FWKEY;                            // Clear Lock bit
    FCTL1 = FWKEY + ERASE;                    // Set Erase bit
    *Flash_ptr = 0;                           // Dummy write to erase Flash seg
    FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
    *Flash_ptr = 'A';                   // Write value to flash
    FCTL1 = FWKEY;                            // Clear WRT bit
    FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
    ここで、忘れてはならないのが、 FCTL2の設定です。
    なぜかサンプルソースなんかにも触れられていませんが、FCTL2はフラッシュ・メモリのタイミング・ジェネレータのクロックを決定しています。
    たとえば 16MHzでSMCLKでFlashにアクセスしたい場合には、以下のような設定がよいでしょう。
    FCTL2 = 0xA5C0 + 47;
    fFTG = 257kHz~476kHzになるようにしますが、ここでは (47+1)分周すると言う意味です。
    16MHz を (47+1)分周 =  約333kHz となり、収まりますね。。
    動作周波数が変わると当然ここのクロックを変えないといけません。
    しかし、忘れてしまいがち。
    しかも、これがまた、クロックが外れている場合、全部だめじゃなくて書き込める個体と書き込めない個体が出てきたりするので、気がつかないと、ついつい、マイコンの不良を疑って、マイコンを交換してしまったりと、変な方向にいきそうになります。
    そのほか、フラッシュROM書き込みの不具合がでるのが電源電圧が低くなっているときですね。
    Flashが書き込めない場合には、電源電圧かFCTL2クロックを確認すれば、なんとかなるのではないかと思います。
    JUGEMテーマ:組み込み開発
    | ビーコン菅原 | MSP430マイコン | 17:36 | comments(0) | trackbacks(0) |









    http://blog.suga41.com/trackback/254
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
    << May 2018 >>
    + RECOMMEND
    + RECOMMEND
    + SELECTED ENTRIES
    + RECENT COMMENTS
    + RECENT TRACKBACK
    + CATEGORIES
    + ARCHIVES
    + つぶやき
    + MOBILE
    qrcode
    + LINKS
    + PROFILE