Library PCB  무한나눔  프로젝트  "보 드 프 리"

HELP ISP,ICSP,JTAG | Digital Board | Analog Board | Arduino Universal | Project | Mini Tools | Edu | Site (Since 2010)

 

처음 프로그래머를 제작했는데, 아예 동작을 하지 않거나, 인식은 하는데 정상적으로 동작하지 않을 때 도움이 되는 페이지 입니다.

제작상의 문제인 퓨즈설정, 통신포트 설정등을 포함하여 타켓보드의 ISP 회로에 대한 주의사항등을 포함하고 있습니다.

입문자나 초보자분들은 꼭 한번쯤 읽어 보시면 ISP 제작에 도움이 됨니다.

 

 

 

 

 

 

ISP 제작시 참고사항 (장치가 동작하지 않거나 펌웨어를 입력할 수 없을때)

 

 

펌웨어를 정상적으로 입력했는데, 장치가 동작하지 않을 때에는 퓨즈설정이 되지 않은 경우입니다.

AVR CPU는 공장 출하시 (처음 사용시)  1Mhz의 내부 RC발진하는 것으로 되어 있어서 이것을 수정하지 않으면 정상적으로 동작하지 않습니다.

퓨즈의 설정값은 아주 단순하게 "외부크리스탈을 이용하겠다" 이것만 설정되면 되는데 EXTENDED 는 0xFF, HIGH는 0xCF, LOW는 0xEF 로 설정합니다.

 

또한 CPU를 처음 사용할 때에는 내부 RC발진 1Mhz 로 동작하고 있기 때문에 프로그램을 너무 빠르게 입력하면 정상적으로 입력할 수 없습니다.

사용하는 클럭의 1/4 이하로 해야 하는데, 1Mhz의 1/4 그러니까 250Khz 이하로 해야 합니다.

 

 

 

AVR Studio라면 위와 같이 퓨즈를 0xFF, 0xCF, 0xEF 이렇게 세팅하고, ISP Frequency는 250Khz 이하로 설정해야 합니다.

 

 

CodeVision 역시 위의 그림처럼 SCK Frequency를 250Khz 이하로 해야 하고 Fuse 설정에는 SUT0=0, CKOPT=0  이렇게 두곳에 체크하면 됨니다.

 

 

Avr-Osp II를 사용하는 경우에도 항목마다 체크를 하는 것 보다 헥사값을 입력하는곳에 곧 바로 위의 그림처럼 0xFF, 0xCF, 0xEF 이렇게 하면 됨니다.

SCK Frequency는 따로 설정하지 않습니다.

 

 

 

 

 

 

 

ISP 제작시 참고사항 (장치관리자에 통신포트나 해당 장치가 없을때)

 

 

USB to Uart 칩을 사용하는 제품의 경우에는 두종류의 문제가 있을 수 있는데, 납땜불량 또는 부품불량의 경우에는 장치를 연결했을 때 잘못된 장치나

인식할 수 없는 장치가 연결된 것으로 나오거나 또는 아무런 반응도 하지 않습니다.

 

반대로 부품과 납땜상태가 정상이고 드라이버가 설치되지 않은 경우라면 알 수 없는 장치로 인식되고, 장치관리자에서 장치를 볼 수 있습니다.

이때에는 장치 드라이버만 설치하면 통신포트로 인식되고 정상적으로 사용할 수 있게 됨니다.

 

USB to Uart 칩을 사용하지 않는 MK-II 와 같은 경우에는 연결했을 때 아무런 반응을 하지 않거나 사용할 수 없는 장치, 잘못된 연결등의 메시지는

납땜불량이나 부품의 불량이고, 알 수 없는 장치로 인식하는 경우에는 AVR studio를 설치하지 않았거나 또는 설치할 때 USB Driver 옵션의 체크를 풀고

설치했을 경우인데, 이때에는 USB Driver 설치옵션을 체크하고 AVR studio를 다시 설치하면 됨니다.

 

 

USB to Uart 칩을 사용하는 장치가 정상적으로 연결되었고, 드라이버도 정상적으로 설치 되었다면 장치관리자에서 볼 수 있습니다.

MK-II를 사용하는 경우에는 장치를 연결했을 때 "AVRISP mkII"를 볼 수 있으며, Jungo 항목과 WinDriver 가 보이지 않는다면 AVR studio 에 포함된

드라이버가 설치 되지 않은 경우인데, 드라이버가 설치되어 있다면 장치를 연결하지 않아도 장치관리자에서 항상 Jungo 항목을 볼 수 있습니다.

 

정상적으로 사용하다가 갑자기 인식이 않될 때가 있는데, 이때에는 응용프로그램에서 장치와 통신할 수 없다는 메시지를 만나게 됨니다.

이런 경우는 정전기, 응용 프로그램의 버그, 타켓보드의 문제등으로 나타날 수 있는데, 이때에는 USB 케이블을 분리 했다가 다시 연결하면 됨니다.

타겟보드의 전원을 사용하고 있다면 USB 케이블의 분리와 동시에 타겟보드의 연결도 같이 분리 했다가 다시 연결해야 합니다.

 

통신포트는 있는데, AVR Studio에서 포트를 Auto에 놓고 검색을 하면 검색되지 않을 수 있습니다.

이것은 사용하는 컴퓨터나 윈도우, 응용프로그램의 버전등에 따라서 자동으로 인식되지 않을 수 있는데, 이럴 때에는 장치관리자에서 포트를 확인하고

수동으로 포트를 지정해 주면 되는데, 간혹 통신포트가 10번 이상으로 AVR Studio에서 선택할 수 없는 경우도 있습니다.

