'ATMEL'에 해당되는 글 2건
- 2008.10.30 AVR debug-WIRE - 나중을 기약
- 2008.10.29 ATMEL AVR ATmega168V - 시작
AVR debug-WIRE - 나중을 기약

ATmeag168V는 chip이 너무 작다 보니 그 흔한 JTAG 하나 없더군요.
대신에 debug-WIRE 라는 것이 있더군요. AVR JTAGICE mkII 장비가 있어야만 사용할 수 있구요.
다행인지 불행인지 장비가 있는 관계로 시도해 보기로 하였습니다.
그런데 이게 복병이었습니다. 후회 막급입니다.
AVR ISP 모드로 연결이 잘 된 것을 확인한 후, DWEN enable을 했습니다.
그리고, AVR JTAGICE mkII와 RESET, Vcc, GND 만을 연결하였습니다.
Error - RESET 라인에 문제가???
datasheet를 읽어보니, RESET 라인의 pull-up을 10k ohm 이상 달라는 군요 그리고 C도 달지 말라는 군요.
뭐 재주가 없으니, 하라는 대로 해야죠. pull-up 바꾸고, C는 떼어냈습니다.
오호 debug-WIRE 연결이 되었습니다.
AVRStudio4로 debug binary올려서 연결했습니다.
Code 화면까지 나와서 RUN 해 보았습니다.
뭔가 돌아가는 것 같은데, 알 수가 없군요.
막상 동작하는 것을 보니, 시간이 좀 걸리는 모드인 것 같군요.
다시 AVR ISP 모드로 전환하려면, AVR ISP 라인을 모두 연결하여야 한다는 군요.
모두 연결하고, disable debugg-WIRE button을 눌렀습니다.
메시자가 뜨는 군요. "disable debug-WIRE를 설정한 후에, ISP 모드로 전환된 것을 확인한다" 고 하는데, 확인이 안된다는 error가 발생하였습니다.
난감...
이제 이 보드는 debug-WIRE 모드나, AVR ISP 모두 둘 다 안되는 군요.
결국 보드 3장 날리고, 포기하기 까지 3시간 걸렸습니다.
(모드 전환을 위해서는 pull-up과 C를 떼었다 붙였다. H/W하는 친구에게 미안했습니다.)
나중에 시간나면 debug-WIRE를 제대로 함 해 볼까 합니다.
여하튼 결국은 ISP로 갑니다.
AVR FAE 왈, debug-WIRE 안 써 봤는데요. 그냥 ISP로 합니다.... 더 군요..
AVR 사용하는 사람들이 AVR ISP 사서 하는게 대부분이 겠더군요. (가격이 싸니까요)
쓸데없이 보내버린 3시간 어디에 하소연할 데도 없군요.
몇 가지 언급하면, (앞의 XTAL도 연관이 있을 듯)
1. 먼저 ISP 모드에서 XTAL 설정을 명확하게 하고 동작을 확인 한 후에 debug-WIRE 전환 시험을 한다.
2. debug-WIRE / ISP를 사용하려면, RESET line의 pull-up을 10k ohm 이상을 단다. (C는 달지 않는다)
(다른 device와 RESET 라인을 공유하는 것은 바람직하지 않다.)
주말 사이에 ATMEL 사의 ATmeag168V를 사용하였습니다.
이전에 AT90USB1287을 사용해서 그런대로 AVR이 친숙하기 때문에 사용했건만, JTAG이 없다 보니, 조금 불편하군요. 뭐 어쨌든 package도 작고, 가격도 싸니 (다른 솔루션에 비해서는 따져봐야겠지만요) 그런대로 쓸만합니다.
AVR로 맨 먼저 할 일은 ISP 혹은 JTAG으로 연결하여 칩의 정보(signature)를 읽어 보는 것입니다.
그런데, 억! 읽히지가 않습니다.
직접 손대보는 것은 처음이니, 음 우여 곡절 끝에 읽었습니다.
datasheet에 있지만 다시 설명하면,
1. 우선 AVR 칩은 무조건 Internal RC osc로 CPU_CLK를 사용하도록 되어 있습니다.
2. RESET 라인은 4.7k pull-up, 10uF C pull-down으로 설정되어 있으며,
3. XTAL1 및 XTAL2 단자는 모두 Open 상태로 놓으면,
이제야 AVR ISP로 chip signature가 읽힙니다.
작업 순서를 정리하면,
1. XTLA1 및 XTAL2 단자에 모두 Open 상태로 놓는다.
2. ISP로 연결하여, 외부 XTAL 모드로 설정: (10MHz XTAL을 사용하기 때문에 8MHz 이상으로 설정하였음)
3. XTAL1 및 XTAL2 단자에 crystal 및 회로를 연결합니다.
4. ISP로 다시 연결하여, chip signature를 읽는다: OK.
뭐 이후 부터는 정상적으로 사용할 수 있더군요.
그런데 만일 여기에서 다시 Internal RC osc로 설정하면, AVR ISP와 AVR간의 통신이 더 이상 되지 않더군요. 그래서 XTAL1 과 XTAL2의 crystal을 떼고 통신하면 통신이 됩니다.
뭐 간단한 것인데, 이것 때문에 2시간 낭비했습니다.