부트로딩 요청 댓글 남겨주세요 (이메일,연락처 남겨주시면 편합니다.)
Naver
http://arduino-er.blogspot.kr/2015/01/use-arduino-uno-as-isp-to-burn.html
▲아두이노 부트로더(=Arduino BootLoader) 출처
부트로더란 컴퓨터 OS에 해당한다.
아두이노 칩이 AVR 계열인데 그냥쓰면 AVR코드를 써야한다.
아두이노용으로 쓰려면 ATmega328칩에 Bootloader를 얹어서 Arduino코드를 사용할 수 있게끔 해줘야 한다.
This post show how to use Arduino Uno as "Arduino as ISP", to burn bootloader on a empty ATmega328, marked ATMEGA328P-PU.
비어있는 ATMega328P-PU칩에 BootLoader를 얹어서 Arduino용 칩으로 만드는 방법을 설명하려한다.
여기서 잠깐 BoootLoader가 무엇인지 쉽게 설명하려한다.
일종의 컴퓨터 OS라고 이해하시면 된다.
컴퓨터에 Windows가 없이는 안되듯이 ATmega328P-PU칩에도 BootLoader없이는 Arduino가 될 수없다.
우선 시작전에 Arduino Uno와 ATmega328P-PU칩의 연결을 정리하고 넘어가자
Arduino 13번핀 <===> PB5(SCK)
Arduino 12번핀 <===> PB4(MISO)
Arduino 11번핀 <===> PB3(MOSI)
Arduino 10번핀 <===> PC6(RESET)
Arduino VCC <===> AVcc (pin20)
Arduino GND <===> GND
Xtal 16MHz연결하고 Capacitor 약22p을 연결하고 GND로 연결한다.
회로는 맨위의 출처 사이트를 참고하면 된다.
▼AVCC & AREF에 대한 정의들(출처)
AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6.
It should be externally connected to VCC, even if the ADC is not used.
If the ADC is used, it should be connected to VCC through a low-pass filter.
Note that PC6..4 use digital supply voltage, VCC.
AREF is the analog reference pin for the A/D Converter.
If you're not using the A/D, you don't need to connect AREF.
http://www.avrfreaks.net/sites/default/files/avrfreaks-vcc-avcc-aref.gif
▲위 그림을 통해서 알 수있듯이 Vcc와 AVcc는 상호간에 연결되있있다.
다만 차이가 있다면 LowPass Filter가 적용되서 Noise가 줄어들었다는 점이다.
이제 Arduino IDE로 와서 순서를 정리해보자.
아두이노를 ISP로 사용하여 BreadBoard에 있는 비어있는 ATmega328P-PU에 BootLoader를 얹을 예정이다.
이 상태에서
파일>> 예제 >>ArduinoISP를 선택하고
이제 부트로더 굽기를 누르면 BootLoader 얹기가 마무리된다.
▼영문으로 요약된 Bootload 순서
Program your Arduino Uno to be "Arduino as ISP":
- Connect Arduino Uno to PC with USB cable.
- Select Tools -> Port and your current connected Board (Arduino Uno).
- Select File -> Examples of ArduinoISP.
- Compile and upload to your Arduino Uno board.
- Once finished, your Arduino Uno is a "Arduino as ISP" now.
Burn bootloader to Atmega328, using your "Arduino as ISP":
- Select Tools -> Board, it is the board on which you want to burn the bootloader, not your current connect board. I will use Arduino Uno as target to verify my steps and setup later, so I keep using Arduino Uno.
- Select Tools -> Programmer of "Arduino as ISP".
- Select Tools -> Burn Bootloader
- Done.
http://arduino-er.blogspot.kr/2015/01/use-arduino-uno-as-isp-to-burn.html
▲9,10번핀에 16MHz Crystal발진기 연결
양쪽끝 핀을 각각 22pF에 연결후 GND로 접지시켜준다. (LOW-Pass Filter를 통해서 미세한 Noise를 잡아주는 역할을 한다.)
그리고 잊지말고 10K pull-up저항을 Reset(1번 핀)에 연결.
AVcc(20번 핀)를 Arduino Uno의 5V에,
GND는 GND끼리.
연결이 끝았다면
파일>>예제>ArduinoISP로 들어가고 코드를 업로드한다.
(COM포트 맞춰주고, 보드는 UNO, 프로그래머는 AVRISP mkII (☜Default 이다.))
우선 업로드한 상태에서
툴>>프로그래머>>Arduino as ISP
이제 ArduinoISP코드가 들어간 Arduino가 다운로더 역할을 하고, ATmega328p-pu가 Target이 된다.
이제 툴>>부트로더 굽기를 눌러준다.
위 방법이 번거롭다 싶은 분은 아래 YouTube를 참고해주세요
11 to 11
12 to 12
13 to 13
10 to Reset(=Target Board)
Vcc to Vcc
GND to GND
Arduino끼리 연결하는 방법을 쓸때는
한쪽은 DIP타입의 MCU가 부착된 칩을 쓰고,
반대쪽은 SMD타입의 MCU가 부착된 칩을 쓰면된다.
DIP타입의 칩이 Target보드가 된다.
YouTube에서 처럼 Jumper를 연결해도 되고, ICSP를 연결하는 곳에 IDE케이블을 통해 Bootloading 하면 좀더 편하다.
▼위 방법도 귀찮다 싶은 분은 아래 Shield를 사용하는걸 권한다.
(문의 댓글 주셔도 됩니다.)