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

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

 

ISP , ICSP , JTAG

정품은 A/S 안 된다고 해서, 공개자료 참고해서 만들어 보려다

나... 미치는줄 알았습니다. ㅠㅠ

 

 

 

ATmel CPU를 사용할 일이 생겨서 평소에 사용하고 있는 ELNEC 롬라이터인 SmartProg2를 사용하려고 했는데, 불편해서... ISP를 구입하게 되었습니다.

크게 비싸지도 않는데, 정품을 구입해야겠다 라는 생각을 가지고 몇가지 꼼꼼히 살펴보다가 ATmel사의 AVRISP-MKII를 구입하게 되었습니다.

아직 고장난건 아닌데, 우연히 "디바이스마트"에 갔다가 정품 ISP는 A/S가 안 된다는 문구를 보게 되었습니다.

 

 

그도 그럴 것이.... 외국회사의 제품이고 A/S 갔다오는 비용이 제품가격 보다 더 많이 소요될 것이기 때문에 고개를 끄덕일 수밖에 없는 상황이었습니다.

그럼 국내에서 제조한 다른 것을 구입해야 하는데, 찾아보니 여러종류의 제품이 있었는데 거의 대부분 STK500 호환 제품이었습니다.

엔지니어니까 당연히 직접 만들어야겠다는 생각이 들겠죠? STK500 이건 공개 자료도 많은데 말이죠.

 

 

그런데 미쳐 버리는 줄 알았습니다... 아래는 구입한 ISP와 공개 자료를 기준으로 만들어 본 보드들입니다.

잘 보시면... 현재 시중에서 판매하고 있는 보드들도 보일 것입니다. (그것이 나쁘다거나 잘못되었다는 의미는 아니고 힘들었다고 투럴거리는 것 입니다.)

 

 

 

우선 처음으로 찾은곳은 "윤덕용 교수" 홈페이지의 "프로그램소스 자료실"에서 ISP 로 검색하면 나오는 자료들 이었습니다.

회로도와 설명, 펌웨어 (HEX 파일)가 올려져 있어서, 여기 저기 찾아 다니지 않고 따라 만들기가 쉬운곳이고, 손님중에 한사람이 더 올렸더군요.

 

 

위의 자료를 내려 받아서 만들어 보면, AVR Studio에서 자꾸만 업그레이드 하라고 메시지가 나오는데... 날자를 보면 2005년 1월 7일입니다.

몇줄만 고치면 간단히 메시지 나오지 않게 해줄 수 있는데 왜 버전업을 하지 않는지 모르겠습니다.

 

그리고 "유병훈"이라는 손님이 올린 자료는 만들어 보면... 잘 되는 것 처럼 보입니다.

하지만 용량이 큰 것은 않됨니다... 예를들면 ATmega2560 뭐 이런 것은 안 된다는 의미인데 128K 이상은 않되는 것이라고 봐야겠지요.

올린 날짜를 보면 2007년 9월인데 오래된 자료인가 봅니다... 결국 위의 자료를 가지고는 만족할 ISP 제품을 만들 수 없다는 의미가 되겠습니다.

 

 

그래서 에라~ 모르겠다. 작정하고 "제대로 된 것 좀 만들어 보자" 라는 취지로 기성품도 구입을 해보고... 외국 자료들도 찾아보고... 열심히 만들었습니다.

AVR910 (ATmega8),  AVR911 (AT90S2313),  STK500 (ATmega8), STK500 (ATmega8535), MKII (AT90USB162), MKII (ATmega32)

이런 것들을 셀 수 없이 많은 종류를 만들어 보고 테스트해 보았습니다.

 

참 별 것도 아닌 것으로 힘들고 비용도 많이 들었습니다.

다른 분들은 괜한 호기심에 고생하지 마시고 쉽게 만드시고, 차라리 그시간에 실무 프로젝트에 투자 하시라고 모두 무료 배포 합니다.

 

 

 

 

AVR910, AVR911에 대한 정리

 

AVR910 이것은 오래된 것이지만 안정적으로 동작하고, 따로 별도의 운영 프로그램이 있어야 사용하기 편리 합니다.

코드비젼에서 문제없이 거의 대부분의 CPU를 지원하지만 따로 운영 프로그램을 사용하면 몇몇 칩들을 지원하지 않기 때문에 불편할 수 있습니다.

 

코드비젼에서는 AVR910, AVR911을 사용해도 우리가 흔히 사용하는 CPU는 대부분 지원하기 때문에 별다른 문제는 없습니다.

