Arduino Uno를 벽돌로 만들었습니까? 보드에 업로드 문제


86

Arduino Uno에 스케치를 업로드 할 수 없습니다.

  • 내가 "벽돌"했습니까?
  • 무엇이 잘못되었는지를 해결하기 위해 어떤 조치를 취할 수 있습니까?
  • 이 문제를 해결하려면 어떻게해야합니까?

7
궁금한 사람들에게는 이것이 실제 질문이 아닙니다! 더 많은 참조 질문입니다. 질문 자체는 의도적으로 상당히 광범위합니다. 그러나 대답은 매우 자세하므로이 질문을 참조로 사용할 수 있습니다.
Paul

2
더 많은 참조 질문입니다. 꽤 맞습니다. 자신의 질문을하고 대답하는 것이 좋습니다 참조하십시오 .
Nick Gammon

@Nick_Gammon 네. 그러나 나는 당신이 어딘가에 그것을 지적해야한다고 생각합니다. 언뜻보기에 나는 그 질문이 너무 광범위해서 당신이 어떤 연구도하지 않은 것처럼 보였기 때문에 (약간) 화가났다. 그러나 당신의 대답을 보았을 때 모든 것이 합리적이었습니다. 또한 (가능한 경우) 자신의 답변을 받아들이는 것을 잊어서는 안됩니다. 따라서 도움을 구하려는 다른 사람들이 이에 대한 질문에 대답하거나 조사하거나 의견을 제시하지 않습니다. 이미이 문제를 디버깅하는 좋은 방법을 찾았습니다).
Paul

피드백 주셔서 감사합니다. 처음에는 본인의 답변을 게시하겠다는 메모와 함께 질문을 게시하려고 생각했지만 "자신의 질문에 답변"확인란이 표시되어 대신 표시했습니다. 그것을 받아들이는 것에 관해서는, 나는 20 시간 동안 허용되지 않습니다. 자신의 대답을 받아들이는 것이 조금 이상해 보였지만, 내가 허락 할 때 분명히 그렇게 할 수 있습니다. Meta Arduino에 대해 질문했습니다 . 정식 질문이란 무엇입니까? 올바른 절차를 시도했지만 응답이 없습니다.
Nick Gammon

@ Fuaze와 Nick Gammon : 이것은 일반적으로 훌륭해 보입니다. 제가 제안하는 유일한 제안은 주제와 질문과 대답이 실제로 무엇인지 암시하는 것입니다. 그대로, 나는 너무 모호한 것으로 날려 버리고 싶은 유혹을 받았을 것입니다. 제목은 "업로드 실패 문제를 어떻게 해결할 수 있습니까?"일 수 있습니다.
dlu

답변:


115

아마 벽돌되지 않은

나는 꽤 많은 Arduinos를 가지고 있으며, 지난 몇 년 동안 하나만 "벽 돌파"했습니다. 그리고 그것은 정전기로 꽉 쥐는 것으로 생각됩니다. 불행히도 그 특정 칩에는 SMD (표면 장착) 프로세서 칩이 있으므로 다른 칩과 쉽게 교체 할 수 없습니다.

침착하게 다음 단계를 시도하십시오 ...


보드 예

"아두 이노 우노"는 실패 할 수 있는 유일한 것이 아닙니다 . 여러 주요 구성 요소가 있으며 하나만 실패했을 수 있습니다 (있는 경우). 이 참조 사진을보십시오 :

Arduino Uno 주요 구성 요소

주요 구성 요소는 다음과 같습니다.

  • Atmega16U2 프로세서-USB 연결 인터페이스를 처리합니다.
  • Atmega328P 프로세서-스케치가있는 "메인"프로세서입니다.
  • 전압 조정기-전원 잭에서 5V로 들어오는 전원을 변환합니다.
  • 전원 LED (녹색)- "켜짐"으로 표시
  • "L"로 표시된 표시기 LED (노란색)-op-amp를 통해 디지털 핀 13에 연결
  • Rx 및 Tx LED (노란색)-USB 칩 (Atmega16U2)이 수신 중이거나 전송 중임을 나타냅니다.

