본문 바로가기

메이커 Maker

USBasp를 사용하여 ATtiny85 프로그래밍

반응형

USBasp를 사용하여 ATtiny85 프로그래밍하기

 

이 문서는 맨 아래 원문서를 참고하여 Arduino 개발환경 2.3.7 버전에서 실행하는 방법을 설명합니다. 아두이노 설치, 실행에서 시간이 만든 오래된 설명은 제거하고 가장 최신 버전에서 설명합니다. 혹시 필요없는 부분이나 이미 실행한 환경 설명이 있다면 과감하게 넘어가시기 바랍니다.

 

우리가 만든 쓰레기는 누구도 원하지 않으니까요.

 

이 튜토리얼에서는 USBasp를 사용하여 ATtiny85를 프로그래밍하는 방법을 알아보겠습니다. ATtiny85가 무엇인지 모르신다면 제 글을 읽어보시는 것을 추천합니다.

 

ATtiny85란 무엇일까요? 먼저 몇 가지 정보를 알려드리겠습니다.

 

ATtiny85를 프로그래밍하는 방법은 여러 가지가 있지만, 제 생각에는 USBasp를 사용하는 것이 가장 저렴하고 쉽습니다. USBasp가 없으시다면 10파운드 미만으로 구매하실 수 있으며, USBasp를 이용하면 다양한 마이크로컨트롤러를 프로그래밍할 수 있습니다.

 

USBasp란 무엇인가요?

 

USBasp는 노트북의 USB 포트에 꽂는 소형 보드로, 이를 이용해 ISP(In-System Programming) 방식으로 마이크로컨트롤러를 프로그래밍할 수 있습니다. ISP는 회로 기판 내 직렬 프로그래밍을 의미하기도 합니다. 프로그래머를 회로 기판의 표준 6핀 헤더에 연결하고, 마이크로컨트롤러에 전원이 공급된 상태에서 회로에 연결된 상태로 프로그래밍합니다. 가장 큰 장점은 마이크로컨트롤러를 분리할 필요가 없다는 것입니다.

 

 Arduino IDE를 설치하는 방법은 따로 설명드리지 않습니다. 

 

USBasp 드라이버 설치

 

윈도우 10 노트북에서 모든 게 잘 작동하고 있었는데, 어느 날 다시 켜보니 더 이상 작동하지 않았습니다. 인터넷에서 한참 검색해 본 결과, 윈도우 10 업데이트 중에 드라이버 서명 강제 적용 기능이 다시 활성화되어 드라이버, 즉 아두이노 IDE와 USBasp가 작동하지 않게 되었거나, 아니면 드라이버 자체가 삭제된 것 같았습니다! 정확한 원인은 모르겠지만, 윈도우 OS는 정말 골칫거리죠. 다행히 구글 검색을 통해 훨씬 쉬운 해결책을 찾았습니다. 바로 이 파일을 다운로드하는 것이었습니다.

 

https://protostack.com.au/download/USBasp-win-driver-x86-x64-v3.0.7.zip 

 

이 파일에는 디지털 서명된 드라이버가 포함되어 있으므로 위의 드라이버 서명 적용 단계를 거칠 필요가 없습니다. 폴더의 압축을 풀고 InstallDriver.exe 파일을 실행하세요. 저는 이 방법으로 문제를 해결했고, 장치 관리자에서 USBasp 드라이버가 설치된 것을 확인했습니다. 이것 또한 저에게는 윈도우와의 인연을 끊을 수 있는 결정적인 계기 중 하나였습니다.

 

윈도우 드라이버 문제를 해결하기 전에는 다음과 같은 메시지가 표시되었습니다.

 

오류: vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'인 USB 장치를 찾을 수 없습니다.

 

이 메시지가 표시된다면 장치 관리자에 드라이버가 표시되더라도 드라이버에 문제가 있는 것입니다.

 

리눅스 민트에 아두이노 IDE를 설치하는 방법 - 리눅스 사용자는 참고하세요. 윈도우라면 저 아래로 이동하세요.

 

