AVR MCU에서 ISP포트는 MCU 종류에 따라 2가지(UART0 포트 혹은 SPI 포트)로 나누어집니다.
ISP포트에 대하여 ATmega128 및 ATmega2560을 예로 들었습니다.
AVR ISP MKII |
MCU |
ATmega128 |
ATmega2560 |
MOSI |
PDI |
PE0(Rxd0) |
PB2(MOSI) |
MISO |
PDO |
PE1(TxD0) |
PB3(MISO) |
SCK |
SCK |
PB1(SCK) |
PB1(SCK) |
RESET |
RESET |
RESET |
RESET |
VCC |
VCC |
VCC |
VCC |
GND |
GND |
GND |
GND |
*. ATmeag64 / ATmega128 / ATmega1281 / ATmega2561은 ISP포트로 UART0포트를 사용합니다.
*. 위 4종 이외의 MCU는 SPI 통신 포트를 ISP포트로 사용합니다.
위 ATmega128 등은 ISP 포트를 UART0와 공용으로 사용하기때문에 신호 충돌로 정상적으로 프로그램이
다운로딩되지 않는 경우가 발생할 수 있습니다. 이때, 아래 첨부한 그림처럼 회로를 변경하시면, 통신 포트에
상관없이 프로그램 다운로딩이 가능합니다.
아래 회로의 핵심은 통신 포트와 ISP 포트 신호가 충돌되지 않도록 직렬저항(R1,R2)를 삽입해 주는데 있습니다.
가능한 ISP 포트에는 신호 충돌의 여지가 있는 신호(특히, MCU 입력신호 - 채터링 제거 목적의 capacitor가 연결된 스위치 입력 신호) 등이 연결되지 않도록 설계하는것도 양산시에 도움이 됩니다.
보다 더 좋은 제품을 만들기 위하여 최선을 다하겠습니다.
감사합니다.