- Low voltage monitors are active during CLK32 low: Bộ theo dõi điện áp thấp đ−ợc kích hoạt trong xuốt quá trình CLK32 ở mức thấp.
4.5.2.3. Bộ định thời Watchdog (WDT)
Tại thời điểm khởi động chíp, WDT khởi đầu là bị đóng. Bit PORS trong thanh ghi điều khiển hệ thống sẽ điều khiển mở WDT. Tại lúc khởi động bit PORS khởi đầu đ−ợc đặt là 1, nó chỉ rõ rằng hoặc sự kiện POR hay XRES đã xảy ra. WDT đ−ợc mở bằng cách xóa bit PORS. Một khi bit này đ−ợc xóa và bộ định thời watchdog đi vào hoạt động thì nó sẽ không thể bị đóng (vì bit PORS không thể đ−ợc set lên 1 bởi vi ch−ơng trình, nó chỉ có thể bị xóa). Cách duy nhất để vô hiệu hóa chức năng watchdog sau khi nó đã đ−ợc mở là thông qua POR hay XRES. Mặc dù WDT bị vô hiệu hóa từ lúc POR hay XRES cho đến hết mã khởi đầu, nh−ng toàn bộ mã ch−ơng trình nên đ−ợc viết nh− thể là nó đang đ−ợc mở. (WDT cần phải đ−ợc xóa một cách định kỳ). Lý do là vì trong mã khởi đầu sau sự kiện WDR (watchdog reset), bộ định thời watchdog đ−ợc mở và tất cả các mã ch−ơng trình cần phải biết điều này.
Bộ định thời watchdog bằng ba lần đếm đầu ra ngắt của bộ định thời nghỉ và vì vậy, khoảng thời gian watchdog bằng 3 lần khoảng thời gian lựa chọn của bộ định thời nghỉ. Khi ngắt của bộ định thời nghỉ đ−ợc xác nhận, bộ định thời watchdog bắt đầu tăng. Khi bộ đếm đếm đến ba, giá trị đếm cuối đ−ợc xác nhận. Giá trị đếm cuối này đ−ợc ghi nhận bởi xung nhịp 32kHz. Bởi vây, tín hiệu reset Watchdog sẽ chuyển lên mức cao sau xung nhịp 32kHz tiếp theo và đ−ợc giữ để xác nhận trong một chu kỳ. Bộ Flip-Flop ghi nhận giá trị đếm cuối của WDT không đ−ợc reset bởi tín hiệu reset WDT khi nó đ−ợc xác nhận, nh−ng lại đ−ợc reset bởi bất cứ một reset nào khác.
Hình 4 - 8: Watchdog reset
Một khi đ−ợc cho phép thì WDT cần phải đ−ợc xóa một cách định kỳ bởi vi ch−ơng trình. Điều này đ−ợc thực hiện với một lệnh viết vào thanh ghi RES_WDT. Lệnh viết này là một giá trị không phụ thuộc, vì thế bất cứ lệnh ghi nào đều xóa bộ định thời watchdog. Nếu vì một lý do nào đó mà vi ch−ơng trình không xóa watchdog trong khoảng thời gian lựa chọn thì mạch WDT sẽ sinh ra một WDR (watchdog reset) tới chíp. WDR t−ơng đ−ơng với những reset khác. Tất cả các thanh ghi đều đ−ợc đ−a về giá trị mặc định. Một điều quan trọng cần phải nhớ về reset Watchdog là nó là khởi đầu RAM có thể bị đóng (IRAM trong thanh ghi CPU_SCR1). Trong tr−ờng hợp này, thành phần của SRAM không bị ảnh h−ởng, vì thế khi WDR xảy ra thì các biến của ch−ơng trình tồn tại xuyên qua sự kiện reset này.
Trong ứng dụng thực hành thì phải biết rằng khoảng thời gian của bộ định thời Watchdog nằm vào khoảng 2 đến 3 lần khoảng thời gian của bộ định thời nghỉ. Cách duy nhất để đảm bảo khoảng thời gian watchdog bằng đủ 3 lần khoảng thời gian của bộ định thời nghỉ là xóa bộ định thời nghỉ khi xóa thanh ghi WDT. Nh−ng điều này là không thể trong những ứng dụng sử dụng bộ định thời nghỉ nh− là một đồng hồ thời gian thực. Trong tr−ờng hợp này thì vi ch−ơng trình xóa thanh ghi WDT mà không xóa bộ định thời nghỉ, điều này có thể xảy ra tại bất cứ điểm nào trong khoảng thời gian nghỉ. Nếu nó xảy ra ở gần giá trị cuối của bộ định thời nghỉ thì kết quả là khoảng thời gian WDT sẽ chỉ lớn hơn 2 lần khoảng thời gian nghỉ.