로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Build your Project
PROJECT 자료실
작성자 leeky        
작성일 2006/03/07
첨부#1 bootice16rom.hex+upgrade.ebn.zip (15KB) (Down:160)
첨부#2 jtagice_kit_v10_asy.jpg (16KB) (Down:12)
Link#1 (Down:4)
ㆍ추천: 3  ㆍ조회: 1046   
  JTAG ICE의 제작과 펌웨어 업그레이드

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 크리스털을 사용하고 있습니다.
외부에 크리스털이 달려 있다며 당연히 이것이 켜져 있어야 합니다,
둥근 녹색 표시의 휴즈를 참조하시기 바랍니다.
 
 
외부 ISP와 AVR-JTAG의 접속은 다음과 같다. (별도의 ISP 콘넥터가 없는 JTAG ICE)
JTAG ICE      외부ISP출력   외부전원
TCK 1  ---- 3 SCK  
GND 2  ---- 6 GND --- GND
TDO 3  ---- 4 MOSI
VTG 4  --┬  2 VCC --- +5V
VCC 7  --┘
TDI 9  ----  1 MISO
RST 6  ----  5 RST
.
jtag 콘넥터에 RST가 없는 어떤 제품은 뚜껑을 열고,
반드시 외부 ISP 5번을 JTAG 안의 RST 회로에 연결해야 한다.
이제 AVR-JTAG와 ISP는 모두 외부전원이 필요하다. 

연결한 뒤에 PonyProg2000을 시작하여 ATMega16의 휴즈를 세트한다.
아래의 그림과 같이 휴즈를 세트하고 WRITE 버튼을 클릭한다.
 
 
정품 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를 입수해야한다.  
첨부된 내려받기 화일은 BOOTICE16-ROM.HEX (JTAG 부트로더용)와
JTAG 펌웨어인 UPGRADE.EBN (JTAGICE 업그레이드용)입니다.

부츠로더와 펌웨어를 입수했다면, PC와 ISP를 연결하고 jtag ice의 전원을 넣은 다음,
AVR Studio의 AVRISP창의 Brows(적색 화살표)에서 JTAG용 펌웨어 화일을 선택한다음
Program 단추를 눌러서 부트로더를 구워야 한다. 

 
 
이제 AVR-JTAG는 BOOTLOADER 모드가 되고 업그레이드 할 수 있다.
전원을 끊고 ISP와 RS232를 끊은 다음 ISP를 JTAG에서 분리한다음.
AVR-JTAG를 PC의 RS232와 연결하고 JTAG에 전원을 인가한다. 
AVR Studio를 열고 TOOLS -> AVR PROG (툴메뉴에서 첫번째 메뉴)을 클릭한다.
그러면 별도의 작은 팝업창으로 AVR-PORG이 열려야 한다.  
(이것이 안 열리면 부트로더의 굽기를 실패한 것이다, 처음부터 다시 작업해야 한다) 

정상적으로 AVR PROG 창이 열리면, 업그레이드가 1/2은 성공한 것입니다.
(JTAG에서 BootLoader를 굽고, 리셋을 하면 AVR prog으로 변신하는데,
이때는 JTAG의 하드웨어가 STK500과 같은 부트로더로 작동하는 것이다)
 
아래 그림의 AVRprog의 상단의 browse를 누르고 내려받은 업그레이드 EBN을 선택하든지,
ProgramFiles ->Atmel->Jtag에서 Upgrade.ebn을 선택한다 (이것이 최신형이다)
이제 아래 그림의 program 단추를 눌러서 ISP에 연결된 JTAG의 펌웨어를 구우면
AVR prog은 새로운 펌웨어를 JATG의 Atmega16 칩의 플래시롬에 펌웨어를 굽는다.
  

