Нано повреждено. Индикатор питания в порядке. USB-накопитель обнаружен. Нет загрузки скетча. Ни одна программа не запущена

Кажется, я повредил один из своих Nano. Я должен сказать, что я новичок в Arduino и имею базовые навыки электроники, и после покупок через Amazon я понял, что мои Nanos являются клонами CH340G. тем не менее они работают. Я строил схему открытия/закрытия с легким приводом для своих цыплят. с использованием драйвера двигателя L293D, ЖК-дисплея, фотоэлемента. мой скетч просто считывал фотоэлемент и выводил его на ЖК-дисплей. L293D еще не использовал в скетче, но уже собрал (без моторов и МВ+). Программа работала ~2 минуты. Я проверял показания фотоэлемента и задавался вопросом, почему при слабом освещении показания все еще были довольно высокими ~ 600+. затем с ЖК-дисплея исчезло все, кроме фоновой подсветки. так как мне не удалось его запустить, я попытался загрузить Blink еще раз -> не работает

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x96 code here
...
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x96
Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Через некоторое время я читал о программистах, поэтому превратил еще один Nano в ArduinoISP, пытаясь написать Booloader или Sketch через ISP в обход USB (как я понял из разных статей) что дало

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
     Double check connections and try again, or use -F to override
     this check.

avrdude: stk500_disable(): unknown response=0x12
Der ausgewählte serielle Port avrdude: stk500_disable(): unknown response=0x12
 ist nicht vorhanden oder das Board ist nicht angeschlossen