다른 프로그램에서는 프로그래머 명칭을 정확히 입력해야 하지만 코드비젼에서는 AVR910, AVR911 모두 AVR910 으로 선택하면 동작 합니다.

 

AVR910 같은 경우에는 USB 칩을 따로 달지 않고, ATmega8에서 자체적으로 USB를 연결할 수 있도록한 제품이 있으니 저렴하게 만들 수 있고

코드비젼에서 사용하면 거의 모든 칩을 지원하니, 코드비젼을 사용하는 분들이 저가형으로 만들고 간단히 만들고 싶을때 사용하면 좋을 것 같습니다.

 

 

시중에 판매되는 AVR911 제품의 경우에는 대부분 ATtiny2313을 사용하고 있습니다.

AVR911의 운영프로그램은 주로 AVR OSPII 를 사용하는데 연결된 칩을 자동으로 찾아주는 기능이 있어서 편리한 부분도 있지만

딱히 AVR911을 지원하는 프로그램이 마땅치 않기 때문에 주로 사용하게 되고, 그외에는  avrdude에 GUI를 업어서 사용하는 방법이 있습니다.

 

AVR OSPII 는 프로그래머 타입을 두 개만 지원하는데 AVR911, OSPII 이렇게 두 개만 지원 합니다.

반면 avrdude에 GUI를 업어서 사용하면 세상에 있는 모든 프로그래머를 지원 하는데 예를 들면 프린터 포트용 부터 MKII 까지 다 지원 합니다.

 

업어서 사용하는게 무슨말이냐구요?  원래 avrdude 이건 도스 프롬프트에서 사용하잖아요 그걸 윈도우에서 GUI로 사용할 수 있게 해주는 프로그램을

함께 사용한다는 의미인데... 그냥 보드프리에서 아래에 올려 놓은 프로그램 받으시고.. 압축풀고... avrdude-GUI.exe  이거 클릭하면

그냥 그대로 사용할 수 있도록 하나의 폴더에 다 넣어 두었습니다.

 

 

  

 

 

 

 

 

 

 

 

 

 

STK500 에 대한 정리

 

STK500은 원래 ATmel에서 판매하고 있는 테스트용 툴이지요.... 아래와 같이 생겼는데... 이것을 실무에서 다운로딩하는 용도로 사용할 수는 없겠죠?

 

 

위의 그림에서 노란 화살표의 오른쪽, 작은 칩이 MAX232 이고, 왼쪽칩이 AT90S8535 인데, 프로그래머 부분을 담당하고 있는 부분이 되겠습니다.

우리가 시중에서 흔히 STK500 호환 ISP라고 하는것은 이부분만 따로 잘라서 조그맣게 만들어서 사용하고 있는 것입니다.

 

그래서 STK500은  AT90S8535 아니면 Atmega8535를 사용하고 MAX232 대신에 USB를 지원하기 위해서 FT232나 PL2303 같은 칩을 사용합니다.

USB칩을 어느것을 하는지에 따라서 2500원~5500원 정도 하는데 차이는 없습니다... 고속 통신에서 차이가 있다고 하는데, 실용적으로

고속통신에서 테스트 해보면 아무런 문제가 없고, 단지 드라이버의 안정성의 차이인데 ISP 용도로 사용할 때에는 아무거나 사용해도 됨니다.

 

PL2303 은 ProLific에서 정보나 드라이버를 얻으면 되고, FT232 계열은 FTDICHIP에서 정보나 자료를 얻으면 됨니다.

그런데 결정적으로 칩에 들어갈 펌웨어는 어디 있을까요?

 

 

AVR Studio 설치하고 위의 그림 위치에 보면 STK500.ebn 이것이 Atmega8535 칩에 들어갈 펌웨어이고... 시중에 보면 Atmega8535 칩을 사용한 제품중

STK500.ebn 파일을 넣어도 동작 한다고 되어 있는 제품들이 있는데.... 다 되는 것은 아니고 삐걱거리면서 되는 제품도 있으니 주의해야 합니다.

저도 몇몇 제품 구입해서 테스트 해보았는데 되는 것도 있고 않되는 것도 있습니다.

 

물론 걱정할 필요는 없습니다.... 보드프리에서 직접 설계해서 잘되는 것을... 누구나 사용할 수 있도록 PCB를 무료로 배포 하니까요.

펌웨어도 곧 바로 칩에 넣을 수 있도록 Intel hex 형식으로 변환해서 버전업 될 때마다 수시로 알아서 올려 놓겠습니다.