Rx 및 Tx LED는 보드의 디지털 핀 0 및 1 (Rx 및 Tx로 표시)에 직접 연결되지 않습니다 . USB를 통해 직렬 통신 수행하는 경우에만 켜지고 GPS와 같은 무언가가 디지털 핀 0과 1에 직접 연결된 경우에는 아닙니다.

또한 "L"LED는 op-amp를 통해 연결되므로, 13 번 핀이 스케치 의 입력 으로 설정되면 켜질 수 있습니다 . 이것은 정상입니다. 데이터가 잘못 전송되고 있다는 의미는 아닙니다.


전원 확인

USB 전원

  • USB 케이블로 보드를 컴퓨터에 연결하고 녹색 "켜기"LED가 켜지는지 확인하십시오.

  • 멀티 미터와 몇 개의 점퍼 리드를 사용하여 5V 핀과 GND 핀 (아래쪽 화살표) 사이에서 테스트하십시오. 약 5.0V의 판독 값을 얻어야합니다 (저는 5.04V를 받았습니다).

(하나가없는 경우 약 10 달러에 저렴한 멀티 미터를 구입할 수 있지만, 50 달러 정도에 더 좋은 멀티 미터를 구입하는 것이 좋습니다. 모든 전자 웹 사이트 및 상점을 확인하십시오.)

  • 또한 3.3V 핀과 GND 핀 사이에서 테스트하십시오-3.3V가되어야합니다.

USB 케이블을 꽂아 5V를 얻지 못하면 다른 쪽 끝이 컴퓨터에 연결되어 있는지 확인하십시오. 다른 케이블을 사용해보십시오.

전원 잭

  • 전원 잭 (사진에 "파워 인"으로 표시됨)을 사용 중이거나 사용할 계획 인 경우 USB를 분리하고 전원 공급 장치를 꽂으십시오 . 중앙 핀 에는 양극이 있고 7-12V DC 여야합니다 .

  • 위와 같이 5V 및 3.3V 핀을 측정하십시오. 여전히 동일한 전압이 표시되어야합니다.

전원 공급 장치가 아닌 USB가 연결된 상태에서 5V를 얻는 경우 전압 조정기 (사진에 표시되어 있음)가 손상되었을 수 있습니다. 또는 전원 공급 장치에 문제가있을 수 있습니다. 다른 전원 공급 장치를 사용해보십시오.


전원 켜짐 LED 플래시 확인

Optiboot 부트 로더 (Uno와 함께 제공됨)가있는 경우 Reset 버튼을 눌렀다가 놓거나 USB 또는 전원 케이블을 분리했다가 다시 연결하면 "L"LED가 3 번 빠르게 깜박입니다. "켜기"및 "끄기"시간은 각각 50ms이며, 세 번의 플래시는 약 1/3의 초 안에 끝나야합니다.

그렇지 않은 경우 부트 로더 또는 메인 프로세서 칩 (Atmega328P)에 문제가있을 수 있습니다.


스케치를 업로드하십시오

중요 : 스케치 업로드에 문제가있는 경우 연결된 장치 (실드 등)를 제거하십시오. 또한 보드 소켓에 연결된 점퍼 와이어를 제거하십시오. 특히, 디지털 핀 0 및 1 (Rx 및 Tx)에 연결된 것은 업로드 컴퓨터와의 통신을 방해하기 때문에 아무것도 연결 되어서는 안됩니다 .

간단한 스케치 예 (예 : 깜박임) 중 하나를 선택하고 업로드하십시오. 이것은 당신이 볼 수있는 것입니다 :

  • "L"LED가 3 번 깜박입니다. 업로드 프로세스의 명령에 의해 메인 칩이 재설정되기 때문입니다.

  • "Rx"LED가 빠르게 깜박입니다. 이것은 부트 로더 활성화를 시도하는 업로드 프로세스의 지침입니다.

  • "Tx"LED가 빠르게 깜박입니다. 업로드 된 데이터를 확인하는 프로세서입니다.

업로드 프로세스가 실패하더라도 위의 내용이 표시 될 수 있습니다. 잘못된 보드 유형이 선택 되었기 때문일 수 있습니다.

