[MSP430] Watchdog Timer+ (WDT+)


ここではMSP 430 G 2553 MCUに基づいて記述する.
詳細は製品シリーズによって異なる場合があります.

1.モニタTimer+とは?


Watchdog Timer+は、MCUの動作を監視し、エラー動作が検出されたときにシステムをリセットするタイマーモジュールです.

間違った動作に気づくと、かわいい犬を見せてみて、叫んで状況を教えてくれました.
5つの動作には以下のようなものがあります.
  • エラーアドレスは
  • に近い.
  • 以外はよくわかりません.
  • 電源が不安定だったり、発振器が故障した場合でも動作しますか?正確にははっきり言えない.(確認のために電源や発振器を壊すわけにはいきません…)
    エラー動作が検出された場合は、16ビットタイマを回して、タイマが期限切れになるまで正常に戻るのを待っています.そうしないと、システムがリセットされます.
    MCU内部は、CPUとは独立したモジュールとして存在する.LFX 1 CLKをクロックソースとして使用するか、CPUクロックがまだ存在する限り、独立して動作します.

    2.モニタTimer+の特性


    Watchdog Timer+の特徴を下図に示します.

    目立つことをいくつか話しただけだ.
  • Interval mode
  • watchdog機能を使用しない場合は、通常のインタラクティブタイマーのように使用することもできます.
  • Access to WDT+ control register is password protected
  • WDT+にはパスワードがあり、WDT+が制御するレジスタにパスワードがなく、値を書きたい場合はエラーとみなされます.
  • Control of ^RST/NMI pin function
  • リセット時に制御MCUの^RST/NMIピンをリセットします.RST/NMIピンは、ある信号(HIGH-LOW-HIGH)が承認された場合、MCUをリセットすることを規定しており、これは生成され承認された信号のようである.

    3.ブロック図



    WDTCTL register、Password Compare、Clock Fail-Safe、16ビットカウンタ、InterruptFlagなど、WatchDog動作のすべてが図に表示されます.

    4.相関レジスタ


    WDT+オペレーションでは、以下の3つのレジスタを使用します.
  • WDTCTL - WatchDog Timer Control Register
  • IE1 - Interrupt Enable Register 1
  • IFG - Interrupt Flag Register 1
  • 1. WDTCTL



    2. IE1



    3. IFG1



    5.例

  • エラーアドレスは
  • に近い.

    1.誤ったアドレスアクセス


    誤ったアドレスアクセスによる外部読み取り動作を確認します.
    次の例は、ユーザ領域外のメモリをプログラムカウンタにアクセスするときと、読み取り操作のコードです.
    #include <msp430.h>
    
    int main(void)
    {
        volatile unsigned int i;
    
        WDTCTL = WDTPW | WDTHOLD;  // 와치독 비활성화
        P1DIR |= 0x01;             // P1.0 핀을 output으로 설정
        TAR = 0x3FFF;              // Opcode for "jmp $"
    
        for (;;)
        {
            P1OUT ^= 0x01;         // P1.0 토글
    
            i = 50000;
            do (i--);
            while (i != 0);
    
            ((void (*)())0x170)(); // 접근하면 안되는 주소로 분기 ("call #0170h")
        }
    }
    Watchdogを消したのはWatchdogの動作ですか?