리눅스 민트에 아두이노 IDE를 설치하는 가장 쉬운 방법은 소프트웨어 관리자를 이용하는 것입니다. 소프트웨어 관리자를 클릭하고 검색창에 "아두이노 IDE"를 입력한 다음 설치를 선택하면 됩니다. 아주 간단하죠. 또는 아두이노 IDE 웹사이트에서 필요한 소프트웨어를 다운로드할 수도 있습니다. 저의 경우 리눅스 64비트용이었습니다. 시스템별로 다운로드 링크가 다르므로 올바른 버전을 다운로드해야 합니다.

 

다운로드 후 압축 파일을 마우스 오른쪽 버튼으로 클릭하여 하위 메뉴를 열고 "여기에 압축 해제"를 선택하세요. 그러면 "install.sh" 파일이 들어 있는 폴더가 나타납니다. 이 파일을 두 번 클릭하면 창이 뜨는데, "실행"을 클릭하세요. 그러면 바탕화면에 Arduino IDE 아이콘이 생성됩니다.

 

다른 방법은 웹사이트에서 소프트웨어를 다운로드하는 것입니다. 그런 다음 압축을 풀고 터미널 창에 시간이 많이 걸리는 명령어를 입력하여 설치해야 합니다. 그리고 제대로 설치되기를 바라야죠. 인터넷에 있는 설명대로 따라 하면 대부분 입력한 내용이 잘못되었는지 알 수 없는 오류 메시지가 표시됩니다.

 

그 메시지를 구글에서 검색해 봤더니 끝도 없이 여러 가지 설명이 나오고, 거기에 다른 정보들을 입력하라는 말만 나오는데, 저는 도대체 뭘 해야 할지 모르겠어요. 그냥 소프트웨어 관리자가 제공하는 간단한 방법을 쓰고 있어요.

 

USBasp 드라이버

 

리눅스에서는 USBasp용 드라이버를 설치할 필요가 없습니다. 하지만 다음과 같은 메시지가 나타날 수 있습니다.

 

스케치를 업로드하는 동안 오류가 발생했습니다.

 

avrdude: 경고: USB 장치를 열 수 없습니다. 권한이 거부되었습니다.

 

avrdude: 오류: vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'인 USB 장치를 찾을 수 없습니다.

 

처음에는 윈도우 드라이버 문제와 비슷한 줄 알았습니다. 드라이버는 있지만 오류 메시지를 자세히 보면 리눅스에서 드라이버 사용 권한을 거부하고 있는 겁니다. 그러니까 드라이버는 있는데 사용할 수 없는 거죠!

 

네, 가능하지만 권한을 변경해야 합니다. 터미널을 열고 다음 명령어를 입력하세요.

 

lsusb

 

기기 목록이 표시될 텐데, 다음과 같은 것을 찾으시면 됩니다.

 

버스 003 장치 002: ID 16c0:05dc libusb와 함께 사용하기 위한 Van Ooijen Technische Informatica 공유 ID.

 

이렇게 하신 이유는 USBasp의 버스 번호와 장치 번호를 확인하기 위해서입니다. 이제 터미널에서 다음 명령어를 입력하세요.

 

sudo chmod 666 /dev/bus/usb/003/002

 

lsusb 명령에서 확인한 버스 및 장치 번호에 맞게 끝부분의 숫자를 변경해야 합니다. 이제 모든 것이 정상적으로 작동해야 하지만, USBasp를 연결할 때마다 이 작업을 반복해야 합니다.

 

여기입니다. ^^

ATtiny85 및 USBasp용 Arduino IDE 설정

 

USBasp를 사용하여 ATtiny85를 프로그래밍하려면 몇 가지 소프트웨어를 설치하고 설정을 변경해야 합니다.

 

Arduino IDE를 클릭하여 소프트웨어를 실행하고, 소프트웨어가 열리면 [파일] - Preference 를 클릭합니다.

 

 

 

 

