현재 Arduino Uno (rev3) 보드를 사용하는 프로젝트를 진행 중입니다. 결국 Arduino에서 독립 실행 형으로 돌릴 수 있으며 프로그래밍 및 부트 로더 전체가 어떻게 작동하는지 생각하게되었습니다. 여기 Arduino 프로그래밍 모드, 부트 로더, ISP로서 Arduino
내가 아는 것입니다/지금까지 가정보드는 두 개의 칩이 다음 ATmega328 (주 칩)와 (A USB 직렬 bidge으로 사용)를 ATmega16u2합니다.
ATmega16u2의 펌웨어는 DFU- 모드를 활성화하고 예를 들어를 사용하여 변경할 수 있습니다. DFU-Programmer. Arduino는 HDI/Midi 장치로 인식 될 수 있지만 더 이상 프로그래밍 할 수 없습니다.
ATmega328을 프로그래밍 할 때 칩이 재설정되고 다시 시작될 때 부트 로더는 직렬 연결과 ATmega16u2 브리지를 통해 새 프로그램을로드하고 씁니다. 칩의 ISP 인터페이스는 새 프로그램을 업로드하는 데 사용되지 않습니다. 누가 처음부터 재설정을 시작합니까?
Arduino는 다른 외부 칩을 프로그래밍하는 ISP- 프로그래머로 사용할 수 있습니다. 이를 위해 일부 펌웨어는 AATmega328에로드되며 프로그래밍 할 칩의 ISP 핀은 Arduino 보드의 핀에 연결됩니다. 그런 다음 Arduino-IDE는 Atmega328을 다시 프로그래밍하지 않고 프로그래머로 사용하도록 구성됩니다.
적어도 제가 작성한 내용 중 대부분은 정확합니다. 내 질문은 다음과 같습니다.
새 보드/빈 AVR을 보드에 올려 놓으면 부트 로더가 어떻게 칩에 도착합니까? "Burn Bootloader"명령은 어떻게 작동합니까?
부트 로더를 먼저 업로드하지 않고 16 진수 파일을 ATmega328에 업로드 할 수 있습니까? ATmega16u2에서 특정 펌웨어를 사용하여이 작업을 수행 할 수 있습니까?
감사합니다.
요하네스