이런때에는 장치관리자에서 해당포트의 속성을 열고 10번 이하의 포트로 지정해서 사용하면 AVR Studio에서 선택할 수 있습니다.

 

 

 

 

 

 

 

ISP 제작시 참고사항 (타겟보드에 프로그래밍 모드로 진입할 수 없을때)

 

 

ATmega128 같은 경우에 안 된다고 하시는 경우를 보면 ISP에 사용하는 PDI, PDI 핀이 TX, RX 용도에 사용하고 있기 때문에 만약 MAX232 와 같은 칩을 사용한다면

아래의 예에서 A와 같은 상태가 되어, 단락(쇼트)상태로 ISP 기능을 제대로 할 수 없게 되는데.... 어떤 ISP 는 이상없이 잘 되기도 합니다.

 

그것은 버퍼저항이 없는 상태이며, 강제로 CPU로 입력되는 (MAX232 RXD) 신호와 연결 되기 때문에 계속 그런 상태가 유지되면 ISP 가 망가지게 됨니다.

그외에도 아래의 그림에서 처럼 다양한 이유가 있는데, 특정 기능의 GPIO와 ISP를 공통으로 사용하는 경우에는 "D"의 경우처럼 연결하는 것이 안전한 방법 입니다.

 

 

 

 

 

이곳에 올려진 모든 ISP는 보호저항(버퍼)이 있는데, 회로도에는 220ohm 으로 되어 있습니다.

일반적으로는 아무런 문제가 없는데, 타겟보드의 리셋 저항이 너무 작거나 (1Kohm 이하) 리셋 콘덴서가 너무 크면(1uF 이상) 문제가 될 수 있습니다.

보호 저항과 리셋 저항이 직렬 연결로 연결되어 전압이 분압되고, 결국 전위가 높아져서 리셋이 제데로 않되어 ISP 모드로 진입을 할 수 없게 되는 것이지요.

 

          

 

이때에는 보호 저항을 수십 ohm 으로 줄이거나 또는 타겟 보드의 리셋 저항을 1Kohm 이상으로 올려야 합니다.

리셋 저항은 1Kohm 이상, 10Kohm 이하로 하는 것이 좋으며, 콘덴서는 0.1uF 이면 적당 합니다.

콘덴서 역시도 너무 크면 리셋시점이 지연되어 ISP 모드에 진입할 수 없는데, 보호저항에 의해 콘덴서가 방전되기 때문에 리셋전위가 천천히 내려갑니다.

 

 

또한 ISP에 사용되는 핀 (MISO,MOSI,SCK) 에 큰부하가 걸려 있으면 이것 역시 보호 저항과 직렬 연결되어 전압이 분압되기 때문에

정상적인 ISP 동작에 영향을 주게 되는데, 항상 타겟 보드를 설계할 때 이런 부분에 신경을 써야 하고, 어쩔 수 없는 상황이면 보호 저항을 줄여야 합니다.

 

꼭 큰 부하가 아니어도 위의 그림에서 처럼, ISP에 사용되는 핀이 입력으로 사용중이고, 외부에 디지털 게이트, 통신칩, 컨버터등이 연결되어 있다면

디지털 출력이 High 상태이거나 Low 상태이거나에 상관없이, ISP 와 단락(쇼트) 상태가 되는데, ISP 핀에서는 High 와 Low 가 반복적으로 변하고 있기 때문입니다.

 

 

그외의 문제로는, 간혹 특정 CPU가 라이팅이 않되거나 인식이 안 된다고 하시는 경우가 있는데,  모든 CPU가 않되는 것이 아니라서

ISP의 하드웨어 문제로 볼 수도 없고, 그렇다고 기존에 사용하던 다른 ISP를 사용하면  이무런 문제가 없으니 CPU 가 잘못된 것도 아닙니다.

 

ISP 마다 각각 펌웨어를 만든 사람이 다르기 때문에 제조사가 다른 여러개의 ISP를 번갈아 사용하다 보면, 퓨즈비트의 설정 내용이나 특히 록비트 설정에 따라서

간혹 라이팅도 않되고, 칩도 인식 않되고, 초기화가 않될 때도 있는데,  이런때에는 Atmel 사의 정품 ISP를 사용해봐도 CPU를 초기화 할수 없습니다.

 

이런때에는 AVR 911 하드웨어를 이용하고, 운영 프로그램은 AVR OSP-II를 사용해서 CPU를 초기화 할 수 있습니다.

대부분 이방법으로 초기화 (칩을 블랭크로 지우기) 하면 그뒤로는 다른 ISP 에서도 잘 됨니다.

이글을 쓰고 있는 저 역시도 평소에는 MK-II 또는 STK500 타입을 사용 하지만 따로 BL-029M을 만들어서 비상용으로 항상 곁에 두고 사용하고 있습니다.

 

 

현재 보드프리에 올려진, 똑같은 보드에... 똑같은 펌웨어를... 이용하여 수백명의 사용자가 아무런 문제없이 사용하고 있다는 사실을 주지 하시고....^^

동작이 않될 때에는 당황하지 마시고.... 천천히... 하나 하나... 꼼꼼히 살펴 보시기 바랍니다..

 

 

 

 

보드프리 회로설계, Artwork, PCB설계,보드프리 , 아트웍, PCB, SMT, 회로개발, 전자제품개발, 무료ISP, 무료PCB, 샘플PCB, Board Free

 

 

Copyright(c) 2017 Board Lab All rights reserved.

Web  management  and  electronics engineering  by YEOEUI