затем я использовал Atmega_Board_Detector и Atmega_Board_Programmer, которые, похоже, работают. вывод Boarddetector:

    Atmega chip detector.
    Written by Nick Gammon.
    Version 1.20
    Compiled on Dec 27 2018 at 15:13:27 with Arduino IDE 10808.
    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 = 0x9E 
    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 
    7E20: 0xC2 0x00 0x80 0xE1 0x80 0x93 0xC4 0x00 0x8E 0xE0 0xC9 0xD0 0x25 0x9A 0x86 0xE0 
    7E30: 0x20 0xE3 0x3C 0xEF 0x91 0xE0 0x30 0x93 0x85 0x00 0x20 0x93 0x84 0x00 0x96 0xBB 
    7E40: 0xB0 0x9B 0xFE 0xCF 0x1D 0x9A 0xA8 0x95 0x81 0x50 0xA9 0xF7 0xCC 0x24 0xDD 0x24 
    7E50: 0x88 0x24 0x83 0x94 0xB5 0xE0 0xAB 0x2E 0xA1 0xE1 0x9A 0x2E 0xF3 0xE0 0xBF 0x2E 
    7E60: 0xA2 0xD0 0x81 0x34 0x61 0xF4 0x9F 0xD0 0x08 0x2F 0xAF 0xD0 0x02 0x38 0x11 0xF0 
    7E70: 0x01 0x38 0x11 0xF4 0x84 0xE0 0x01 0xC0 0x83 0xE0 0x8D 0xD0 0x89 0xC0 0x82 0x34 
    7E80: 0x11 0xF4 0x84 0xE1 0x03 0xC0 0x85 0x34 0x19 0xF4 0x85 0xE0 0xA6 0xD0 0x80 0xC0 
    7E90: 0x85 0x35 0x79 0xF4 0x88 0xD0 0xE8 0x2E 0xFF 0x24 0x85 0xD0 0x08 0x2F 0x10 0xE0 
    7EA0: 0x10 0x2F 0x00 0x27 0x0E 0x29 0x1F 0x29 0x00 0x0F 0x11 0x1F 0x8E 0xD0 0x68 0x01 
    7EB0: 0x6F 0xC0 0x86 0x35 0x21 0xF4 0x84 0xE0 0x90 0xD0 0x80 0xE0 0xDE 0xCF 0x84 0x36 
    7EC0: 0x09 0xF0 0x40 0xC0 0x70 0xD0 0x6F 0xD0 0x08 0x2F 0x6D 0xD0 0x80 0xE0 0xC8 0x16 
    7ED0: 0x80 0xE7 0xD8 0x06 0x18 0xF4 0xF6 0x01 0xB7 0xBE 0xE8 0x95 0xC0 0xE0 0xD1 0xE0 
    7EE0: 0x62 0xD0 0x89 0x93 0x0C 0x17 0xE1 0xF7 0xF0 0xE0 0xCF 0x16 0xF0 0xE7 0xDF 0x06 
    7EF0: 0x18 0xF0 0xF6 0x01 0xB7 0xBE 0xE8 0x95 0x68 0xD0 0x07 0xB6 0x00 0xFC 0xFD 0xCF 
    7F00: 0xA6 0x01 0xA0 0xE0 0xB1 0xE0 0x2C 0x91 0x30 0xE0 0x11 0x96 0x8C 0x91 0x11 0x97 
    7F10: 0x90 0xE0 0x98 0x2F 0x88 0x27 0x82 0x2B 0x93 0x2B 0x12 0x96 0xFA 0x01 0x0C 0x01 
    7F20: 0x87 0xBE 0xE8 0x95 0x11 0x24 0x4E 0x5F 0x5F 0x4F 0xF1 0xE0 0xA0 0x38 0xBF 0x07 
    7F30: 0x51 0xF7 0xF6 0x01 0xA7 0xBE 0xE8 0x95 0x07 0xB6 0x00 0xFC 0xFD 0xCF 0x97 0xBE 
    7F40: 0xE8 0x95 0x26 0xC0 0x84 0x37 0xB1 0xF4 0x2E 0xD0 0x2D 0xD0 0xF8 0x2E 0x2B 0xD0 
    7F50: 0x3C 0xD0 0xF6 0x01 0xEF 0x2C 0x8F 0x01 0x0F 0x5F 0x1F 0x4F 0x84 0x91 0x1B 0xD0 
    7F60: 0xEA 0x94 0xF8 0x01 0xC1 0xF7 0x08 0x94 0xC1 0x1C 0xD1 0x1C 0xFA 0x94 0xCF 0x0C 
    7F70: 0xD1 0x1C 0x0E 0xC0 0x85 0x37 0x39 0xF4 0x28 0xD0 0x8E 0xE1 0x0C 0xD0 0x85 0xE9 
    7F80: 0x0A 0xD0 0x8F 0xE0 0x7A 0xCF 0x81 0x35 0x11 0xF4 0x88 0xE0 0x18 0xD0 0x1D 0xD0 
    7F90: 0x80 0xE1 0x01 0xD0 0x65 0xCF 0x98 0x2F 0x80 0x91 0xC0 0x00 0x85 0xFF 0xFC 0xCF 
    7FA0: 0x90 0x93 0xC6 0x00 0x08 0x95 0x80 0x91 0xC0 0x00 0x87 0xFF 0xFC 0xCF 0x80 0x91 
    7FB0: 0xC0 0x00 0x84 0xFD 0x01 0xC0 0xA8 0x95 0x80 0x91 0xC6 0x00 0x08 0x95 0xE0 0xE6 
    7FC0: 0xF0 0xE0 0x98 0xE1 0x90 0x83 0x80 0x83 0x08 0x95 0xED 0xDF 0x80 0x32 0x19 0xF0 
    7FD0: 0x88 0xE0 0xF5 0xDF 0xFF 0xCF 0x84 0xE1 0xDE 0xCF 0x1F 0x93 0x18 0x2F 0xE3 0xDF 
    7FE0: 0x11 0x50 0xE9 0xF7 0xF2 0xDF 0x1F 0x91 0x08 0x95 0x80 0xE0 0xE8 0xDF 0xEE 0x27 
    7FF0: 0xFF 0x27 0x09 0x94 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x04 0x04 

    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:

    00: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    10: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    20: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    30: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    40: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    50: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    60: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    70: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    80: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    90: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    A0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    B0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    C0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    D0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    E0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    F0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 

    Programming mode off.