"Rx"LED 만 깜박이면 부트 로더 또는 메인 프로세서 칩 (Atmega328P)에 문제가있을 수 있습니다. 누군가 노크하고 있지만 아무도 집에 없습니다!

보드 종류 확인

LED가 깜박이지만 다음과 같은 메시지가 표시되는 경우 :

avrdude: stk500_recv(): programmer is not responding

보드 종류를 확인하십시오 :

보드 종류 메뉴

잘못된 보드 유형을 선택한 경우 잘못된 업로드 지침을 보내거나 시간 초과 또는 실패 할 수 있습니다. 당신이 나와 같고 다른 보드가 놓여 있다면 마지막으로 업로드 한 것이 다른 보드 유형이라는 것을 잊어 버릴 수 있습니다.

통신 포트 확인

LED가 전혀 깜박이지 않으면 잘못된 통신 포트를 선택했을 수 있습니다.

통신 포트를 확인하십시오.

통신 포트 메뉴

가능하면 다른 PC / Mac을 사용해보십시오

다른 PC / Mac에서 Arduino를 사용해보십시오. 이를 통해 특정 컴퓨터 또는 일반적으로 컴퓨터에 문제가 있는지 여부를 좁힐 수 있습니다.

루프백 테스트 수행

  • 모든 실드와 다른 전선을 분리하십시오
  • 전원에서 보드를 제거하십시오
  • RESET에서 GND로 점퍼 와이어 연결 (사진의 주황색 와이어)
  • 점퍼 선을 Rx에서 Tx로 연결하십시오 (사진의 흰색 선)

배선:

루프백 테스트

  • USB 케이블을 연결하고 Arduino IDE의 터미널 모니터와 같은 터미널 프로그램을 시작하십시오. 무언가를 입력하고 보내십시오 (예 : 터미널 모니터에서 Enter 키 를 누르 십시오 ).
  • 입력 한 모든 내용을 다시 에코해야합니다.

모든 것이 반향되는 경우 : 올바른 통신 포트가 있음을 확인하면 USB 케이블이 정상이고 USB 인터페이스 칩 (Atmega16U2)이 정상일 수 있습니다.

아무것도 에코되지 않으면 다음을 확인하십시오.

  • 올바른 통신 포트가 있습니다.
  • 다른 케이블을 사용해보십시오. 일부 저렴한 USB 케이블에는 데이터 와이어가 아닌 전원 와이어 만 있습니다.
  • Arduino의 장치 드라이버가 설치되어 있는지 확인하십시오. 해당 보드가이 컴퓨터에서 이전에 작동 한 경우에는이 작업을 수행하지 않아도되지만이 보드를이 컴퓨터에 처음 연결 한 경우에는 그만한 가치가 있습니다.

Atmega16U2 칩 테스트

보드가 루프백 테스트에 실패하고 USB 케이블에 문제가없는 경우 Atmega16U2 칩 자체를 테스트 할 수 있습니다. 보드의 Atmega16U2 칩과 USB 소켓 근처에 ICSP (In Circuit Serial Programming) 헤더가 있습니다.

먼저 전원을 분리하십시오 (USB 케이블 및 전원 케이블을 분리하십시오).

그런 다음 사진에 표시된 것처럼 6 개의 점퍼 와이어를 통해 ICSP 헤더를 양호한 우노에 연결할 수 있습니다.

Atmega16U2 칩 테스트

ICSP 헤더의 핀 배치는 다음과 같습니다 (위에서).

ICSP 헤더

Atmega16U2 칩 근처의 ICSP 헤더의 핀 1에는 "AREF"의 "F"근처에 작은 흰색 점이 표시되어 있습니다. ATmega328P 칩 근처의 ICSP 헤더의 핀 1에는 "ON"의 "N"아래에 작은 흰색 점이 표시되어 있습니다.

연결 :

Good board         Target Uno

  MISO                MISO    (pin with dot - pin 1)
  VCC                 VCC
  SCK                 SCK
  MOSI                MOSI
  D10                 /RESET
  GND                 GND

배선을 다시 확인하십시오.

