반응형

USBASP로 ATtiny13을 프로그래밍 할 수 있다. Arduino를 이용한 프로그래밍과 기본적인 설정 방법은 아래 링크를 참고 한다.

 

2020/04/02 - [Raspberry Pi & Arduino] - Programming ATtiny13 with Arduino Uno - 아두이노로 ATtiny13 프로그래밍 하기

 

AliExpress에서 구매한 USBASP.

 

Adaptor와 함께 구매 했다.

 

컴퓨터에 연결 한다.

 

드라이버가 설치되지 않았다면 제대로 인식하지 못한다.

 

 

 

https://zadig.akeo.ie/

위 링크에서 Zadig를 다운 받는다.

zadig-2.5.exe
4.92MB

 

드라이버를 설치 한다.

 

장치가 제대로 인식 된다.

 

ATtiny13에 기본적인 Blink 예제를 프로그래밍 할 수 있도록 케이블을 연결 한다.

USBASP RESET - ATtiny pin 1

USBASP MOSI - ATtiny pin 5

USBASP MISO - ATtiny pin 6

USBASP SCK - ATtiny pin 7

USBASP 5V - ATtiny pin 8

USBASP GND - ATtiny pin 4

 

Optional:

ATtiny pin4(GND) - Negative side of the LED

ATTiny pin 3 - Resistor (330 Ohm) - Positive side of the LED

 

 

 

프로그램을 컴파일 하고 업로드 해도 warning이 발생하고 제대로 작동 하지 않는다. USBASP의 Firmware를 업데이트 해야 한다.

 

https://sourceforge.net/projects/ardude/

위 링크에서 Arduino AVR Dude Programmer를 다운 받고 설치한다. (설치하지 않고 cab 파일의 압축만 풀어도 상관 없다)

Arduino AVR Dude Programmer.zip
1.99MB

 

https://www.fischl.de/usbasp/

위 링크에서 usbasp.2011-05-28.tar.gz를 다운 받고 압축을 풀어서 usbasp.atmega8.2011-05-28.hex파일을 Arduino AVR Dude Programmer가 있는 폴더에 복사 한다. (USBASP의 칩셋이 ATMEGA8인지 확인 한다)

usbasp.2011-05-28.tar.gz
0.51MB

 

컴퓨터에 Arduino만 연결한 상태에서 File - Examples - 11. ArduinoISP - ArduinoISP를 컴파일 하고 업로드 한다.

 

 

 

 

USBASP의 Firmware를 업데이트 할 수 있도록 케이블을 연결 한다.

USBASP RESET - Arduino pin 10

USBASP MOSI - Arduino pin 11

USBASP MISO - Arduino pin 12

USBASP SCK - Arduino pin 13

USBASP 5V - Arduino 5V

USBASP GND - Arduino GND

 

Arduino RESET - (+) 10㎌ Capacitor (-) - Arduino GND (Capacitor를 연결하지 않으면 Firmware 업데이트가 제대로 되지 않는다)

USBASP JP1(JP2로 표시된 제품도 있다) 연결

 

avrdude가 있는 폴더(Arduino AVR Dude Programmer를 설치한 폴더)로 이동 해서 아래 명령어를 실행 한다.

avrdude -C avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -v

(COM 포트는 실제 포트를 적어준다.)

 

이상이 없다면 AVR device initialized and ready to accept instructions라는 메세지가 나온다.

 

아래 명령어를 실행 한다.

avrdude -C avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex

Verify까지 완료되면 USBASP의 Firmware 업데이트가 끝난다.

 

USBASP로 Blink 예제를 프로그래밍 할 수 있도록 케이블을 다시 연결 한다.

USBASP RESET - ATtiny pin 1

USBASP MOSI - ATtiny pin 5

USBASP MISO - ATtiny pin 6

USBASP SCK - ATtiny pin 7

USBASP 5V - ATtiny pin 8

USBASP GND - ATtiny pin 4

 

Optional:

ATtiny pin 4(GND) - Negative side of the LED

ATTiny pin 3 - Resistor (330 Ohm) - Positive side of the LED

 

 

 

Programmer: "USBasp (slow)"로 설정 한다. USBasp로 설정 하면 에러가 발생 한다.

 

컴파일 하고 업로드 한다.

 

ATtiny13에 프로그램이 업로드 되고 정상 작동 한다.

 

반응형
Posted by J-sean
:
반응형

기본적인 ATtiny 프로그래밍 방법은 아래 링크에서 확인 할 수 있다.

 

