Atmel JTAGICE3 로 ISP 사용하기 위한 핀맵.

크리에이티브 커먼즈 라이선스
Creative Commons License

Atmel Atmega48/88/168 과 같이 ISP 를 사용하는 MCU 의 경우 JTAGICE3 로 라이팅 하는 방법을 설명한 문서가 많지 않아 나와 조금 당황스러웠다.


먼저 저가 ISP 의 경우 Debugwire 기능을 사용할 수 없었고, JTAGICE3 는 핀 맵만 ISP 핀맵으로 맞춰주면 퓨즈비트 설정(DWEN)으로 DebugWire 기능을 사용할 수 있었다.


※ 준비물

1. Atmel JTAGICE3

2. 기본 구성품인 비표준용 와이어 케이블 또는 기본 구성품인 6P SPI-PDI 변환보드 

3. 타겟 보드


10 P JTAG 케이블을 ISP 포트에 연결하면 쇼트가 발생하니 절대 연결하지 않도록 한다.


6P ISP 표준 을 지키고 있다면 기본 구성품인 SPI-PDI 변환 보드를 사용하면 묻지도 따지지도 않고 그냥 된다.


10P 비표준용 와이어 케이블을 사용할 경우 아래와 같이 연결하도록 한다.


10 P AVR ISP 규격

 (1) MOSI

(2) VCC
 (3) N.C (4) GND
 (5) RST

(6) GND

 (7) SCK (8) GND
 (9) MISO (10) GND



JTAGICE3 의 핀 규격(10P AVR JTAG 규격임)

 (1) TCK

(2) GND 
 (3) TDO

(4) VTG

 (5) TMS

(6) nSRST

 (7) N.C

(8) nTRST

 (9) TDI(10) GND



10P AVR ISP 포트에 JTAGICE3 비표준 케이블 연결 (DebugWire 사용 가능)

 (1)  [9]TDI

(2) [4]VTG
 (3) N.C(4) N.C

 (5) [6]nSRST

(6) N.C

 (7) [1]TCK

(8) [2]GND

 (9) [3]TDO

(10) [0]GND

※ [] 안의 숫자는 비표준용 케이블에 붙어있는 레이블 숫자임.
※ [5], [7], [8] 번 선은 연결하지 않는다.




저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 0

IAR MCS-51 에서 Timer Interrupt 가 호출되지 않는 문제.

크리에이티브 커먼즈 라이선스
Creative Commons License

열심히 삽질하였다....

그리고, 하다하다 안되서 Linker listing 을 확인해 보니 Timer Interrupt 코드가 링크되지 않는 문제를 발견하였다.

문제의 발단 :

정말 아무생각 없이.... 정말 평소에는 나만의 명명규칙으로 이름을 잘 짓다가 정말 아무생각 없이 인터럽트 함수를 'TIMER0', 'TIMER1' 이라고 지었다. (요즘 내가 정신이 탈출한 상태다.)
#pragma vector=timer0
__interrupt void TIMER0(void)
{
... 블라블라 ...
}

#pragma vector=timer1
__interrupt void TIMER1(void)
{
... 블라블라 ...
}
평소같았으면 내가 고정으로 사용하는 "Timer_InterruptN" 이라는 명명을 하였을 텐데, 정말 아무생각 없었다.

그 결과 :

Global Interrupt 만 Enable 하면 시스템이 얼어버린다.

당연히 얼 수 밖에 없는게, 인터럽트가 발생해서 호출은 해야 겠는데 그 호출을 받을 함수가 링킹되지 않아버리니 중간에 떠버린 상태인 것이다.

Aㅏ................... 경고조차 없는 멋지고 깔쌈한 내 프로그램이 돌지 않는다니....

해결 방법 :

함수 이름을 바꾸었다. 그리고 빌드..., 그리고 Linker listing 을 확인해보니

생겼다!!!!!

아마도 IAR MCS-51 에서 TIMER0, TIMER1 과 같은 이름은 사용할 수 없는 것으로 보인다. (하지만 IAR 메뉴얼에는 관련 내용을 찾을 수 없다.)

교훈 :
분명 문제가 없는데 변수의 값이나 함수 호출에 문제가 발생한다.
Linker listing 생성을 활성화 하고 확인하도록 하자!
저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 0