그런 다음 "잘 ​​알려진"보드에 Atmega 부트 로더 프로그래머 페이지 에 설명 된대로 "Atmega_Board_Detector"스케치를 설치 하십시오. 코드는 GitHub-nickgammon / arduino_sketches에 있습니다. 해당 페이지에서 다운로드 버튼을 클릭하면 여러 가지 유용한 스케치가 표시됩니다. 원하는 것을 "Atmega_Board_Detector"라고합니다.

설치가 완료되면 직렬 모니터를 열고 115200 보드로 설정하면 다음과 같이 표시됩니다.

Atmega chip detector.
Written by Nick Gammon.
Version 1.17
Compiled on Jul  9 2015 at 08:36:24 with Arduino IDE 10604.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x94 0x89
Processor = ATmega16U2
Flash memory size = 16384 bytes.
LFuse = 0xEF
HFuse = 0xD9
EFuse = 0xF4
Lock byte = 0xCF
Clock calibration = 0x51
Bootloader in use: No
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 4096 bytes starting at 3000

Bootloader:

3000: 0x4B 0xC0 0x00 0x00 0x64 0xC0 0x00 0x00 0x62 0xC0 0x00 0x00 0x60 0xC0 0x00 0x00
3010: 0x5E 0xC0 0x00 0x00 0x5C 0xC0 0x00 0x00 0x5A 0xC0 0x00 0x00 0x58 0xC0 0x00 0x00
3020: 0x56 0xC0 0x00 0x00 0x54 0xC0 0x00 0x00 0x52 0xC0 0x00 0x00 0xEE 0xC4 0x00 0x00
...
3FE0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
3FF0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

MD5 sum of bootloader = 0xD8 0x8C 0x70 0x6D 0xFE 0x1F 0xDC 0x38 0x82 0x1E 0xCE 0xAE 0x23 0xB2 0xE6 0xE7
Bootloader name: Arduino-dfu-usbserial-atmega16u2-Uno-Rev3

First 256 bytes of program memory:

0: 0x90 0xC0 0x00 0x00 0xA9 0xC0 0x00 0x00 0xA7 0xC0 0x00 0x00 0xA5 0xC0 0x00 0x00
10: 0xA3 0xC0 0x00 0x00 0xA1 0xC0 0x00 0x00 0x9F 0xC0 0x00 0x00 0x9D 0xC0 0x00 0x00
20: 0x9B 0xC0 0x00 0x00 0x99 0xC0 0x00 0x00 0x97 0xC0 0x00 0x00 0x48 0xC4 0x00 0x00
30: 0x0C 0xC4 0x00 0x00 0x91 0xC0 0x00 0x00 0x8F 0xC0 0x00 0x00 0x8D 0xC0 0x00 0x00
...

그러나 다음과 같은 메시지가 표시되면

"Failed to enter programming mode. Double-check wiring!"

ATmega16U2가 작동하지 않는 것 같습니다.


ATmega328P 칩 테스트

"알려진"Arduino Uno에서 전원을 분리하고이 사진에 따라 ICSP 점퍼를 다시 연결하여 Uno의 "주"프로세서에 연결하십시오.

ATmega328P 칩 테스트

ICSP 헤더의 핀 배치는 다음과 같습니다 (위에서).

ICSP 헤더

ATmega328P 칩 근처의 ICSP 헤더의 핀 1에는 "ON"의 "N"아래에 작은 흰색 점이 표시되어 있습니다.

USB 소켓에서 가장 먼 보드 끝에있는 다른 ICSP 헤더에 연결한다는 점을 제외하면 배선은 이전과 동일합니다.

Good board       Target Uno

  MISO                MISO    (pin with dot - pin 1)
  VCC                 VCC
  SCK                 SCK
  MOSI                MOSI
  D10                 /RESET
  GND                 GND

연결되면 직렬 모니터를 열고 115200 보드로 설정하면 다음과 같이 표시됩니다.

Atmega chip detector.
Written by Nick Gammon.
Version 1.17
Compiled on Jul  9 2015 at 08:36:24 with Arduino IDE 10604.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x83
Bootloader in use: Yes
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 512 bytes starting at 7E00