창 하단 근처에 "추가 보드 관리자 URL:"이라는 긴 흰색 빈 상자가 보일 것입니다. 이 상자에 다음 내용을 복사하여 붙여넣으세요.

 

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

 

 

확인을 클릭하세요.

 

보드 관리자 설치  

 

화면 왼쪽 아이콘에서 보드 관리자를 선택하세요. 아니면 "도구"를 클릭하고 "보드"를 클릭한 다음 "보드 관리자"를 클릭합니다.

 

그러면 나타나는 화면에서 David A. Meliis의 "attiny"를 찾아 설치 버튼을 클릭하세요. 그런 다음 "닫기"를 클릭하세요.

 

 

 

보드 설정과 컴포트 설정 

 

아래 이미지를 참고해 보드를 선택하세요.

 

 

이제 도구 메뉴로 이동하여 아래쪽 화살표를 "보드: 아두이노 우노"로 이동하면 하위 메뉴가 나타나고 그 옆에 작은 화살표가 있는 "ATtiny 마이크로컨트롤러"가 보입니다. 커서를 그 위로 이동하면 ATtiny 25/45/85 또는 ATtiny 24/44/84를 선택하는 옵션이 나타납니다. ATtiny 25/45/85 옵션을 선택하세요.

 

프로그래머 선택

 

 

 

해당 항목을 클릭하면 도구 메뉴가 종료되므로 다시 도구 메뉴로 돌아가세요. 이제 보드: "ATtiny 25/45/85" 아래에 프로세서: "ATtiny25"라는 옵션이 표시됩니다. 마우스 커서를 이 항목 위로 가져가면 하위 메뉴가 열립니다. "ATtiny85"를 선택하면 다시 도구 메뉴가 종료됩니다. 다시 도구 메뉴로 돌아가서 이번에는 프로그래머: "AVRISP mk II"로 이동한 다음 하위 메뉴에서 "USBasp"를 선택하세요.

 

USBasp를 이용한 ATtiny85 프로그래밍 - 하드웨어

 

이제 설정이 완료되었으니 하드웨어를 연결할 차례입니다. 가장 쉽고 빠른 방법은 ATtiny85를 브레드보드에 꽂고 USBasp를 연결하는 것입니다. 브레드보드 사용에 이미 익숙하시다면 이 글을 계속 읽으셔도 되지만, 초보자이거나 더 자세한 정보가 필요하시면 아래 링크를 클릭하여 브레드보드에서 이 프로젝트를 구축하는 방법에 대한 글을 참고하세요.

 

브레드보드 LED 깜빡임 프로젝트

 

USBasp를 사용하여 ATtiny85 프로그래밍하기

 

완성된 모습은 이렇습니다. USBasp 제품에 포함된 10핀-6핀 변환기를 사용해서 두 핀에 전선을 연결했습니다. 아래 그림은 연결해야 할 6개의 핀을 보여줍니다.

 

USBasp를 사용하여 ATtiny85 프로그래밍하기

 

어댑터에는 연결 단자에 이름이 표시되어 있어 편리합니다. 한쪽에는 GND, MOSI, VCC 단자가 있습니다.

 

USBasp를 사용하여 ATtiny85 프로그래밍하기

 

반대쪽에는 MISO, SCK 및 리셋 버튼이 있습니다.

 

브레드보드 배선

 

위 사진에서 보시다시피, 3번 핀에서 LED로 연결되는 390Ω 저항을 브레드보드의 파란색 선에 연결했습니다. 파란색 선을 다른 리드를 사용하여 4번 핀(GND)에 연결하는 것을 잊지 마세요.

 

초보자라면 브레드보드 와 저항 색상 코드 에 대한 자세한 정보를 읽어보는 것이 좋습니다.

 

ATtiny85를 실제로 프로그래밍하는 방법

 

