์ด๋ฒˆ์— ํ…Œ์ŠคํŠธํ•ด๋ณธ ์ œํ’ˆ์€ ATMEL์˜ ATXMEGA32D4์ด๋‹ค. ๊ธฐ์กด์— ์ƒ˜ํ”Œ๋กœ ๋‚ฉํ’ˆ ํ–ˆ๋˜ ๋ชจ๋ธ์ธ๋ฐ, ๋˜ ๋‹ค๋ฅธ ๊ณณ์— ์ƒ˜ํ”Œ๋กœ ๋‚ฉํ’ˆํ•  ์ผ์ด ์ƒ๊ฒจ์„œ ๋‚จ๊ฒจ์ ธ ์žˆ๋˜ ์ž๋ฃŒ๋กœ ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ํŽŒ์›จ์–ด๋ฅผ ๋„ฃ์—ˆ๋”๋‹ˆ, ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค.

์ƒ๋ƒฅํ–ˆ๋˜ ์‚ฌ์ˆ˜๋Š” ์•„๋ฌด ์ฃผ์„๋„ ๋‹ฌ์•„ ๋†“์ง€ ์•Š์€ ์ฝ”๋“œ์™€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ์ž‘์„ฑ๋œ ํšŒ๋กœ๋„๋งŒ ๋‚จ๊ฒจ๋‘๊ณ  ๋– ๋‚ฌ๋‹ค.

AVR๋†ˆ๋“ค์€ ํ“จ์ฆˆ๋น„ํŠธ ์„ธํŒ…์ด ์–ด์ฉŒ๊ณ ํ•˜๊ธฐ ๋–”์— ๊ทธ๋Ÿฐ ๋ถ€๋ถ„์ด ๋ฌธ์ œ์ด์ง€ ์•Š์„๊นŒ ์‹ถ์—ˆ๋‹ค. ๋ฌผ๋ก  ๋‚จ๊ฒจ์ ธ ์žˆ๋˜ ํšŒ๋กœ๋„์™€ ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ธ์ง€๋Š” ํŒ๋‹จํ•  ์ˆ˜ ์—†๋‹ค. ์ •์ƒ์ด๊ธธ ๋ฐ”๋ž„ ๋ฟ์ด๋‹ค.

์•„๋ฌดํŠผ, ํ“จ์ฆˆ๋น„ํŠธ ์„ธํŒ…์„ ๋ณด๋‹ˆ, ์™€์น˜๋… ๊ด€๋ จ ๋‚ด์šฉ์ด ์žˆ์–ด์„œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์ด ์žˆ์—ˆ๋‹ค.

void watch_dog(void)
{
	CPU_CCP = 0xD8;
	WDT_CTRL = 0x1F;
}

์œ„ ์ฝ”๋“œ์— ๋ณด๋ฉด 2๊ฐ€์ง€ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ๋„ฃ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

/* CPU - CPU registers */
#define CPU_CCP  _SFR_MEM8(0x0034)

/* WDT - Watch-Dog Timer */
#define WDT_CTRL  _SFR_MEM8(0x0080)

์œ„ ๋‘ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ์‹œํŠธ์—์„œ ์ฐพ์•„๋ดค๋‹ค.

CPU_CCP๋Š” ์•„๋ž˜์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ณด์ธ๋‹ค. 0xD8๋กœ ์ ์œผ๋ฉด "๋ณดํ˜ธ๋œ I/O ๋ ˆ์ง€์Šคํ„ฐ ๋ณ€๊ฒฝ"์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ฆ‰, ๋ณดํ˜ธ ํ•ด์ œ๋ผ๋Š” ์†Œ๋ฆฌ๋‹ค. ์ด๋•Œ ์ธํ„ฐ๋ŸฝํŠธ๋กœ ๋ฌด์–ธ๊ฐ€ ๋Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋ฉˆ์ถ˜๋‹ค๊ณ  ํ•œ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„๋Š” ์ค‘์ด ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์†Œ๋ฆฌ๋‹ค.

 

WDT_CTRL์€ 0x1F๋กœ 0001 1111 ์ด๋ž€๊ฑด๋ฐ, ์•„๋ž˜๋ฅผ ๋ณด๋ฉด PER์— 0111, ENABLE ํ™œ์„ฑํ™”, CEN ํ™œ์„ฑํ™”๋กœ ๋ณด์ธ๋‹ค. PER 0111์€ 1KCLK์œผ๋กœ ํƒ€์ž„์•„์›ƒ ์ฃผ๊ธฐ๊ฐ€ 1.0s์ด๋‹ค. ์ฆ‰, MCU๊ฐ€ ๋จนํ†ต์ธ์ง€ 1์ดˆ์— ํ•œ๋ฒˆ์”ฉ ์ฒดํฌํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ๋‹ค. ์ง€๊ธˆ์€ 1์ดˆ์— ํ•œ๋ฒˆ์”ฉ ํ‹ฑํ‹ฑ ๊ฑฐ๋ฆฌ๋ฉฐ ์™€์น˜๋…์ด ์ง€์ ธ๋Œ€๊ณ  ์žˆ๋‹ค.

ENABLE์€ ์™€์น˜๋…์„ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ํ™œ์„ฑํ™” ๋น„ํŠธ์ธ๋ฐ, ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋™์‹œ์— CEN ๋น„ํŠธ๋„ ํ™œ์„ฑํ™” ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. CEN์€ ๋ณ€๊ฒฝ ํ™œ์„ฑํ™” ๋ผ๋Š” ๋น„ํŠธ์ด๋‹ค.

์ฆ‰, ์ฝ”๋“œ์—์„œ ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋‹ˆ, ํ“จ์ฆˆ๋น„ํŠธ ์„ธํŒ…ํ•  ๋•Œ๋„ ๋งž์ถฐ์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•

'Embedded HW & FW > ATmel (AVR)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[PIC] MPLAB IPE๋กœ ํŽŒ์›จ์–ด ๋‹ค์šด๋กœ๋“œ ๋ฐฉ๋ฒ•  (0) 2023.03.21
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."