Bootloader:

7E00: 0x11 0x24 0x84 0xB7 0x14 0xBE 0x81 0xFF 0xF0 0xD0 0x85 0xE0 0x80 0x93 0x81 0x00
7E10: 0x82 0xE0 0x80 0x93 0xC0 0x00 0x88 0xE1 0x80 0x93 0xC1 0x00 0x86 0xE0 0x80 0x93
...

MD5 sum of bootloader = 0xFB 0xF4 0x9B 0x7B 0x59 0x73 0x7F 0x65 0xE8 0xD0 0xF8 0xA5 0x08 0x12 0xE7 0x9F
Bootloader name: optiboot_atmega328

First 256 bytes of program memory:

0: 0x0C 0x94 0x35 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
10: 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
20: 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
30: 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
...

이 경우 주 프로세서가 작동 중인지 확인하고 Optiboot 부트 로더가 있습니다.


고칠 수있는 것

고장난 전압 조정기

이것은 교체하기 쉽지 않지만 전원 잭을 사용하는 경우에만 필요합니다. USB에서 실행하면 필요하지 않습니다. 또는 4 ~ 5 V 공급 장치 (예 : 3 x AA 배터리)를 준비하여 보드의 5 V 소켓에 직접 연결할 수 있습니다.


ATmega16U2 칩 고장

이것은 USB 포트를 통한 스케치 업로드 및 직렬 디버깅에만 필요합니다. SMD (표면 장착 장치)이기 때문에 교체하기가 특히 쉽지 않습니다. 그러나 당신은 그것없이 관리 할 수 ​​있습니다.

ICSP 프로그래밍 장치를 구매 한 경우 ICSP 헤더를 통해 스케치를 업로드 할 수 있습니다.

ICSP 소켓에 연결된 이러한 장치의 예 :

USBtinyISP

AVRISP

(이 사진들은 Ruggeduino에서 찍은 것이지만 개념은 같습니다.)


다음과 같이 FTDI 케이블을 얻을 수도 있습니다.

FTDI를 Arduino에 연결

다음과 같이 보드의 직렬 포트에 연결하십시오.

FTDI 케이블

FTDI    Arduino Uno

GND       GND  (black wire on FTDI cable, blue jumper wire)
CTS       not connected
VCC       5V
TxD       D0 (RX)
RxD       D1 (TX)
RTS       To RESET with a 0.1 µF capacitor in series with it (green wire)

이제 USB 칩을 우회하여 스케치를 메인 프로세서에 직접 업로드 할 수 있습니다.


Atmega 칩 독립형 프로그래머를 사용하여 .hex 파일을 업로드 할 수도 있습니다. 이렇게하면 스케치 용 .hex 파일을 SD 카드에 복사 한 다음 ICSP 헤더를 통해 보드를 프로그래밍 할 수 있습니다.


ATmega328P 칩 고장

메인 프로세서는 소켓에 장착되어 있으면 상당히 쉽게 교체 할 수 있습니다. Adafruit 와 같은 곳 에서 약 6 달러에 교체 용 칩을 구입하십시오. 또는 eBay를 사용해보십시오. 번거 로움을 없애기 위해 Optiboot 부트 로더가 이미 장착 된 칩을 구입하십시오.

소켓에서 기존 칩을 조심스럽게 빼내고 핀 1의 위치를 ​​기록하여 새 칩을 설치하십시오. 핀 1은 칩에 노치가 있으며이 포스트의 첫 번째 사진에는 올바른 방향이 노란색으로 표시됩니다 점 (보드의 가장자리에 가장 가까운). 다리를 약간 곧게 펴야 할 것입니다. 칩을 끝까지 잡고 책상과 같이 평평한 표면에 살짝 눌러 질 때까지 부드럽게 누릅니다. 시도 하지 정전기로 보내 겠 수, 금속 핀을 만지지.


ATmega328P가 응답하지만 부트 로더가 없습니다

