개발자/Arduino

Arduino 에서 ATtiny13, ATtiny13a 프로그래밍하는 방법

지구빵집 2022. 2. 18. 18:07
반응형

 

 

ATtiny 시리즈는 매우 저렴하고 유용한 것으로 간주되지만 여전히 이에 대한 프로젝트와 튜토리얼이 부족합니다. 이 튜토리얼에서는 Arduino IDE를 사용하여 프로그래밍된 ATtiny13 마이크로컨트롤러를 사용하여 애플리케이션 빌드를 시작하는 방법을 배웁니다. 

 

ATtiny13 microcontroller

 

우선 ATtiny13은 AVR 강화 RISC 아키텍처를 기반으로 하는 저전력 CMOS 8비트 마이크로컨트롤러입니다. 단일 클록 주기에서 강력한 명령을 실행함으로써 ATtiny13은 MHz당 1 MIPS에 가까운 처리량을 달성하여 시스템 설계자가 처리 속도 대비 전력 소비를 최적화할 수 있습니다. Microchip이 Atmel을 인수한 후 새로운 ATtiny13 은 여전히 생산 중입니다. 

 

필요한 부품

  • Arduino(Uno 또는 기타 Arduino)
  • ATtiny13 또는 13a
  • 브레드보드
  • 점퍼 와이어 

 

회로 연결 

 

하드웨어를 연결하려면 먼저 이미지와 같이 ATtiny의 방향을 지정해야 합니다. 먼저 Arduino 5V를 ATtiny 핀 8에 연결합니다. 각각 GND를 핀 4에, 핀 13을 핀 7에, 핀 12를 핀 6, 핀 11을 핀 5, 마지막으로 핀 10을 핀 1에 연결합니다. 

 

ATtiny 연결도

 

더 알아보기 쉬운 회로 연결도

 

ATtiny 연결도

 

 

ATtiny13 프로그래밍  

 

ATtiny13을 프로그래밍하려면 Arduino를 프로그래머로 설정해야 합니다. 이것은 IDE에서 이 경로(파일 -> 예제 -> ArduinoISP)를 따라 ArduinoISP 스케치를 Arduino에 업로드하면 발생할 수 있습니다. 

 

Files -> Examples -> ArduinoISP

 

이제 Arduino는 ATtiny 13을 프로그래밍할 준비가 되었지만, 여전히 핵심 파일을 설치하여 ATtiny를 설정해야 합니다. 이 튜토리얼에서는 sleepmanj 의 파일이 가장 좋습니다. 

 

이 파일을 설치하려면 Arduino IDE를 열고 파일 드롭다운 메뉴로 이동한 다음 기본 설정을 선택합니다. 이 URL

 

https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json

 

을 "추가 보드 관리자 URL:"이라고 붙여넣습니다. 여기에 이미 URL이 있고 더 추가하려면 URL을 쉼표와 공백으로 구분하십시오. 

 

Additional Boards Manager URLs 추가

 

이제 도구 보드로 이동하여 "보드 관리자" 를 클릭합니다. 이제 DIY ATtiny가 보일 때까지 아래로 스크롤하고 설치 버튼을 클릭합니다. 

 

부트로더를 ATtiny13에 굽기 

 

실제로 부트로더는 직렬 통신을 통해 새 펌웨어를 설치할 수 있는 마이크로컨트롤러의 펌웨어입니다. ATtiny 13 프로그래밍을 시작하려면 부트로더를 구워야 합니다. 이를 달성하기 위한 두 단계가 있습니다.

 

첫째, 도구-보드로 이동하여 ATtiny13을 선택하고,

둘째, 도구 드롭다운 메뉴 하단에 있는 부트로더 굽기 버튼을 클릭합니다. ATtiny 버전에 주의를 기울이고 Tools-Processor Version으로 이동하여 칩에 따라 ATtiny13 또는 ATtiny13a를 선택해야 합니다. 

 

칩 선택

 

부트로더 굽기 선택

 

부트로더를 굽고 나면 이제 ATtiny를 프로그래밍할 준비가 되었습니다. 이제 Blink 스케치와 같은 Arduino IDE 예제를 시도할 수 있습니다. Blink가 올바르게 작동하는지 확인하려면 먼저 아래 다이어그램을 확인해야 합니다. 

 

pinout diagram

 

바로 여기에서 핀 3은 하드웨어에서 PB4로 정의됩니다. 이제 편집된 코드를 살펴보겠습니다. 

 

//We will replace "LED_BUILTIN" with "4" since ATtiny does not have a built-in led!
void setup() {
  // initialize digital Pin 3 of ATtiny 13(defined in hardware as 4) as an output.
  pinMode(4, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(4, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(4, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

 

다음으로 그림과 같이 적절한 저항을 사용하여 핀 3과 GND 사이에 LED를 추가하여 회로를 수정합니다.

 

Test 회로 추가하여 구성

 

 

문제 해결 

 

이 프로젝트를 빌드하는 동안 문제가 발생한 경우 이 목록을 확인하여 프로젝트 문제를 해결할 수 있습니다. 

 

• ATtiny와 LED의 모든 연결과 방향을 다시 확인하십시오.

• ArduinoISP 스케치를 Arduino에 다시 업로드합니다.

• Arduino의 접지와 리셋 사이에 10uf 전해 콘덴서를 연결하십시오. 커패시터를 올바른 방향으로 꽂았는지 확인하십시오. 음극은 접지로 연결됩니다.

• 5v와 브레드보드의 접지 사이에 큰 커패시터를 연결하면 전압 스파이크를 완화하는 데 도움이 됩니다.

• ATtiny를 프로그래밍하는 Arduino에 충분한 전력이 공급되고 있는지 확인하십시오. 9 볼트 배터리는 작동하지 않을 수 있습니다.

• Arduino를 다른 Arduino로 전환하십시오.

• 최신 IDE와 최신 코어 파일을 사용하고 있는지 확인하십시오.

• 도구를 클릭하고 드롭다운 메뉴가 부트로더 굽기” 단계에 표시된 메뉴와 동일한지 확인합니다. 뭔가 다르면 변경하고 부트로더를 다시 굽습니다. 

 

또한 무엇이 잘못되었는지 파악하는 동안 다음 구성 요소가 필요할 수 있습니다. 10uf 전해 커패시터 대형 전해 커패시터(>100uF)로 변경.

 

이제 모든 설정이 완료되었습니다. 이제 Arduino IDE를 사용하여 프로그래밍된 ATtiny로 새로운 아이디어와 응용 프로그램을 테스트할 시간입니다! 

 

참고

Updated Guide on How to Program an Attiny13a or 13 With the Arduino IDE 

NotoriousRapper2Chainz 

 

여기도 참고: Learn How to Program ATtiny85 and ATtiny13A 

 

ATtiny13-Datasheet.pdf
2.89MB

 

ATtiny13a-Datasheet.pdf
4.13MB

 

집중하고 또 집중하기, 제대로 방향을 잡지 못하면 다 망한다. 쫄딱 망한다. 정말 망한다고.

 

 

 

 

 

반응형