Atmega8535 칩을 사용하는 제품이 그야말로 STK500 호환이 아닌 똑같은(?) 제품이라고 할 수 있을 것입니다.

 

Atmega8535 칩에 AVR Studio에 포함된 펌웨어를 사용해보면 시중에 커스터마이징 한 것에 비해서 약간의 속도의 차이가 있는데

그 차이는 아주 미미해서 취향에 따라서 마음에 드는 것을 사용하면 됨니다.

 

STK500.ebn을 이용할 때 주의 사항이 있습니다.

컴퓨터의 USB 포트에 장시간 연결해 놓고 있는 경우, 정작 사용할려고 하면 먹통(?)이 되어 버릴 때가 있는데, 이때에는 USB 케이블만 분리했다가

다시 연결해 주면 정상동작 하는데, 펌웨어 자체가 Atmel에서 STK500 과 RS-232를 이용 하도록 제공한 것이라서 어쩔 수 없는 문제입니다.

하지만 실용으로 사용하는데에는 전혀 문제가 되지 않고, 특별한 불편도 없습니다.

 

 

 

그외에 가장 많이 사용되는 칩은 ATmega8입니다.

이것은 ATmel의 stk500 protocol을 기준으로 STK500과 똑같이 동작 하도록 프로그래밍 했거나 외국의 소스 자료들을 이용해서 만든 것입니다.

꾸준히 펌웨어를 업데이트 했다고 하면서... 다들 속도가 빨라졌다고 하는데... 그 차이를 체감하는 것은 어렵습니다.

업데이트 해야하는 것은 AVR Studio를 사용할 때 업데이트 메시지가 나오는 경우가 아니라면 업데이트 잊어 버리고 사용해도 아무런 문제 없습니다.

 

 

 

그럼 이건 어떻게 만드느냐 하면.... 걱정할 것 없습니다... 이것도 역시 보드프리에서 회로도, 펌웨어, PCB 모두 무료로 사용할 수 있도록 배포하니까요.

그리고 여러 호환 제품을 보면  A/S 의 주된 내용이 칩의 손상인데, 그도 그럴 것이 ISP 라는 것이 타겟 보드와 연결해서 사용하는 것이라서

타겟보드와의 트러블이나 전원문제등으로 인하여 칩이 손상되는 것이, 대부분의 A/S 발생 원인입니다.

그래서 보드프리에서는 버퍼 저항과 제너 다이오드를 추가로 달았습니다.

 

USB 전원을 사용할 것인지, 아니면 외부 타겟전원을 사용할지에 대한 점퍼핀과, 업그레이드를 위한 리셋핀을 선택하기 위한 점퍼....

위치도 애매한 경우가 있고, 빠져서 잊어 버리면 찾아 다녀야 하고, 그런 부분이 불편했는데, 보드프리에서는 과감히 버리고 그냥 스위치 달았습니다.

 

 

간혹 STK500을 사용하면서 사람들이 내가 만든게 빨라요~ 아니 아니 내가 만든게 더 빨라요~ 그러는데......

정작 코드비젼을 사용하는 사람들은 별 차이를 못느낀다고 말하는 사람들이 있습니다.

 

그건... 코드비젼의 문제입니다... 아니 문제가 아니고 늦지만 안정적입니다.... 물론 최신버젼이 아니면 MKII 에서 ATmega8 의 퓨즈읽기 에러나

뭐 그런 것도 있지만 하여튼 속도는 약간 느려도 전체적으로 안정적인 동작을 합니다.

 

반면 AVR Studio에서 사용하면 대땅 빠릅니다... 여기서는 제품마다의 속도를 체감할 수 있습니다.

그래서 AVR Studio 이것을 사용해야 한다고 하는게 아닙니다.... 고속도로에서 과속하면 안 된다고 하면서 꼭 나오는 표어가 있습니다.

빨라야 5분... 여기서도 마찬가지입니다... 그거 몇초 빨라져서 달라지는 것도 없습니다... 그 시간에 그냥 코드 최적화 하는데 신경 쓰는 편이 낳습니다.

 

 

 

AVRISP MKII 에 대한 정리

 

저도 MKII를 구입해서 사용을 했는데.... A/S 가 않됨니다... STK500 과 마찬가지로 MKII 역시 호환제품이 시중에서 판매되고 있습니다.

그리고 결정적으로... USB 전원을 타겟보드에 보낼 수 있는 기능이 없어서 불편합니다. (외부 전원만 사용해야 합니다.)

모양은 아래의 그림과 같습니다.

 

 

 

 

 