Atmega 부트 로더 프로그래머 가 Optiboot 부트 로더를 대체 할 스케치를 가지고 있습니다 . 배선은 칩 검출기 스케치와 동일합니다. 코드는 GitHub-nickgammon / arduino_sketches에 있습니다. 해당 페이지에서 다운로드 버튼을 클릭하면 여러 가지 유용한 스케치가 표시됩니다. 원하는 것을 "Atmega_Board_Programmer"라고합니다.

"알려진 좋은"Uno에 스케치를 설치하고 앞에서 표시된 배선으로 대상 보드에 연결하십시오.

ATmega328P 칩 테스트

"우수한"Uno에서 직렬 모니터를 열면 다음과 같이 표시됩니다.

Atmega chip programmer.
Written by Nick Gammon.
Version 1.35
Compiled on Jul  9 2015 at 15:06:58 with Arduino IDE 10604.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x83
Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...

Uno (Optiboot) 로더에 "U"를 입력하십시오.

Using Uno Optiboot 16 MHz loader.
Bootloader address = 0x7E00
Bootloader length = 512 bytes.
Type 'Q' to quit, 'V' to verify, or 'G' to program the chip with the bootloader ...

칩을 프로그래밍하려면 "G"를 입력하십시오.

넌 봐야 해:

Erasing chip ...
Writing bootloader ...
Committing page starting at 0x7E00
Committing page starting at 0x7E80
Committing page starting at 0x7F00
Committing page starting at 0x7F80
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x83
Done.
Programming mode off.
Type 'C' when ready to continue with another chip ...

약 1 초 정도 걸립니다. 이제 부트 로더가 설치되었습니다.


워치 독 타이머 문제

특정 시간 후에 프로세서를 재설정하도록 워치 독 타이머 (기본적으로 해제되어 있음)를 구성 할 수 있습니다. 그 목적은 현장에 배치 된 프로세서의 "중지"에서 복구하는 것입니다. 그러나 타이머가 짧은 기간 (예 : 16ms)으로 설정된 경우 부트 로더가 작업을 수행하기 전에 프로세서를 다시 재설정 할 수 있습니다.

증상은 새 스케치를 업로드 할 수 없다는 것입니다. Optiboot와 같은 일부 최신 부트 로더는이 문제를 가장 먼저 수행하는 단계 중 하나로이 문제를 해결하기위한 조치를 취합니다. 그러나 다른 사람들은 그렇지 않습니다.

스케치가 실행되면 재설정 문제가 있고 문제가있는 경우 스케치를 교체 할 수 없으므로 복구하기가 어려울 수 있습니다. 사람들은 종종 복구하기 위해 새 부트 로더를 구워야한다고보고합니다. 그러나 이는 부수적으로 부트 로더를 태우면 현재 스케치가 지워지기 때문입니다.

복구 방법은. 다음 단계를 수행하십시오.

  • 보드의 전원을 완전히 끕니다 (USB 케이블 제거).
  • 재설정 버튼을 누른 상태로 유지하십시오 (또는 RESET 핀에서 GND 핀으로 점퍼 와이어를 연결하십시오). 그러면 문제 스케치가 시작되지 않아 워치 독 타이머가 활성화됩니다.
  • 재설정을 누른 상태에서 USB 케이블을 다시 연결하십시오.
  • 이 문제가없는 스케치 업로드 시작 (예 : 깜박임)
  • IDE가 "업로드"라고보고하면 재설정 버튼을 놓거나 점퍼 와이어를 제거하십시오.
  • 워치 독 타이머를 활성화 한 스케치가 시작되지 않았으므로 이제 업로드가 완료됩니다.

Mega2560 업로드 문제

이 게시물이 실제로 Uno 보드를 대상으로하고 있지만 여기에서 언급합니다.

Mega2560 부트 로더의 일부 버전은 "!!!"를 찾습니다. PC에서 들어오는 업로드에서 발견되면 디버깅 모드로 들어갑니다. 업로드가 실패합니다.

예제 코드 :

Serial.println ("Furnace overheating!!!");

솔루션 :

  • 최신 부트 로더를 설치하십시오. 이 회신의 앞부분에서 언급 한 "부트 로더 업 로더"스케치는 해당 문제가없는 부트 로더를 설치해야합니다.