Вывод программиста платы:

    Atmega chip programmer.
    Written by Nick Gammon.
    Version 1.38
    Compiled on Dec 27 2018 at 15:15:38 with Arduino IDE 10808.
    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 = 0x9E 
    Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...
    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 ...
    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 = 0x9E 
    Done.
    Programming mode off.
    Type 'C' when ready to continue with another chip ...

другие наблюдения: при попытке загрузить скетч светодиод rx мигает несколько раз тонким слоем, но не ярко и с обычной скоростью. светодиод L мигает при включении питания несколько раз.

у меня 2 вопроса:

  1. Можете ли вы увидеть в моей схеме что-нибудь, что могло бы повредить NANO?

  2. есть идеи по восстановлению НАНО?

Мне больше интересен первый вопрос, так как я не хочу отказываться от другого. второе - больше любопытства, что можно сделать на Нано. и я понятия не имею, почему он умер, поскольку я провожу все эксперименты индивидуально на UNO

Прикреплены фотографии и моя борьба с Фрицингом за схемы. Уже большое спасибо

ОБНОВЛЕНИЕ: только что узнал, что мои рабочие NANO также не могут быть запрограммированы через ArduinoISP Sketch с использованием программатора NANO. так же как и инструменты от Ника Гаммона. работают https://github.com/nickgammon/arduino_sketches. Я предполагаю, что мой чип работает, и это зависит от USB-чипа или соединения.

ОБНОВЛЕНИЕ2: мой NANO полностью вернулся к работе. то, что когда-либо произошло, похоже, испортило мою вспышку. поэтому после советов от @Majko с заглушкой 10 мкФ между сбросом и GND я смог программировать через «Programmernano». но вот еще одна загвоздка когда сначала прошиваешь загрузчик, а потом сразу же прошиваешь скетч через программатор, при этом снова стирается загрузчик. вы можете проверить это с помощью Детектор чипов Atmega. Автор Ник Гэммон.

    Bootloader is 2048 bytes starting at 7800

    Bootloader:

    7800: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    7810: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    7820: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
    7830: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 

Поэтому я просто прошиваю загрузчик через ArduinoISP, а затем подключаю NANO напрямую к USB, чтобы прошить скетч

, 👍1

Обсуждение

Подключен ли GND где-нибудь на макетной плате?, @CrossRoads

да, на второй картинке его не видно, так как он находится под ЖК-дисплеем. вы можете увидеть это на первой картинке, @MG52441

Как выглядит оранжевый провод в 52 ряду? Правая кнопка, похоже, ни к чему не подключается в строке 46, если это имеет значение. Трудно сказать, что бы делал плавающий входной контакт без вашего кода (может читаться как High или Low, что приводит к нестабильному поведению)., @CrossRoads

правая кнопка подключена к D6 под наноплатой, @MG52441

новый загрузчик или старый загрузчик? а выбор в меню Инструменты?, @Juraj

изначально это был старый загрузчик. я запустил Atmega_Board_Programmer через свой программист nano, и это могло его обновить. я мог бы выбрать lilyboot или UNO. я выбрал ООН, @MG52441

1. Если вынуть Nano из макетной платы, он начнет работать? 2. Вы отключили сброс на своем «программирующем» Arduino?, @Majenko

Я не думаю, что кнопка подключена - мне кажется, что провод оторван на 1 отверстие на каждой картинке., @CrossRoads

@Маженко 1. это не работает, даже когда все удалено. 2. нет, я этого не делал. буду искать как это сделать, @MG52441

@CrossRoads на картинке действительно плохо видно, но коричневый кабель входит в линию кнопки, но раньше металл виден над линией, @MG52441

Конденсатор 10 мкФ между сбросом и землей., @Majenko

@Majko Большое спасибо. Программирование с помощью ArduinoISP теперь работает. Программирование через USB все еще не заболело, теперь изучаю диод, @MG52441

Ch340g наверное умер тогда, @Majenko

у нас это уже было здесь однажды. после записи загрузчика у меня возникло желание загрузить скетч через интернет-провайдер и удалить загрузчик в процессе, @Juraj


2 ответа


Лучший ответ:

1

