AVR JTAG ICE KIT
AVR JATG ICE는 AVR 메가시리즈의 하드웨어와 JTAG 콘넥터로 연결되며, 하드웨어, 소프트웨어의 디버깅에 사용하는 실시간 에뮬레이션 TOOL입니다.
AVR JATG ICE로 실시간 에뮬레이션 디버깅이 가능한 AVR 칩은 ATmega16, ATmega16L, ATmega162, ATmega162L, ATmega169, ATmega169L ATmega32, ATmega32L, ATmega323, ATmega323L, ATmega64, ATmega64L, ATmega128, ATmega128L, AT90CAN128, AT90CAN128L 입니다.
또한, JTAG ICE는 디버깅 기능이외에 JATG로 칩을 구울 수도 있습니다. 단, ISP 기능은 Mega 칩 시리즈로 제한 되며, 타겟과의 연결은 JTAG 케이블(10핀)로 접속합니다
타겟의 TCK, TDO, TMS, TDI를 AVR JTAG의 TCK, TDO, TMS, TDI로 연결한다. JTAG ICE를 9핀 RS232C 케이블로 PC의 COM 포트에 연결한다 JTAG ICE로 굽는 기능은 ISP와 완전히 똑 같습니다. AVR ATMEGA16은 16K FLASH ROM, 1K SRAM, 512 EEPROM, 2개의 8비트 타이머, 1개의 16비트 타이머, 4개의 PWM, 8개의 10비트 ADC, 32 IO 라인, 1 UART를 내장한 3,000원 대의 저렴한 가격으로, 강력한 1칩 MPU로 JTAG 디버그 기능을 갖고 있습니다.
아트멜의 AVR-JTAG 부트로더는 처음으로 버그를 가지고 있었다. AVR-JTAG의 펌웨어 업그레이드와 AVR-JTAG의 부트로더는 AVR Studio에 의해 해결되었다. 따라서, 최종 버전의 AVR Studio를 설치 해야 하며, AVR-JTAG 내부 부트로더의 펌웨어 업그레이드를 해야 한다.
이유는 AVR-JTAG 내부의 ATMega16 칩의 부트로더 휴즈인 BOOTSZ0, BOOTSZ1와 BOOTRST를 enable로 세트 시켜야 하기 때문이다. BOOTSZ0, BOOTSZ1을 11로 하면 부트로더를 최대 크기로 사용하겠다는 것이며 BOOSTRST를 켠다는 것은 리셋으로 부트로더를 작동시킨다는 것입니다.
참고로 SU1,SU0은 외부 XTAL이므로 JTAGICE는 7.3728MHz 크리스털을 사용하고 있습니다. 외부에 크리스털이 달려 있다며 당연히 이것이 켜져 있어야 합니다, 또한 BODEN는 "브라운 출력 허용" 인데 이 휴즈를 켠다는 뜻은 전원을 켤때, AVR 칩 내부의 브라운 리셋회로를 사용하겠다는 것입니다, (외부에 연결하는 고급 리셋용 칩을 대신하는 기능인데요, 당연히 사용해야 겠지요,,,)
jtag 콘넥터에 /RST의 연결이 없는 어떤 JTAG-ICE는 뚜껑을 열고, 반드시 외부 ISP 5번(/RST)을 업그레이드 하려는 JTAGICE의 /RST 회로에 연결해야 한다. 이제 AVR-JTAG와 ISP는 모두 외부전원이 필요하다. (전용의 Upgrade 콘넥터가 있으면 바로 사용하면 된다)
정품 AVR-ISP를 가지고 있다면, AVR-Studio에서 Tool -> Program AVR ->STK500 or AVRISP를 열고 휴즈를 세팅한다. Boot Flash section size =1024 words, Boot start address =$1C00을 세트한다. 그다음 Boot Reset vector Enable [Boot TRST0]을 세트한다. 발진기는 Ext, Crystal/resonator High freq; Startup =16 CK +64ms를 세트한다. 록 휴즈는 3개를 모두 No lock으로 세트한다음 휴즈 Program을 누른다. (대부분 No lock으로 되어 있음)
그러나 부트로더가 지워졌거나, 새로 입수된 칩이라면, Booice16_rom.hex를 입수하여 rs232와 isp를 연결하고 jtag ice의 전원을 넣은 다음, AVR Studio의 AVRISP에서, Flash rom의 화일에서 선택하고 Flash Program 단추를 눌러서 부트로더를 구워야 한다.
첨부된 내려받기 화일은 BOOTICE16-ROM.HEX (JTAG 부트로더용)와 UPGRADE.EBN (JTAGICE 업그레이드용)입니다.
이제 AVR-JTAG는 BOOTLOADER 모드가 되고 업그레이드 할 수 있다. 전원을 끊고 ISP와 RS232를 끊은 다음. AVR-JTAG와 RS232를 연결하고 전원을 인가한다.
AVR Studio를 열고 TOOLS -> AVR PROG (툴안에서 첫번째 메뉴)을 클릭한다. (이것이 안 열리면 부트로더의 굽기를 실패한 것이다, 처음부터 다시 작업해야 한다)
정상적으로 AVR PROG 창이 열리면, 업그레이드가 1/2은 성공한 것입니다. browse (위에 있는 그림, 우측에 그려놓은 적색 화살표가 가리키는 [...] 단추를 누른다)에서 ...\AVR Tools\JTAGICE\Upgrade.ebn(업그레이드할 코드)을 선택한다음 프로그램을 한다. AVR prog은 새로운 펌웨어를 프로그램할 것이다.
(AVR prog은 stk500과 같은 RS232C로 연결된 칩의 부트로더를 이용하여 프로그램을 굽는 다운로더이나, 이키트는 펌웨어 만으로 AVR prog를 구현합니다) 그러면 프로그램이 알맞게 비교되지 않았다는 오류 메세지를 보여줄 것이다. 그러나 이 오류는 날조이다. 걱정하지 않아도 된다,
이제 AVR-JTAG는 새로운 펌웨어를 가졌고, BOOTLOADER모드 휴즈를 지울 수 있다. 전원을 끈다음, AVR-JTAG와 RS232를 끊고, 다시 ISP와 RS232를 연결한다. PonyProg을 열고 켜놓은 부트로더 Fuse인 BOOTRST를 클릭하여 끈 다음, Write를 누릅니다.
정품 AVRISP는 RS232C 케이블과 AVRISP를 연결하고 AVR Studio의 Tool -> STK500 or AVR ISP -> COM1으로 연결하여 다음과 같이 BOOTSRT 휴즈를 끄고 Fuse Program을 누른다. (부트리셋 휴즈를 끄면 직전에 구워진 JTAG 프로그램이 즉시 작동하게 됩니다)
이제 AVR-JTAG은 새로운 펌웨어를 가졌고, 작동할 준비가 되었다. JTAG를 다시 조립할 수 있다. AVR JTAGICE를 사용하려면, ATMEGA16 이상의 JTAG 기능을 지원하는 AVR 칩을 연결해야 하며 디버깅용 기판의 AVR칩은 ISP용과 다른, 별도로 이름이 붙어 있는 TCK,TMS,TDO,TDI를 JTAGICE와 연결해야 합니다,
전원은 JTAG 케이블 7번핀을 통하여 연결되므로, 점퍼를 끊거나, JTAGICE나 디버그용 AVR 기판의 전원을 어느 한쪽만 사용해야 합니다.
또한 AVR STUDIO를 시작할때, 디버깅용 화일은 ***.cof 를 선택하고, 디버깅 시스템을 SIMULATOR에서 JTAG ICE로 바꾸어 주어야 합니다. 물론 타겟 기판과 JTAGICE는 연결되고 어찌 되었든 전원이 모두 들어가 있어야 합니다.
AVR STUDIO는 수동으로 JTAG ICE를 열지 않아도 디버그 화일을 열어 놓고, 디버깅 시스템이 JTAG ICE로 되어 있다면, DEBUG 버튼만 누르면 자동으로 연결됩니다. 이제 원스텝 디버그, 브레이크 등의 고급 기능인 ICE 디버그 기능이 작동됩니다.
이때 타겟의 리셋을 누르면 JTAG ICE도 리셋이 되는데, (정품 JTAG ICE는 이렇지 않음) 리셋 이후에도 디버깅은 타겟이나 JTAG ICE의 리셋과 관계없이 잘 작동됩니다.
만일 수동으로 JTAG를 통해 타겟의 AVR칩을 휴즈를 하거나, 지우거나 하려면, ISP 없이도 JTAG ICE 만으로 가능합니다, 작동시키던 타겟의 DEBUG를 정지하고, TOOLS -> JTAG ICE -> COM1으로 JTAG ICE를 수동으로 연결하면 ISP와 같은 모든 기능의 휴즈 및 롬의 프로그램 굽기가 가능합니다.
수동연결 시작은 다음과 같습니다. (수동 연결은 JTAG ICE를 ISP 처럼, 프로그래머로 쓰겠다는 뜻입니다.) 수동연결이 타겟과 정상적으로 연결이 안되면 다음과 같은 메세지를 보여 줍니다. 이때는 JTAG ICE와 타겟을 10핀 JTAG 케이블로 연결하고 타겟의 전원을 공급해야 합니다. 타겟의 JTAG 연결은 PC2~PC5에 C포트의 ALT 기능에서 TMS,TCK,TDO,TDI라고 지정되어 있습니다. 물론 이 핀들에는 JTAG 인터페이스에 영향을 주는 IO장치들이 연결되면 안됩니다.
단순 풀업이 되어 있거나, 작동시키지 않으면 신호가 들어 오지 않는 입력장치 이거나, 신호를 주지 않으면 포트에 전혀 영향을 주지 않는 출력장치는 연결되어 있을 수 있으나, JTAG ICE로 디버깅을 하려고, JTAG ICE로 연결하려는 현재는 작동을 시킬 수 없습니다.
또한 JTAG ICE로 연결하려는 타겟은 ISP등으로 OCDEN과 JTAGEN 휴즈가 모두 0으로 세팅되어야 합니다. - 이 문제는 JTAG ICE의 딜레머로, 타겟에 이 휴즈가 0으로 설정되어 있지 않으면, JTAG ICE 스스로는 타겟을 JTAG로 연결하지 못 한다는 모순된 구조입니다.- (대부분의 JTAG 디버깅이 가능한 Mega칩의 휴즈는 구입시 디폴트로 JTAG가 켜져 있습니다) 수동연결이 정상적으로 연결이 되면, ISP와 같은 프로그래머 창이 열리는 것을 볼수 잇습니다. 이 JATG ICE의 수동연결 기능은 AVR ISP와 완전히 동일합니다.
이때 타겟 기판의 전원 전압을 보려면 BOARD 창을 열면 다음과 같이 연결되어 있는 타겟 기판의 전원전압과 ID 등을 보여줍니다. 이때 타겟 기판의 전원 전압이 6.2V가 나온다면, 엉터리 제품이나 키트입니다. PA2(ADC2)에 4.7K를 접지 시키고, 1K를 JTAG 10핀 콘넥터 4번의 VTG에 연결해야 정상적인 타겟의 전원 전압을 정확하게 측정하게 됩니다. 물론 JTAG ICE 안의 4번VTG와 연결되어 있던 VCC는 끊어 버려야 합니다.
만일 소스의 포트와 디버깅 하드웨어의 IO 연결에 문제가 없는 JTAG기능이 있는 MEGA 칩이면, MEGA16으로 컴파일 한 디버깅 화일도, MEGA32 칩에서 정상적인 작동이 됩니다.
단, 타겟 기판의 휴즈는 OSC 등등 자신의 하드웨어에 알맞게 설정을 하여야 하며, BOOTRST는 가급적 꺼주고, OCD 및 JTAG 휴즈는 반드시 켜 놓아야 합니다.
그리고 타겟의 ISP 콘넥터는 AVRISP 등을 연결한 상태로 디버깅 하지 않아야 하며, 타겟에서 JTAG를 켜면, JTAG PORT인 PC2~PC5는 디버깅 중에는 사용하지 못합니다.
■ JTAG ICE와 타겟 MPU와의 연결방법 (타겟 MPU) - (JTAG ICE 콘넥터)
TCK --- 1 SCK GND --- 2 GND (접지) TDO --- 3 TDO VTG --- 4 VCC (타겟전원 검출용) TMS --- 5 TMS RST --- 6 RST VCC --- 7 VCC (JTAGICE 전원공급용) N.C --- 8 N.C (연결없음) TDI --- 9 TDI GND --- 10 GND (접지)
* 타겟에서 7번 VCC 점퍼를 분리하면, JTAG ICE로 부터 전원을 받지 않는 방법입니다. * 타겟에서 7번 VCC 점퍼를 연결, 타겟에서 전원을 공급, ICE는 외부전원을 공급하지 않음. (원래의 JTAG ICE는 타겟의 전원전압이 4번 VTG에서 검출되지 않으면 ICE에서 7번으로 공급)
*********** 부품 목록 ************ 1. 57mm X 51.5mm FR4 기판 x1 2. ATMEGA16-8PI x1 3. SP232ACP x1 4. ATS XTAL 7.3728MHz x1 5. LED 3mm 적색 x1 6. LED 3mm 녹색 x1 7. SMD 저항 x9 8. SMD 콘덴서 x11 9. DIP40 IC 소켓 x1 10. DIP16 IC소켓 x1 11. SMD DIDOE x1 12. TACT 스위치 x1 13. IDC6M 콘넥터 x1 14. IDC10F BOX 콘넥터 x1 15. DB9AF 9핀 콘넥터 x1 16. PCB 서포트, 육각너트 x각 4개 17. 키트 회로도 x1 18. 부품 배치도 x1
AVR Studio 4.12로 업그레이드 되어 있으며, 구입즉시 사용이 가능합니다. 물론 다음 버전에서 업그레이드도 가능합니다. AVR JTAG ICE의 업그레이드는 AVR ISP의 하드웨어가 있어야 합니다.
혹은 AVR-PROG이나 AVR910-ISP가 있으면 STUDIO의 TOOL 매뉴에 있는 AVRPROG으로 업그레이드가 가능합니다. (ATMEL사의 정식 업그레이드 방법입니다) 이때는 ATMEL->JTAGICE 폴더 안의 Upgrade.EBN 이 최신 업그레이드용 펌웨어입니다. (AVR-PROG이나 AVR910-ISP의 출력을 JTAG-ICE의 Upgrade 콘넥터와 연결합니다.)
사용하는 소프트웨어는 ATMEL사의 AVR Studio를 사용합니다. AVR Studio의 사용방법은 다음 자료를 참조 하시기 바랍니다. http://avrtools.co.kr/bbs/zboard.php?id=avr
|