그러면 프로그램이 알맞게 비교되지 않았다는 오류 메세지를 보여줄 것이다.
그러나 이 오류는 BootLoader의 오류이다. 걱정하지 않아도 된다,
(정품은 오류가 없다. 아니면 부트로더를 더 좋은 것을 입수하면 이 오류는 OK로 바뀐다)
 
 
이제 AVR-JTAG는 새로운 펌웨어를 가졌고, BOOTLOADER모드 휴즈를 지울 수 있다.
전원을 끈다음, AVR-JTAG와 RS232를 끊고, 다시 ISP와 RS232를 연결한다.
ISP(혹은 PonyProg)을 열고 부트로더를 구울때 켜놓은 부트로더 Fuse인
BOOTRST를 클릭하여 끈 다음, Write를 누릅니다. (업그레이드가 끝났으므로 부트로더의 기능을 죽인다)
 

정품 AVRISP를 사용한다면 정품 AVRISP를 PC와 연결하고  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로 연결하려는 현재는 작동을 시킬 수 없습니다.
수동연결이 정상적으로 연결이 되면, 다음과 같이 ISP와 같은 프로그래머 창이 열리는 것을 볼수 잇습니다.
이 JATG ICE의 수동연결 기능은 AVR ISP와 완전히 동일합니다. 
 

이때 타겟 기판의 전원 전압을 보려면 BOARD 창을 열면 다음과 같이
연결되어 있는 타겟 기판의 전원전압과 ID 등을 보여줍니다. 
 
 
이때 타겟 기판의 전원 전압이 6.2V가 나온다면, PA2(ADC2)에 4.7K를 접지 시키고,
1K를 JTAG 10핀 콘넥터 4번의 VTG에 연결해야 정상적인 타겟의 전원 전압을 정확하게 측정하게 됩니다.
물론 JTAG ICE 안의 4번VTG와 연결되어 있던 VCC는 끊어 버려야 합니다. 
 
다음은 ATMEGA16으로 만든 JTAG ICE를 사용하여 ATMEGA32 소스를 디버깅 중인 화면입니다.

 
만일 소스의 포트와 디버깅 하드웨어의 IO 연결에  문제가 없는 JTAG기능이 있는 MEGA 칩이면,
MEGA16으로 컴파일 한 디버깅 화일도, MEGA32 칩에서 정상적인 작동이 됩니다. 

단, 타겟 기판의 휴즈는 OSC 등등 자신의 하드웨어에 알맞게 설정을 하여야 하며,
BOOTRST는 가급적 꺼주고, JTAG 휴즈는 반드시 켜(체크한 상태) 놓아야 합니다. 
그리고 타겟의 ISP 콘넥터는 AVRISP 등을 연결한 상태로 디버깅 하지 않아야 하며,
타겟에서 JTAG를 켜면, JTAG PORT인 PC2~PC5는 디버깅 중에는 사용하지 못합니다. 

QFP(DIP)타겟   ------ (JTAG) ---- ICE의 JTAG (DIP)QFP
21(24) - PC2/TCK --- 1 TCK ---- PB7/SCK (8)3
            GND    --- 2 GND ---- GND
23(26) - PC4/T DO--- 3 TDO ---- PB6/MISO (7)2
            VCC    --- 4 VTG ---- PA2/ADC2 (38)35
22(25) - PC3/TMS--- 5 TMS ---- PB1/T1 (2)41
4  (9)  - RST      --- 6 RST  ---- RST (9)4
점퍼로 분리가능 VCC --- 7 VCC ---- VCC
24(27) - PC5/TDI --- 9 TDI   ---- PB5/MOSI (6)1 
 
타겟에서 7번 VCC 점퍼를 분리하면, JTAG ICE로 부터 전원을 받지 않는 방법입니다. 
타겟에서 7번 VCC 점퍼를 연결하고 타겟에서 전원을 공급하면, ICE는 외부전원을 공급하지 않아야 합니다. 
(원래의 JTAG ICE는 타겟의 전원전압이 4번 VTG에서 검출되지 않으면 ICE에서 7번으로 공급합니다.) 

AVR JTAG ICE KIT 회로도
 

 
JTAG-ICE와 타겟 MPU와의 연결방법 (IDC-10핀 콘넥터 =JTAG 10 PIN)
 

