- USB를 통해 ATtiny85를 프로그래밍하는 데 필요한 구성 요소
- ATtiny85 마이크로 컨트롤러 IC – 소개
- Arduino Uno를 사용하여 ATtiny85에서 부트 로더 플래싱
- ATtiny 프로그래머를위한 회로도
- Digispark 드라이버 설치
- ATttiny85를 프로그래밍하도록 Arduino IDE 설정
ATtiny 제품군은 AVR 시장에서 가장 작은 마이크로 컨트롤러 중 하나입니다. 이러한 마이크로 컨트롤러는 Arduino 플랫폼에서 사용 가능한 많은 라이브러리를 활용할 수 있습니다. ATtiny85 마이크로 컨트롤러 칩은 8 핀, 8 비트, AVR 마이크로 컨트롤러입니다. 작은 크기와 낮은 전력 소비로 인해 설치 공간이 작고 전력 요구 사항이 낮은 휴대용 프로젝트에 적합합니다. 그러나 마이크로 컨트롤러 보드와 같은 USB 인터페이스가 없기 때문에 코드를 칩에 가져 오는 것은 약간 어려울 수 있습니다.
이전 튜토리얼에서 Arduino Uno를 사용하여 ATtiny85를 프로그래밍했습니다. 그러나 Attiny85를 Arduino에 연결하고 Arduino를 ISP로 사용하는 것은 어렵고 시간이 많이 소요될 수 있습니다. 따라서이 튜토리얼에서는 다른 마이크로 컨트롤러 보드처럼 직접 플러그인하고 프로그래밍 할 수 있도록 ATtiny85 프로그래밍 보드 를 구축 할 것입니다.
USB를 통해 ATtiny85를 프로그래밍하는 데 필요한 구성 요소
- Arduino UNO (부트 로더 업로드 중 처음 만 해당)
- ATtiny85 IC
- USB A 형 플러그 수
- 3 개의 저항기 (2 × 47Ω 및 1 × 1kΩ)
- 3 개의 다이오드 (2 × Zener 다이오드 및 1 × IN5819 다이오드)
- 8 핀 IC베이스
- 브레드 보드
- 점퍼 와이어
ATtiny85 마이크로 컨트롤러 IC – 소개
Atmel의 ATtiny85는 고급 RISC 아키텍처를 기반으로하는 고성능, 저전력 8 비트 마이크로 컨트롤러 입니다. 이 마이크로 컨트롤러 칩은 8KB ISP 플래시 메모리, 512B EEPROM, 512 바이트 SRAM, 6 개의 범용 I / O 라인, 32 개의 범용 작업 레지스터, 비교 모드가있는 1 개의 8 비트 타이머 / 카운터, 1 개의 8 비트 고속 타이머 / 카운터, USI, 내부 및 외부 인터럽트, 4 채널 10 비트 A / D 컨버터, 내부 발진기가있는 프로그래밍 가능 감시 타이머, 3 가지 소프트웨어 선택 가능 절전 모드 및 온칩 디버깅을위한 debugWIRE. ATtiny85 핀아웃 은 다음과 같습니다.
칩의 대부분의 I / O 핀에는 둘 이상의 기능이 있습니다. 각 핀에 대한 ATtiny85 핀 설명 은 아래 표에 나와 있습니다.
핀 번호 |
핀 이름 |
핀 설명 |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: 핀 변경 인터럽트 0, 소스 5 RESET: 핀 재설정 ADC0: ADC 입력 채널 0 dW: WIRE I / O 디버그 |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: 핀 변경 인터럽트 0, 소스 3 XTAL1: 수정 발진기 Pin1 CLKI: 외부 클록 입력 ADC3: ADC 입력 채널 3 |
삼 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: 핀 변경 인터럽트 0, 소스 4 XTAL2: 수정 발진기 핀 2 CLKO: 시스템 클록 출력 OC1B: 타이머 / 카운터 1 비교 매치 B 출력 ADC2: ADC 입력 채널 2 |
4 |
GND |
접지 핀 |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI 마스터 데이터 출력 / 슬레이브 데이터 입력 DI: USI 데이터 입력 (3 선 모드) SDA: USI 데이터 입력 (2 와이어 모드) AIN0: 아날로그 비교기, 포지티브 입력 OC0A: 타이머 / 카운터 0 비교 일치 A 출력 AREF: 외부 아날로그 기준 PCINT0: 핀 변경 인터럽트 0, 소스 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI 마스터 데이터 입력 / 슬레이브 데이터 출력 DO: USI 데이터 출력 (3 선 모드) AIN1: 아날로그 비교기, 네거티브 입력 OC0B: 타이머 / 카운터 0 비교 매치 B 출력 OC1A: 타이머 / 카운터 1 비교 매치 A 출력 PCINT1: 핀 변경 인터럽트 0, 소스 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: 직렬 클록 입력 USCK: USI 시계 (3 선 모드) SCL: USI 클록 (2 와이어 모드) ADC1: ADC 입력 채널 1 T0: 타이머 / 카운터 0 클럭 소스 INT0: 외부 인터럽트 0 입력 PCINT2: 핀 변경 인터럽트 0, 소스 2 |
8 |
VCC |
공급 전압 핀 |
Arduino Uno를 사용하여 ATtiny85에서 부트 로더 플래싱
Arduino없이 ATtiny85 를 프로그래밍하려면 먼저 Arduino UNO 보드를 사용하여 부트 로더를 업로드해야합니다. 이것은 일회성 프로세스이며이 작업이 완료된 후에는 UNO 보드가 다시 필요하지 않습니다. 부트 로더는 프로그래밍해야하는 마이크로 컨트롤러에서 실행되는 특수 프로그램입니다. 프로그램 데이터를 마이크로 컨트롤러에로드하는 가장 편리한 방법 중 하나는 부트 로더를 사용하는 것입니다. 부트 로더는 MCU에 앉아 수신 명령을 수행 한 다음 새로운 프로그램 정보를 마이크로 컨트롤러의 메모리에 기록합니다. 마이크로 컨트롤러에서 부트 로더를 플래시하면 마이크로 컨트롤러를 프로그래밍하기위한 특수 외부 하드웨어 (프로그래머 보드)가 필요하지 않으며 USB 연결을 사용하여 직접 프로그래밍 할 수 있습니다. Digispark ATtiny85보드는 원래 Bluebie가 작성한 "micronucleus tiny85"부트 로더를 실행합니다. 부트 로더는 Digispark에 사전 프로그래밍 된 코드로, Arduino IDE에서 프로그래밍 할 수 있도록 USB 장치로 작동 할 수 있습니다. 또한 ATtiny85 에서 동일한 digispark attiny85 부트 로더 를 플래시 할 것 입니다.
Arduino Uno 및 Arduino IDE를 사용하여 ATtiny85에 부트 로더를 플래시하는 단계별 가이드는 다음과 같습니다.
1 단계: Arduino Uno를 ISP로 구성:
ATtiny85는 단지 마이크로 컨트롤러이기 때문에 ISP (In-System Programming)를 프로그래밍해야합니다. 따라서 ATtiny85를 프로그래밍하려면 먼저 Arduino Uno를 ISP로 구성하여 ATtiny85의 프로그래머 역할을해야합니다. 이를 위해 Arduino Uno를 노트북에 연결하고 Arduino IDE를 엽니 다. 그런 다음 File> Example> ArduinoISP로 이동 하여 Arduino ISP 코드를 업로드합니다.
2 단계: ATtiny85에서 부트 로더를 플래싱하기위한 회로도:
ATtiny85의 Flashing Boot-loader에 대한 전체 회로도는 다음과 같습니다.
Arduino의 Reset과 GND 핀 사이에는 10µf 커패시터가 연결되어 있습니다. 전체 연결은 아래 표에 나와 있습니다.
ATtiny85 핀 |
Arduino Uno 핀 |
Vcc |
5V |
GND |
GND |
핀 2 |
13 |
핀 1 |
12 |
핀 0 |
11 |
초기화 |
10 |
이제 Arduino Uno를 노트북에 연결하고 Arduino IDE를 엽니 다. Uno가 연결된 COM 포트를 찾으십시오. 제 경우에는 COM5입니다.
그런 다음 주어진 링크에서 ATtiny85 부트 로더 파일을 다운로드하십시오. " Burn_AT85_bootloader.bat "를 열고 Uno가 연결된 COM 포트 번호로 COM 포트 번호 "PCOM5"를 변경합니다. 종료하기 전에 변경 사항을 저장하십시오.
이제 편집 된 " Burn_AT85_bootloader.bat "및 " ATtiny85.hex "파일을 Arduino IDE 루트 폴더 (C: \ Program Files (x86) Arduino)로 이동합니다.
그런 다음 " Burn_AT85_bootloader.bat "를 마우스 오른쪽 버튼으로 클릭하고 " 관리자 권한으로 실행"을 선택합니다. 부트 로더를 플래시하는 데 약 5 ~ 6 초가 걸립니다. 모든 것이 순조롭게 진행되면 "AVRdude 완료. 감사합니다. 계속하려면 아무 키나 누르십시오…"라는 메시지가 표시됩니다.
이것으로 부트 로더가 ATtiny85 칩에 성공적으로 설치됩니다. 이제 USB를 ATtiny85와 연결하여 직접 프로그래밍 할 수 있습니다. USB를 통해 ATtiny85 를 프로그래밍하는 회로도 는 다음과 같습니다.
ATtiny 프로그래머를위한 회로도
회로도는 Digispark ATtiny85 보드 회로도에서 가져 왔지만 ATtiny85 용 프로그래머 를 구축하려는 목적으로 남성 USB 플러그를 ATtiny85 와만 연결합니다.
R3는 IC의 Vcc 핀과 PB3 핀 사이에 연결되는 풀업 저항이며 전체 USB 인터페이스 보호를 위해 제너 다이오드 (D1-D2)가 추가됩니다. 성능 보드의 모든 구성 요소를 납땜하면 다음과 같이 보입니다.
Digispark 드라이버 설치
USB를 사용하여 ATtiny85를 프로그래밍하려면 노트북에 Digispark 드라이버가 설치되어 있어야합니다. 그렇지 않은 경우 위에 제공된 링크를 사용하여 다운로드 할 수 있습니다. 그런 다음 zip 파일의 압축을 풀고 “ DPinst64.exe ”응용 프로그램을 두 번 클릭 하여 드라이버를 설치합니다.
드라이버가 성공적으로 설치되면 ATtiny85 보드를 노트북에 연결합니다. 이제 Windows의 장치 관리자로 이동하면 ATtiny85 장치가 "libusb-win32 장치"아래에 "Digispark Bootloader"로 나열됩니다. 장치 관리자에서 'libusb-win32 장치'를 찾을 수없는 경우 보기 로 이동하여 '숨겨진 장치 표시'를 클릭하십시오.
ATttiny85를 프로그래밍하도록 Arduino IDE 설정
Arduino IDE로 ATtiny85 보드를 프로그래밍하려면 먼저 Digispark 보드 지원을 Arduino IDE에 추가해야합니다. 이를 위해 파일> 환경 설정으로 이동 하여 추가 게시판 관리자 URL에 아래 링크를 추가하고 '확인'을 클릭하십시오.
그런 다음 도구> 게시판> 게시판 관리자 로 이동하여 'Digistump AVR'을 검색하여 최신 버전을 설치하십시오.
설치 후 이제 Board 메뉴에서 'Digispark' 라는 새 항목을 볼 수 있습니다.
이제 파일> 예제> 기본으로 이동 하여 Blink 예제를 엽니 다.
거기에있는 핀 번호를 LED_BUILTIN에서 0으로 변경합니다.
이제 Tools- > Board 로 돌아가 " Digispark (기본값 – 16mhz) "보드를 선택합니다. 그런 다음 Arduino IDE에서 업로드 버튼을 클릭하십시오.
참고: Arduino IDE가 "지금 플러그인 장치"라는 메시지를 표시 할 때만 ATtiny85 보드를 컴퓨터에 연결하십시오.
코드가 업로드되면 ATtiny85에 연결된 LED가 깜박이기 시작합니다.
이것이 바로 ATtiny85 Arduino 프로그래밍 보드를 구축하는 방법 입니다. 동일한 작업 비디오가 아래에 제공됩니다. 질문이 있으면 댓글 섹션에 남겨주세요. 기타 기술적 질문에 대해서는 포럼에서 토론을 시작할 수도 있습니다.