ATmega328P-PU: программатор не отвечает

Несколько дней назад я построил свой собственный Arduino на макете. Он построен в соответствии с учебником по http://www.crash-bang.com/resource/breadboard-arduino/. ATmega328P-PU уже записан с загрузчиком Arduino с простым скетчем blink.

Для программтора я решил использовать Arduino USB2Serial. Опять же, он подключен, как показано на сайте crash-bang. Проблема в том, что я получаю эту ошибку при загрузке другого скетча:

avrdude -Cavrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:build244630154737317489.tmp/sketch_may23a.cpp.hex:i 

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
     Copyright (c) 2007-2009 Joerg Wunsch

     System wide configuration file is "avrdude.conf"

     Using Port                    : COM3
     Using Programmer              : arduino
     Overriding Baud Rate          : 115200
     AVR Part                      : ATmega328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : Arduino
     Description     : Arduino
     Hardware Version: 3
     Firmware Version: 4.4
     Vtarget         : 0.3 V
     Varef           : 0.3 V
     Oscillator      : 28.800 kHz
     SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "build244630154737317489.tmp/sketch_may23a.cpp.hex"
avrdude: writing flash (450 bytes):

Writing | avrdude: stk500_recv(): programmer is not responding

Большую часть времени я даже не добираюсь до этой точки и просто заканчиваю чем-то вроде:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xf5

То, что я сделал до сих пор:

  • Я уже пытался сбросить Arduino непосредственно перед загрузкой скетча.
  • Согласно avrdude, загрузчик в порядке.
  • Переустановленные драйверы, Arduino IDE
  • Сменил USB-кабель и подключил его к другому USB-разъему
  • Сжег новый загрузчик с помощью ArduinoISP

Спасибо за помощь.

, 👍3

Обсуждение

Есть ли причина, по которой вы не хотите работать с интернет-провайдером?, @Ignacio Vazquez-Abrams

Для этого потребуется купить еще один программатор, не так ли? Я надеюсь, что кто-то может знать решение, чтобы заставить нынешнего программиста работать..., @Lorin


2 ответа


0

Я прочитал учебник на веб-сайте crash-bang и обнаружил в нем две проблемы. Первая проблема незначительна и, вероятно, не решит проблему с загрузкой.

На шаге 3 указано подключить +ve rail –> AVCC (вывод 20) и +ve rail –>> AREF (вывод 21). Вы можете оставить эти контакты не подключенными. У действительно потрясающего парня по имени Джулиан ИЛЕТТ есть видео на YouTube, демонстрирующее самодельный Arduino, использующий минимальные необходимые подключения. https://www.youtube.com/watch?v=sNIMCdVOHOM.

Вторая проблема с учебником в шаге 5: "Подключите вывод DTR FTDI через конденсатор 0,1 мкФ к выводу 1 ATmega".. Многие люди утверждают, что это работает, но это работает не для всех. Это не работает для меня, и у меня есть 2 одинаковых программатора FTDI, используемых в учебнике. Если вы посмотрите видео Джулиана, начиная с 12:48, вы увидите, что у него возникли проблемы с загрузкой скетча с использованием метода конденсатора DTR / 0,1 мкф. Он использует другое устройство USB для TTL, но у меня есть одно из идентичных устройств, которые он использовал, и метод 0,1 мкф cap не работает для меня.

Решение проблемы загрузки заключается в использовании коммутатора для сброса ATmega328P-PU. Как сказано в руководстве, используйте резистор на 10 К Ом, подключенный к +5 В, и вывод 1 ATmega328P. Теперь подключите один вывод мгновенного переключателя N. O. к заземлению, а другой-к выводу 1 ATmega328P. Чтобы загрузить свой скетч, нажмите кнопку загрузить в окне Arduino IDE. Как только в окне отладки появится надпись "Размер двоичного скетча...", нажмите кнопку сброса и удерживайте ее в течение 1/2 секунды, а затем отпустите.

Я только что присоединился arduino.stackexchange.com неделю назад, так что мой ответ может быть немного запоздалым. Надеюсь, это поможет людям в будущем.

,

-1

"Шаг 3 говорит о подключении +ve rail –> AVCC (контакт 20) и +ve rail –>> AREF (контакт 21). Вы можете оставить эти контакты не подключенными. "

+железная дорога ve не должна быть подключена к Aref. Шина +ve будет подключаться через внутреннюю работу АЦП mux.

AVCC и оба Gnds должны быть подключены в соответствии с таблицей данных: 5.2.7. AVCC AVCC-это вывод напряжения питания для A/D преобразователя, ПК[3:0] и PE[3:2]. Он должен быть внешне подключен к VCC, даже если АЦП не используется.

28.2. AVCC не должен отличаться более чем на ±0,3 В от VCC.... При необходимости AVCC или внутреннее опорное напряжение 1,1 В может быть подключено к штифту AREF путем записи в биты REFSn в регистре ADMUX. Источник внутреннего напряжения должен быть отключен внешним конденсатором на выводе AREF для повышения помехозащищенности.

Если вы подключите Aref к рельсу +ve снаружи, а затем выберите внутреннюю ссылку, все может пойти плохо.

FTDT через колпачок 0,1 мкФ для сброса, со съемным разъемом 10 К и обратным смещенным диодом в VCC, работает для меня во многих проектах. Не знаю, почему это работает не во всех случаях. Диод рассеивает любой шип на линии сброса, чтобы чип не думал, что запускается режим программирования высокого напряжения.

,