USBasp가 5V를 공급하도록 설정되어 있는지 확인하십시오. 아래 그림과 같이 점퍼를 해당 위치에 놓으면 됩니다. 점퍼를 다른 두 핀으로 옮기면 3.3V가 공급되고, 점퍼를 완전히 제거하면 회로에 전원이 공급되지 않습니다.

 

USBasp는 5V용으로 설정되어 있습니다.

 

USBasp를 ATtiny85가 장착된 브레드보드에 연결한 후, 노트북의 USB 포트에 꽂으세요. 그런 다음 Arduino IDE를 다시 실행하면 USBasp와 ATtiny85를 사용하기 위해 위에서 변경한 모든 설정이 저장됩니다.

 

오른쪽 상단 모서리를 클릭하고 파일/예제/01.기초/Blink를 클릭하여 Blink 파일을 엽니다.

 

아래 페이지가 열리면 "LED_BUILTIN"이라고 표시된 부분을 "4"로 변경해야 합니다. 세 개 모두에 대해 이 작업을 수행해야 합니다.

 

결과적으로 아래 그림과 같은 모습이 될 것입니다. 값을 4로 변경한 이유는 LED를 ATtiny85의 PB4에 연결했기 때문입니다.

 

프로그램이나 스케치를 업로드합니다

 

다음으로 '파일' 아래에 있는 '체크' 표시를 클릭한 다음 오른쪽 '화살표'를 클릭하세요. 그러면 Attiny85에 파일이 업로드되고 LED가 깜빡이기 시작할 것입니다. 만약 깜빡이지 않는다면 배선이 제대로 되었는지, LED 방향이 올바른지 확인하세요!

 

자세히 보시면 하이(high)와 로우(low)에 대해 각각 1000초로 설정된 두 개의 지연 값이 있습니다. 이 값을 500초로 변경한 다음 "체크 표시"와 "화살표"를 다시 클릭하세요. 그러면 깜빡임 속도가 두 배 빨라집니다. 이 값들은 독립적으로 설정할 수 있으며, 하이(high) 시간은 LED가 켜져 있는 시간이고 로우(low) 시간은 꺼져 있는 시간입니다.

 

이제 프로그래밍이 완료되었으며, USBasp에서 분리하고 5V 전원에 연결하면 LED가 깜빡입니다.

 

브레드보드를 ​​USBasp에서 분리하고 5볼트 전원에 연결하면 LED가 깜빡입니다. 이제 그렇게 작동하도록 프로그래밍되었기 때문입니다.

 

USBasp 펌웨어 업데이트

 

USBasp의 펌웨어를 업데이트하고 싶으시다면, 여기에서 업데이트 방법을 확인하실 수 있습니다.

 

USBasp 펌웨어 업데이트.

 

USBasp를 이용한 ATtiny85 프로그래밍에 대한 최종 생각

 

LED를 깜빡이게 하는 게 꽤 번거로워 보일 수도 있지만, 사실 이 실습의 핵심은 그게 아닙니다. 여러분은 노트북을 설정하고 USBasp를 이용해 ATtiny85 마이크로컨트롤러를 프로그래밍하는 방법을 배웠습니다. 이 실습에서는 단순히 LED를 깜빡이게 했지만, 이 마이크로컨트롤러는 훨씬 더 많은 기능을 수행할 수 있습니다.

 

이제 프로그래밍을 할 수 있게 되었으니 만들어 볼 수 있는 프로젝트가 아주 많습니다. 직접 프로그래밍을 배우는 것도 좋은 방법인데, 그러면 더 많은 아이디어를 떠올릴 수 있을 거예요. 위에 나온 설명이 어렵다면 단계별로 나눠서 시도해 보세요. 한 단계를 익히고 나면 다음 단계로 넘어가면 됩니다.

 

이 방법을 알기 전에는 그 과정이 너무 어렵다고 생각했지만, 포기하지 않고 계속 시도하길 잘했다고 생각합니다.

 

 

https://www.bestsoldering.com/programming-an-attiny85-with-a-usbasp/

 

이미지 출처 사이트 참고

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