기술연구소이진용대리 ( jylee@mamiel.com )
목차 1. Introducing AVR Dragon 2. AVR Dragon 을사용하기 3. Unpacking the AVR Dragon 4. Software and USB Setup 5. Board Description ------- (1) Header Pin mounted area ------- (2) Header Pin not mounted area ------- (3) Status LEDs 6. Programming and Debugging ------- (1) In System Programming (ISP) ------- (2) High Voltage Serial Programming Description ------- (3) Parallel Programming ------- (4) JTAG Programming and Debugging ------- (5) debugwire debugging 7. Supported Devices ------- (1) ATtiny13 ------- (2) ATtiny25/45/85 ------- (3) ATtiny2313 ------- (4) ATmega48/88/168 ------- (5) ATmega8 ------- (6) ATmega32 ------- (7) ATmega128
1. Introducing AVR Dragon AVR Dragon 은 Atmel 사에서새로나온저가형개발툴이다 AVR Dragon 은 AVR 시리즈 device 들의모든프로그래밍모드를지원을한다. AVR Dragon 은또한 32Kbyte 프로그램메모리이하의 device 들의 emulation 을지원한다. 새로운 Device 들을 AVR Dragon 이지원하기위해서는 AVR Studio 를항상 Update 를해놓는다. 2. AVR Dragon 을사용하기 (1) AVR Dragon 을 PC 에연결하기전에 AVR Studio 와 USB Driver 를설치한다 (2) AVR Studio 는 4.12 Service pack 3 또는그이후 version 을설치한다 (http://www.atmel.com/avrdragon) (3) AVR Dragon 을 PC 에연결한다그리고 PC 상에서 new hardware(avr Dragon) auto install 을실행한다 (4) AVR Studio 를실행후 AVR Dragon Dialog 단추를클릭한다 (5) AVR Dragon 과 Target Board 를연결한다 3. Unpacking the AVR Dragon AVR Dragon 상자를열면 AVR Dragon tool 이들어있고인터넷으로링크되어있는 Software 가있다 안에 CD 는없다. Software 는오직인터넷으로만 Download 받을수가있다 - 상자안에는없지만 User 가필요한품목들 (1) PC 의 USB 커넥터 (2) USB 케이블 (3) AVR Studio 4.12 version 과 Service pack 3 (4) 6/10 Pin Header connector - System Requirements (1) Pentium 2 이상 (2) Windows98, Windows ME, Windows2000 or Windows XP (3) 64 MB RAM
(4) AVR Studio 4.12 version 과 Service pack 3 (5) PC 의 USB port, self-powered(500ma required) (6) 소프트웨어를다운로드하기위하여인터넷이연결이되어있어야함 4. Software and USB Setup AVR Dragon 을 USB Driver 가 Setup 이되기전에는 PC 에연결하지않는다 USB Driver 는 AVR Studio 가설치될때함께설치가된다. AVR Studio 가설치될때아래와같은화면이나오면필히 Install/upgrade USB driver dialog box 를클릭한다 AVR Studio 를설치를한후 AVR Dragon 을 PC 에연결하면아래와같이새로운 Hardware 를찾았다는창이 나온다 (AVR Dragon 은 USB 에서전원을받는다 )
Install automatically 를클릭하고 Next 를클릭한다. 자동으로 AVR Dragon 의장치드라이버가설치가된다장치드라이버가설치가된상태에서 AVR Dragon 이연결이되면 AVR Dragon Board 상의 green LED 가점등이된다만약장치드라이버가설치가됬음에도불구하고 AVR Dragon 이연결이안되면 PC 를재부팅한다 5. Board Description
(1) Headers Pin 이실장이되어있는영역 AVR Dragon 에는 3 개의 Header Pin 이실장이되어있다 - ISP Header : User 가 ISP 나 debugwire 용으로사용한다 - JTAG Header : User 가 JTAG 용으로사용한다 - VCC Header : 외부확장영역에 VCC 와 GND 를공급할때사용또는외부 Target Board 에전원을공급할때사용한다 (max 300mA 가넘지않도록한다 ) (2) Header Pin 이실장이되어있지않은영역 - HV_PROG Header - EXPAND Header - 40-pin DIP socket - 28-pin DIP socket Expand Header 는 28Pin DIP socket 과 40Pin DIP socket 하고연결이되어있어 AVR Dragon 내에서각 socket 에 Device 를꼽고 ISP, JTAG, VCC, GND 등을연결하여 ISP Programming, JTAG debugging, debugwire debugging, High Voltage Programming 등을실시할수있다
(3) Status LEDs AVR Dragon 은 2 개의 LED 가있는데 2 번 LED 는 Power LED 이다. 이는 AVR Dragon 에전원이공급이되면 Green 으로점등 1 번 LED 는 Status LED 이다이는 AVR Dragon 의상태를 User 에게알려주는 LED 이다. AVR Dragon 을사용하면서 Error 가생기는점은 LED 의상태를보고현재 AVR Dragon 의상태가어떤지파악을할수가있다. 6. Programming and Debugging (1) In System Programming (ISP) 외부 Target Board에아래와같이쉽게연결을할수가있다 Target Board의전원은 1.8V ~ 5.5V 범위안에들어와야한다 ISP Interface 는기존의 ISP Interface 6pin Header Connector (2.54mm) 와같다. 아래의그림에서빨간색으로표시된부분이 1 번 (MISO) 이다 debugwire 연결도 ISP header 를통하여연결을한다 (VCC,GND,RST)
AVR Dragon Target Board (2) High Voltage Serial Programming Description 적은 Pin 의 Device 들은 Full Parallel Programming 을지원하기에는 Pin 수가너무작다. 그러므로이런적은 Pin 수의 Device 들은 Full Parallel Programming 을사용하지않고대신에 Serial 방식의 High Voltage Programming 을사용한다 외부 Target Board 에선을연결해서쓰기위해서는많은제약이따른다. 우선 HVSP(High Voltage Serial Programming) 은 Level converter 가없고 Programming 시 Reset line 에 12V 가흐르는데 Target Board 에이 12V 를제어할수있는회로가구성이되어있어야하는많은제약이따른다그러므로 HVSP 방식으로 Programming 을할때에는 AVR Dragon 에실장되어있는 28Pin 이나 40Pin DIP Socket 을사용을한다 (ISP 와같이외부 Target Board 를 Program 지양 ) HVSP 방식으로 Programming 을해야하는 Device 들 ( 그림은 ATtiny45 HVSP 방식 Programming 연결도이다 ) ATtiny13, ATtiny25, ATtiny45, ATtiny85 (AVR Dragon 에서지원하는 Device 들이다 )
(3) Parallel Programming 많은 Pin 수의 AVR Device 들은 Parallel Programming (PP) 방식을지원을한다이방식은 AVR Device 가어떠한 fuse ( 예를들어 ISP Disable, JTAG Disable, Reset Disable ) 들이걸려있어도또한어떠한 Lock bit 가걸려있어도모든 AVR Device 들의상태를읽어드려 Programming 할수있는방식이다 예 ) ISP 방식으로 ATmega32 를 Programming 을하다가 ISP Disable 을하면 ISP 장비로는더이상 Download 가 안된다 이럴때 PP 방식으로 Chip 을읽어드려다시 ISP Enable 을할수가있다 마찬가지로 PP 방식을사용을하려면 AVR Dragon 의 28Pin 이나 40Pin socket 을사용한다 (4) JTAG Programming and Debugging AVR Dragon 에실장되어있는 JTAG Header 는표준 JTAG Pinout 이다주의할점은 JTAG Header 를통하여 AVR Dragon 의 Power 를 Target Board 에공급하지않는다. Target Board 는 AVR Dragon 과분리된전용의 Power supply 를쓰는것을권장하며만약여의치않을경우는 AVR Dragon 의 VCC Header 를통하여전원을공급한다 ( 그러나공급받는 Target Board 의전원은 5V max 300mA 가넘지않도록한다이유는 AVR Dragon 의전원은 USB Port 를통하여공급을받는데 AVR Dragon 의소모전류 max 200mA + Target Board 전류 300mA 합이 500mA 가넘어버리면 USB Port 로공급하는전원전류허용치 500mA 를넘기때문에 PC USB Port 가망가질수있다 ) AVR Dragon 에있는표준 JTAG Port 는일반 JTAG 처럼 Programming 도가능하고 Debugging 도가능하다 Debugging 자체가처음에 Programming 을한다음에 PC GUI 환경 (AVR Studio) 에서 AVR 의 PC(Program Counter) 를제어하는방식이므로일반적인 Programming 이나 Debugging 이가능하다
ntrst Pin 은사용하지않는다. 이 Pin 은후에다른장비와의호환성을위해남겨놓는다 nsrst Pin 은정확한에뮬레이션동작을하는데꼭필요한 Pin 은아니지만만약 Program 을하다 MCUCSR Register 의 JTD bit 가 set 이되면 JTAG 은 Disable 이된다이때 AVR Dragon 이 Target AVR 에다시 Program 을하기위해서는 Reset line 을 Control 할수있는이 nsrst Pin 이연결이되어있어야한다 Connecting AVR Dragon to Target Board AVR Dragon 은여러개의 Device 의 JTAG Chain 을지원한다 1. JTAG Chain 을사용하기위해서는모든 Device 들은 TMS,TCK 를 AVR Dragon 하고공용으로연결을한다 2. AVR Dragon 의 TDO 단자와첫번째 Device 의 TDI 단자와연결 3. 첫번째 Device 의 TDO 단자와두번째 Device 의 TDI 단자와연결 4. 두번째 Device 의 TDO 단자와세번째 Device 의 TDI 단자와연결 마지막 Device 까지연결 5. 마지막 Device 의 TDO 단자와 AVR Dragon 의 TDI 와연결을한다 (5) debugwire debugging 적은 Pin 수의 AVR Device 들은 JTAG 기능을지원하기에는 Pin 수가너무적다그래서 Pin 수가적은 Device 들은 debugwire 라는방식의통신방식으로 debugging 을한다. 이방식은 Reset line 으로통신을하는방식이다 AVR Dragon 과 Target Board 끼리 debugwire interface 를하기위해서는 3 개의선이필요하다 ( VCC, GND, RST ) Target Board 와의통신은오직 Reset Pin 하나로만통신을한다. 그러나이통신이가능하기위해서는 fuse bit 중의 DWEN bit 가체크 ( 체크가되면 0 이다 ) 되어있어야한다. 만약 Target Board 의 AVR Device 가 DWEN bit 가체크가되어있지않다면 ( 1 이라면 ) AVR Dragon 과 Target Board 와 debugwire interface 는불가능하다 Note. 1. debugwire 와 ISP 는둘다사용할수가없다 ( 둘중의하나만사용해야한다 ) 2. 처음 AVR Device 는공장출하시 ISP 가 Enable 이되어있다 3. debugwire 기능을사용하려면처음 ISP 로 debugwire Enable 을체크한다해당 fuse 를체크를하면경고창이뜬다. 해당경고메세지는이 fuse 를체크하면 ISP 는더이상안된다는경고메시지다확인을누르고넘어가면 debugwire 가 Enable 된다. debugwire 가 Enable 이되면더이상 ISP 장비는붙지않는다. 이후로는해당 AVR Device 는 debugwire 아니면 High Voltage Programming 방식으로만 Program 할수가있다.
AVR Dragon 내의 debugwire 커넥터는 ISP 커넥터와공용으로쓴다. ISP 커넥터상에서 Target Board 와연결을할때에는 ISP 커넥터상의 VCC, GND, RST 이렇게 3 선을 Target Board 와 1:1 로연결을하면된다 Note. 1. debugwire 연결을할시 Reset line 에 10K 저항을달아준다 2. Reset line 에연결된 Capacitor 는제거를한다 3. Reset line 에기타다른 Device 나 logic 에연결이되어있으면제거를한다 4. debugwire fuse (DWEN = 0) 하기전에는필히!!! 그전에 fuse bit setting 을마쳐야한다 - Crystal 관련 fuse 나 BOD(Brown Out Detection) 관련 fuse 는 DWEN fuse 를체크하기전에해야한다 - DWEN fuse 가체크가되면해당 fuse 들을건들수가없다 - debugwire 는기타 fuse 상태를정의를하고소스코드를 debugging 할때사용을한다고생각하면된다 5. DWEN fuse 를체크하기전에 lockbit 를설정하지않는다 - debugwire 는 AVR 에해당프로그램을 Writing 을한후 AVR 의 Flash Memory 상에서 PC 를컨트롤을한다그러나 AVR 에 lockbit 가설정이되어있으면해당 Flash 에접근이불가능하므로 debugging 은불가능하다 7. Supported Devices
(1) ATtiny13 DeviceSheet Supported programming modes : ISP,HVSP Supported emulation mode : debugwire
(2) ATtiny25, ATtiny45, ATtiny85 DeviceSheet Supported programming modes : ISP,HVSP Supported emulation mode : debugwire
(3) ATtiny2313 DeviceSheet Supported programming modes : ISP,HVSP Supported emulation mode : debugwire
(4) ATmega48, ATmega88, ATmega168 DeviceSheet Supported programming modes : ISP, Parallel Programming Supported emulation mode : debugwire
(5) ATmega8 DeviceSheet Supported programming modes : ISP, Parallel Programming Supported emulation mode : debugwire
(6) ATmega32 DeviceSheet Supported programming modes : ISP, Parallel Programming, JTAG Programming Supported emulation mode : JTAG
( 주 ) 마미엘기술연구소이진용대리 서울양천구신정동 1254 신트리테크노타운 903 TEL : 02-2065-6607 FAX : 02-2065-6608 Mail : jylee@mamiel.com