위의 그림에서 A는 필립스의 USB 칩이고, B는 ATmega128, C는 타겟보드와의 연결과 해제를 담당하는 MAX4712 아날로그 스위치입니다.

나머지 부품은 프로텍션, 오실레이션, 전압을 검출하기 위한 LM339 컴퍼레이터등이 있습니다.

하여튼 중요한 부분은 A,B,C입니다.

 

시중에 몇가지 호환 제품이 있는데, AT90USB162를 이용한 제품과, STM32F103, ATmega32 등의 제품이 있습니다.

외국 사이트에서 MKII Clone 등으로 검색해 보면 많은 제작 자료들이 있는데, 그거 낚이기 쉽습니다. 모든 자료가 완벽하게 보이고, 금방 될 것 같은데

실제로 만들어 보면 않되는 경우가 많습니다.

 

하지만 걱정하지 않으셔도 됨니다.

아래의 그림처럼 보드프리에서는 성능과 호환성 좋은 제품을 직접 설계해서.... 펌웨어는 물론 무료로 PCB까지 제공을 하기 때문에 무료로 받아서

직접 만들어서 사용하시면 됨니다... 원본 제품처럼 리얼 USB 칩과 메인 CPU, 버퍼칩... 잡다한 부품은 빼고 구성된 성능 좋은 제품입니다.

당연히 정품에서 불편했던 부분인 USB 전원 부분도 USB 전원을 외부에 내보낼 수 있도록 했습니다.

 

 

간혹, 다른 ISP 제품들은 드라이버 이런 것 받을 수 있는데, MKII 제품은 드라이버가 없다고 투덜거리는 분들을 보게 됨니다.

상용으로 판매하고 있는 사이트에 가서 항의 글도 올리고 그러지요.

 

그런데 ATmel 홈페이지에 가셔서... Tools & Software 페이지에서 AVR Studio 내려 받아서 설치하시고, 설치하실 때 USB 디바이스 드라이버를

설치 하겠다고 선택을 하고 설치 하시면 드라이버 설치 됨니다... 설치하실 때 MKII는 컴퓨터에 연결되어 있지 않아야 하고....

설치후에 MKII를 연결하면 자동으로 인식 합니다.... 따로 드라이버 없습니다.

그리고 STK500 호환 제품도 해당 제품의 드라이버가 아니고, USB TO UART 칩의 디바이스 드라이버이지 않습니까..^^

 

 

 

진심으로 양해를 구합니다.^^

 

더 이상 인터넷에 떠돌고 있는 수많은 ISP 자료들을 참고 삼아서 제작 하려다... 혹자에게 낚여서 담배 뻑뻑~ 피우시는 일이 없기를 바라는 마음으로

AVR ISP에 관련된 자료들을 정리해서 보드와 함께 공개 합니다.

 

행여 누군가는 상용으로 돈을 받고 판매되고 있는 제품들인데 이렇게 배포를 해 버리면  상도의적으로 문제가 있는 것 아니냐고..

이렇게 말씀 하시는분이 계실줄 압니다.

 

하지만 ISP 는 어떤 제품을 개발하기 위한 도구로 사용되고 있지 않습니까.... 초기 PIC 칩을 사용하던 엔지니어들이 AVR로 많은 부분 선회한 이유도

쉽고 저렴한 ISP라던지, 무료 컴파일러 라던지... 그런 부분이었는데 PIC 칩을 사용하던 시절을 생각해 보면 MRPIC 라던지.....

백만원 이상씩 주고 툴을 구입하지 않았습니까?

 

요즘은 PIC 칩도 ICSP 가 나와 있지만 예전을 생각해 보면 개발환경을 만드는데 참 힘들었습니다.

마찬가지로 학생들은 거의 AVR 칩을 사용하고 있고, 처음 시작하는 엔지니어는 거의 모두 AVR을 가지고 시작하고 있습니다.

 

이정도는 오픈하드웨어로 배포를 해줘야.... 처음 시작하는 엔지니어나 학생분들이 부담없이 시작할 수 있는 환경이 되지 않겠습니까?

그 다음은 스스로 알아서 할 일이겠으나... 처음의 시작은 부담스럽지 않고 쉽게 접할 수 있도록 해주는 것이 선배된 도리라고 생각 합니다.

 

 

ISP 펌웨어를 직접 만들어 보고 싶으신 유저분들은 여기를 클릭 하셔서 참고 자료를 받으세요.

 

 

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

 

 

Copyright(c) 2017 Board Lab All rights reserved.

Web  management  and  electronics engineering  by YEOEUI