또는 (더 간단히) :

  • 사용하지 마세요 "!!!" 스케치에서.

Leonardo / Micro / Esplora 등에 업로드하는 데 문제가 있습니다.

ATmega32u4가 기본 (및 유일한) 프로세서 인 보드는 업로드하기 까다로울 수 있습니다. 동일한 칩이 업로드를 처리하고 코드를 실행해야하기 때문입니다.

보드가 재설정 된 후 새로운 스케치가 업로드 될 때 작은 기회 창이 있습니다. 이 보드에 업로드하는 기술은 다음과 같습니다.

  • 오류없이 스케치를 컴파일하십시오.
  • 업로드 시작
  • IDE가 "업로드"를보고하자마자 리셋 버튼을 눌렀다 놓습니다.

이전 스케치가 실행되기 전에이 작업을 수행하는 데 1 초 정도 밖에 걸리지 않습니다. 이 과정을 두 번 반복해야한다면 실망하지 마십시오. 정상입니다.


참고 문헌


5
와. 이것은 훌륭한 위대한 답변입니다
rpax

1
훌륭한 답변입니다.
Mert Gülsoy

"USB가 연결되어 있지만 전원 공급 장치가없는 상태에서 5V를 얻는 경우 전압 조정기 (사진에 표시되어 있음)가 손상되었을 수 있습니다. 또는 전원 공급 장치가 고장 일 수 있습니다. 다른 전원 공급 장치를 사용해보십시오. " -왜 이것이 스케치를 업로드하지 못하게합니까?
user2813274

당신 말이 맞아요. 그러나 점검 목록은 장애에 대한 일반적인 점검 목록이어야합니다. 이 경우에는 "스케치를 업로드 할 수 있지만 전원 공급 장치 (벽면 사마귀)를 사용하여 현장에 배치하면 작동하지 않습니다"와 비슷합니다.
Nick Gammon

1
나는 최근에 중국의 "FTDI 호환"(잘 모방) 칩을 "벽돌"하는 새로운 FTDI 드라이버에 문제가 있었다. 장치의 PID를 0x0000으로 설정하면 드라이버가 유효하지 않게됩니다. FTDI의 M_PROG 도구를 사용하여 PID를 다시 변경하거나 드라이버를 변경하고 확인되지 않은 드라이버를 허용하도록 창을 설정할 수 있습니다.
Paul

14

적어도 avrdude를 통해 스케치를 업로드한다고 가정하면 업로드 실패 (예 : 스케치 업 로더의 출력)에 대한 자세한 정보를 제공하여 여기에있는 사람들이 더 나은 도움을 줄 수 있도록하십시오.

Nick Gammon의 훌륭한 답변 외에도 스케치에서 느낌표를 검색하십시오. 스케치에 느낌표가 3 개 이상인 문자열이 포함되어 있으면 이전 버전의 Arduino Bootloader에서 이러한 느낌표를 다른 함수로 해석하여 업로드가 중지되므로 업로드에 실패합니다.

업로드를 중지하는 예 :

char* test = "This will stop the upload!!!";

Google 코드 문제를 참조하십시오 .


1
좋은 지적. 이것은 주로 Mega2560에 적용되지만 필자는 생략했습니다. :)
Nick Gammon

1
이 문제를 다루는 섹션을 추가했습니다.
Nick Gammon

2

정적으로 인해 Arduino Uno 보드에 2x ATMega328P를 브릭 킹했습니다.

정전기가 TX 핀을 종료 한 것으로 보이므로 USB 케이블을 사용하여 프로그램을 다운로드 할 수 없습니다.

가장 쉬운 해결책은 마이크로 컨트롤러를 교체하는 것입니다. Arduino 부트 로더 ( 예 : Adafruit의 부트 로더)로 프로그래밍 된 새로운 ATMega328P DIP를 구입할 수 있으며 다시 갈 준비가되었습니다.

또는 AVRISPmkII 프로그래머를 사용하여 ATMega328P를 프로그래밍 할 수 있습니다. 당신이 할 때, Tx 핀을 제외한 모든 것이 잘 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.