2020.04.02 - [Raspberry Pi & Arduino] - Programming ATtiny13/85 with Arduino Uno - 아두이노로 ATtiny13/85 프로그래밍 하기

 

 

링크의 소스를 사용해 위 그림과 같이 저항과 LED만 연결한 간단한 회로도 LED on시 9.25mA, LED off시 0.98mA의 전류를 소비한다. delay()로 MCU가 아무것도 안하는 상황에서 0.98mA의 전류를 소비하는 것이다. 전원이 계속 공급되는 상황이라면 문제될게 없겠지만 배터리를 사용한다면 전류 사용량을 최소화해서 배터리가 오래 가도록 하는게 좋다.

 

아두이노로 ATtiny를 프로그래밍 할 수 있도록 준비 한다.

 

 

 

 

dealy()가 아닌 sleep_cpu()를 사용해 MCU가 Sleep Mode로 들어 갈 수 있도록 소스를 작성 한다. 64마이크로초 동안 켜졌다 2초 동안 꺼지는 소스이다. 멀티미터로 전류 사용량을 확인해 보면 LED on시 8.34mA, LED off시 0.00mA로 표시 된다. LED off시에는 0.01mA의 전류도 사용하지 않는 것이다. 아주 짧은 시간 동안만 LED가 켜지고 대부분의 시간은 0.01mA 이하의 전류만 사용 하므로 배터리 사용 시간이 훨씬 더 길어지게 된다.

 

반응형
Posted by J-sean
:
반응형

아두이노를 이용해 ATtiny13/85를 프로그래밍 할 수 있다. USBASP를 이용한 프로그래밍은 아래 링크를 참고 한다.

 

2020/05/07 - [Raspberry Pi & Arduino] - Programming ATtiny13 with USBASP - USBASP로 ATtiny13 프로그래밍 하기

 

 

 

 

Arduino를 실행 한다.

 

File - Examples - 11.ArduinoISP - ArduinoISP를 선택 한다.

 

Arduino Uno를 연결하고 Upload한다.

 

 

 

 

Upload가 완료 되면 새로운 sketch에서 File - Preferences를 선택 한다.

 

Additional Boards Manager URLs:에 아래 링크를 입력하고 OK를 클릭 한다.

 

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

 

Tools - Board - Boards Manager...를 선택 한다.

 

Attiny를 검색하고 ATtiny13 board를 설치 한다.

 

 

 

 

Tools에서 아래와 같이 설정을 변경 한다.

 

Board: ATtiny13

BOD: BOD 4.3v

Clock: 1.2 MHz internal osc.

Port: (Your Arduino port)

Programmer: Arduino as ISP

 

위 사진과 같이 연결 한다.

 

Attiny13 Pin Configuration

 

Ardunio pin 10 - ATtiny pin 1

Arduino pin 11 - ATtiny pin 5

Arduino pin 12 - ATtiny pin 6

Arduino pin 13 - ATtiny pin 7

Arduino 5V - ATtiny pin 8

Arduino GND - ATtiny pin 4

 

Optional:

ATtiny pin 4(GND) - Negative side of the LED

ATTiny pin 3 - Resistor (330 Ohm) - Positive side of the LED

 

그리고 Tools - Burn Bootloader를 클릭해 부트 로더를 굽는다.

 

 

 

이제 모든 준비가 끝났다. 원하는 코드를 입력하고 업로드 하면 ATtiny에 프로그램이 업로드 된다.

위와 같이 LED가 1초 주기로 깜빡이는 소스를 입력 하고 Upload 해 보자. Upload가 끝나면 LED가 1초 주기로 깜빡인다.

Arduino IDE 2.X를 사용한다면 그냥 Upload 버튼으로 업로드 할 수 없다. 아래 내용을 참고한다.

 

케이블을 모두 제거 하고 3.0V 배터리만 연결해도 최대 10MHz의 속도로 작동 한다.

 

 

ATTiny85도 특별히 다른 부분은 없다. 같은 방법으로 구성하고 세팅만 위와 같이 바꿔준다.

 

Arduino IDE 2.0 부터는 프로그래머를 이용한 업로드 방법이 바뀌었다. Arduino 1.X처럼 그냥 Upload 하면 A programmer is required to upload. 라는 에러 메세지가 나온다.

위와 같이 Sketch - Upload Using Programmer를 선택해 업로드 해야 한다.

 

반응형
Posted by J-sean
: