ホーム フォーラム Texas Instruments マイコン MSP430 PMM29の回避策(3)について

このトピックには2件の返信が含まれ、2人の参加者がいます。6 年、 5 ヶ月前クライフ クライフ さんが最後の更新を行いました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #1935 返信

    kkk
    参加者

    PMM29の回避策(3)について

    デバイス型番:MSP430FR6879

    <p>PMM29の回避策(3)に下記のコードを追加するように記載されていました。</p><p>// PMM29 workaround.<br />FRCTL0 = FRCTLPW;<br />GCCTL0 = FRPWR; //clear FRLPMPWR while keeping FRPWR set<br />FRCTL0_H = 0; //re-lock FRCTL<br />// End PMM29 workaround</p><p>『FRCTL0 = FRCTLPW』と『FRCTL0_H = 0』はレジスタの書き込み許可と書き込み禁止をしていると分かるのですが、『GCCTL0 = FRPWR』が何をしているのか分からないので処理内容を教えてください。</p><p>「FRPWRを維持したままFRLPMPWRをクリア」とコメントが付いていますが、『GCCTL0 = FRPWR』だけでFRLPMPWRもクリアされるのでしょうか?</p><p> </p>

    #1938 返信

    kkk
    参加者

    <p>投稿内容がバグっており、投稿内容の編集も削除もできないので、返信で再度投稿します。</p><p> </p><p>PMM29の回避策(3)について、『FRCTL0 = FRCTLPW』と『FRCTL0_H = 0』はレジスタの書き込み許可と書き込み禁止をしていると分かるのですが、『GCCTL0 = FRPWR』が何をしているのか分からないので処理内容を教えてください。</p><p>「FRPWRを維持したままFRLPMPWRをクリア」とコメントが付いていますが、『GCCTL0 = FRPWR』だけでFRLPMPWRもクリアされるのでしょうか?</p>

    #1956 返信
    クライフ
    クライフ
    従業員

    kkk様

    お問い合わせ頂き、ありがとうございます。

    ◆『GCCTL0 = FRPWR』の処理について

    上記のコードはC言語において、GCCTL0レジスタにFRPWR(=0x04)を代入する処理をしています。

     

    GCCTL0のリセット直後(初期状態)の値は、0x06(2bit FRPWR = 1 , 1bit FRLPMPWR = 1の状態)です。

    ユーザーズガイド GCCTL0のレジスタページに初期状態の数値とレジスタビットについて記載がございます。

    • P293 7.10.2 GCCTL0 Register

    ソースコード上の「FRPWR」はmsp430frxxxx.h(xは使用されているデバイス型番の下4桁数値)にて定義されている定数値で、その値は0x04になります。

    『GCCTL0 = FRPWR』によって、GCCTL0レジスタを0x06から0x04(2bit FRPWR = 1 , 1bit FRPWR = 0の状態)にセットします。

    これにより、「FRPWRを維持したまま、FRLPMPWRをクリア」させることができます。

     

    以上、よろしくお願い致します。

    Cruijff

3件の投稿を表示中 - 1 - 3件目 (全3件中)