직렬클럭   (SCK)  ---> JTAG #1 ---> 타겟 TCK
-접지      (GND)  ---> JTAG #2 ---> 타켓 GND (-접지)
데이터출력 (MISO) ---> JTAG #3 ---> 타겟 TDO
전원감지입력 (VTG) ---> JTAG #4 ---> 타겟 VTG(타겟의 +전원을 JTAG에서 감시)
모드선택출력 (TMS) ---> JTAG #5 ---> 타겟 TMS 
타겟리셋출력 (RST) ---> JTAG #6 ---> 타겟 RST (리셋)
ICE전원입력 (VCC) ---> JTAG #7 ---> 타겟 VCC (+전원을 JTAG-ICE에 공급)
JTAG 리셋 (RST-IN) ---> JTAG #8 ---> 연결없음 (외부에서 JTAG-ICE를 리셋)
데이터입력 (MOSI) ---> JTAG #9 ---> 타겟 TDI 
-접지      (GND)  ---> JTAG #10 ---> 타켓 GND (-접지)
.
지금까지 추가로 설명한 JTAG ICE KIT용 기판 사진입니다.
실물크기는 57mm X 51.5mm이며, 재질은 FR4 양면 기판입니다.
 
이 자료는 avrtools.co.kr에서 번역되었습니다. 무단복제 및 무단게시를 금합니다.
단 아래와 같이 원저자와 번역자를 아래와 같이 글과 함께 표시하는 조건으로 만 허용합니다.
원저자: http://www.olimex.com/
번역자: http://avrtools.co.kr/

주의사항
AVR-ISP는 AVR-JTAGICE와 커넥터가 틀립니다. ISP는 6핀, JTAGICE는 10핀을 권장합니다.
타겟기판의 ISP 커넥터를 10핀 방식으로 설계하는 경우, JTAGICE와 혼동하여 연결할 수 있습니다,

AVR-ISP를 AVR-JTAGICE 커넥터에 연결하거나, AVR-JTAGICE를 AVR-ISP 커넥터에 연결하게 되면,
연결 후에 전원을 1번만 연결해도, 즉시 AVR-ISP나 AVR-JTAGICE가 작동하지 않게 됩니다.

이 자료의 무단복제 및 무단게시를 금합니다.
감사합니다.
AVRTOOLS™
   
윗글 USB AVR-ISP의 제작과 펌웨어 Upgrade
    N         제목    글쓴이 작성일 조회 추천
14 가변-정전압,정전류-직류전원의 제작 avrtools™ 2011/08/08 (월) 252 0
13 전력제어기기는 USB 포트를 절연하자 avrtools™ 2011/07/03 (일) 194 0
12 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 195 0
11 AVR studio용 USBasp to AVR-ISP 제작 avrtools™ 2009/10/22 (목) 322 0
10 ATmega8 AVRISP-mkII의 제작 avrtools™ 2009/09/30 (수) 447 0
9 VGA CAM C328R 카메라 모듈의 제작 avrtools™ 2009/08/12 (수) 228 0
8 ODB-II 엔진 스캐너 PC 인터페이스 제작 avrtools™ 2008/10/04 (토) 511 0
7 Mega8 칼라센서 TCS230 색상인식 장치 leeky 2006/03/07 (화) 869 3
6 74HC595를 사용한 소형 8x24 LED 전광판의 제어 [3] leeky 2006/05/02 (화) 1364 3
5 ATmega8을 사용한 EM4095 RFID Reader의 제작 [1] leeky 2007/02/04 (일) 776 0
4 13.56MHz ISO-15693 RFID 태그 읽기장치 제작 [5] leeky 2007/03/15 (목) 666 0
3 AVR 프로그래머 AVR910-ISP 제작 [1] leeky 2006/08/06 (일) 1134 0
2 USB AVR-ISP의 제작과 펌웨어 Upgrade leeky 2006/03/07 (화) 1366 8
1 JTAG ICE의 제작과 펌웨어 업그레이드 leeky 2006/03/07 (화) 1046 3
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0