Попробуйте заменить диод, как показано на этой ссылке, у меня сработало: https://forum.arduino.cc /index.php?topic=166089.0

Короткое замыкание на VCC может повредить диод.

Что касается ответа на первый вопрос, то да, в конструкции есть изъян, при потере внешнего питания ЖК-дисплей и L293D будут питаться от USB через указанный выше диод.

"Небольшое изменение" , см. комментарий Юрай ниже.

,

Я только что измерил диод мультиметром, и все в порядке. те же значения, что и у работающего нано. Насколько я читал, когда диод умирает, все питание через USB отключается. не так ли?, @MG52441

@ MG52441 Да, но он может быть «почти мертвым» в тот момент, когда светодиод все еще горит. Можете ли вы проверить контакт 5 В вольтметром при подключенном USB? Для быстрой проверки вы можете закоротить диод, оставив только nano с питанием от USB, без внешней цепи и внешнего питания., @Dorian

На выводе 5 В отображается напряжение 4,67 В. потребуется немного времени на проверку с укорачиванием диода., @MG52441

@ MG52441 4,67 В мне кажется хорошим. Мигает ли индикатор питания при попытке запрограммировать плату? Используете ли вы внешнее питание во время программирования (см. вопрос выше)?, @Dorian

нет, совсем нет. когда я подключаю USB-индикатор питания, светится ярко. Светодиод L кратковременно мигает. затем при программировании светодиод rx мигает очень хорошо и совсем не ярко., @MG52441

Я просто ищу, сколько тока будут потреблять ЖК-дисплей и L293D. думаете ли вы, что он превысит ограничения, указанные здесь https://electronics.stackexchange.com/questions/67092/how-much-current-can-i-draw-from-the-arduinos-pins, @MG52441

ОК, нашел это http://forum.arduino.cc/index.php?topic=255472.0, похоже, ЖК-дисплей с подсветкой может потреблять ток до 160 мА. так что, вероятно, я превысил максимум. текущий., @MG52441

Я закоротил диод, никаких изменений, вероятно, CH340G не работает. спасибо за совет. Я прочитаю об использовании внешнего питания, @MG52441

@ MG52441 Спасибо, я не знаю, поможет ли это, но моему клону Arduino CH340g для правильной работы требуется настройка в меню «Инструменты», «Процессор», «Процессор» «ATmega328P» Старый загрузчик ATmega328P., @Dorian

@ MG52441, почему ты принял этот ответ?, @Juraj

@Juraj Кажется, это была первоначальная ошибка: слишком большой ток от линии 5 В, а затем он испортил загрузчик. Но если ОП считает, что другой ответ лучше, я внес небольшое изменение, чтобы позволить ему отказаться от своего выбора. Есть ли у вас лучший ответ на вопрос № 1?, @Dorian

@Юрай, наверное, это немного моя вина, поскольку я задал 2 вопроса. что не так с моей схемой и что можно сделать, чтобы восстановить NANO. на самом деле вторая часть Ответа Дориана, вероятно, была ближе всего к моему основному вопросу. мне следует использовать другой источник питания. тем не менее, сейчас я измерил потребляемый ток, и на подсветке ЖК-дисплея у меня ~ 20 мА, на +5 В у меня ~ 46 мА, я еще не измерял отдельные цифровые контакты. оно должно оставаться в пределах того, с чем может справиться Совет. так что я мог случайно что-то сократить. Сейчас я попробовал еще раз, и теперь все работает хорошо., @MG52441


1

Судя по результатам опубликованных вами скетчей, с чипом ЦП все в порядке (Atmega328P). Поскольку вы не можете программировать через порт USB, скорее всего, CH340G поврежден.

Запасной вариант — использовать другой скетч (Atmega_Hex_Uploader) в опубликованной вами ссылке и загружать код через интерфейс SPI. Чтобы это работало, вам необходимо приобрести интерфейс для карты micro-SD, как описано здесь, примерно за $US. 15.

Что касается того, почему это не удалось, это следует срочно расследовать. Возможно, ответ Дориана поможет.

,