Как залить бутлоадер в китайскую копию arduino nano v3.0(CH340) при помощи копии UNO.
- Войдите на сайт для отправки комментариев
Пнд, 28/12/2015 - 21:44
Пришли 2 контроллера, китацские копии arduino nano 3 и UNO. Обе на CH340.
Драйвера встали отлично, UNO работает без проблем, а в NANO не льются скейтчи, вылетает ошибка:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x01
Как я понял симптом популярный, но диагноз у всех разный. Пришел к выводу, что нужно залить бутлоадер.
Отсюда вопрос, как при помощи рабочей UNO? прошить бутлоадер в NANO??
Может есть схема подключения с подробной инструкцией? Или кто-то может в кратце обрисовать, что к чему?
Заранее большое, человеческое СПАСИБО!)
UNO - NANO
10 -> Reset
11 -> 11
12 -> 12
13 -> 13
В UNO скетч из примеров "Файл" ->"Образцы" ->ArduinoISP
После этого программатор Arduino as ISP и можно заливать бутлоадер любой
https://www.arduino.cc/en/Tutorial/ArduinoISP
Светодиод раза три моргает после нажатия ресета?
Спасибо, попробую.
а не подскажите где найти бутлоадер для nano?
trembo, моргают, мне уже писали, что если моргают то бутлоадер стоит. Но других вариантов почему не льются скейтчи у меня нет... Как уже писал, при тех же дровах, UNO работает ОК!
Дрова не при чём
Сериал порт в дэвайсах появляется при подключении платы?
1. Порт есть?
2. При " вгрузить" сбрасывается? Диод моргает?
3. Скорость в "boards.txt" стоит именно от этого загрузчика?
4. И вообще тип платы правильно выбран?
1. Порт есть, видит.
2. При выгрузке ничего не происходить в IDE прогрессбар подвисает на 100% и впишет ошибку, о которой я писал.
3. тут не проверял, можно подробней про этот пункт?
4. Тип платы "arduino nano". Процессор Atmega328. порт корректный, рабочий.
Я пробовал менять порт, перетыкать кабель по всем USB. Жать резет перед повторной попыткой залить скейтч. Менять разные типы плат. Результат никакой.
IDE пробовал 3х версий разных
Спасибо, попробую.
а не подскажите где найти бутлоадер для nano?
Если Arduino IDE поставите. Там все платы рписаны со своими загрузчиками. Просто выбираете нужную и пишите - прошить загрущикю Лично я бы поставил загрузчик от UNO - optiboot и работал бы с перешитой платой, как с Уно. Оптибут корректно работает с режимами сна и сторожевым таймером
Не понял:
Так на Reset диод моргает или нет?
А на " вгрузить" моргает?
Пункт 3 - это на потом, когда сброс увидите.
И не надо ничего менять и перевтыкать.
бутлодэр просто записать, он там в меню .
Только зачем если он у вас уже есть (если диод моргает)
Главное программатор найти.
Когда втыкю кабель, постоянно светится pow и моргает L, первые 10сек быстро, потом медленнее. Всё, больше ничего не моргает.
Когда загружаю скейтч, то L в определенный момент моргает быстренько 3 раза и все, продолжает опять моргать медленно. А IDE пишет
Вылетает ошибка.
avrdude: Yikes! Invalid device signature.
Вылетает ошибка.
avrdude: Yikes! Invalid device signature.
Попробуйте сперва "Записать бутлоадер"
Та же ошибка
Залить через программатор - это значит залить в ДРУГУЮ, вторую!!!
А бутлодер у вас уже есть.
Осталось выяснить какой- оптибут или стандартный и какая скорость.
Поройтесь в бордс.тхт, там не много вариантов с мега 328.
Скопируйте секцию, переименуйте её как-то и " издевайтесь" над ней меняя имя загрузчика и скорость.
Или второй Ардуиной прошейте загрузчик с известными параметрами.
Не шьется загрузчик, я же выше писал) Ошибку выдает. Шить пытаюсь через UNO
Наткнулся на эту ветку. Надо было прошить Нано от Уно. Прочитал, как сделать. в этом деле новичок. Ну так вот: кроме 4 пинов надо еще на платках соеденить проводом +5 и +5 на обоих платах, а gnd тоже. а потом уже прошивать.
Yikes! Invalid device signature
Самая мерзкая ошибка из возможных, вот все известные мне способы бороться:
1. Убедиться что все провода подключены правильно. Invalid device signature может появляться если перепутаны D11, D12, D13.
2. Убедиться что выбран нужный ведомый контроллер и нужная частота. В меню Tools>Board выбирается не та плата которой прошивают, а та, которую прошивают.
3. Убедиться что ведущий не сбрасывается. В ArduinoISP обычно соединяют Reset с плюсом через резистор 100R.
4. Возможно, ведомый уже настроен на более высокую частоту, но собран без кварца. ВСЕГДА оставляйте на своих платах пады, идущие на GND, XTAL1, XTAL2. Это даст возможность подключать туда кварц и два конденсатора. Кроме того, существует модифицированный скетч ArduinoISP, выдающий на одном из выходов 1 МГц. Можно подавать этот сигнал на XTAL1 ведомого МК.
5. Возможно, допущена ошибка при сборке. Как-то, на одной из плат Invalid device signature было вечным. Над ней уже были занесены ножницы, но мне зачем-то припёрло снять с неё кварц - видимо было лень лезть за новым. Всё встало на свои места, когда выяснилось, что вместо одного из конденсаторов 22 пФ был припаян резистор 22R. После замены на то что надо - всё прошивалось нормально.
6. Возможно, вышел из строя ISP разъём. У меня такое уже случилось один раз.
Всем Доброго дня! Пробую залить в NANO бутлоадер, через USBASP. Extrim Burner с ней работает только когда выберу чип атмега32 , а если 328р, то стирает, но не прошивает. Да и в атмега32 можно только 2 фьюза записать. Фьюзы брал из boards.txt . Научите молодого, в чем есть проблема. Подозреваю что чип(Atmega 328P) накрылся тазом из Cu. :-( Все началось с того что, вдруг, перестали вливаться скетчи.. т.е. компиляция, заливка... и в конце, (ошибка по адресу такомуто...)
Вот вывод при прошивке бутлоадера, не знаю как свернуть в спойлер.
D:\Arduino_ide\hardware\tools\avr/bin/avrdude -CD:\Arduino_ide\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "D:\Arduino_ide\hardware\tools\avr/etc/avrdude.conf"
Using Port : usb
Using Programmer : usbasp
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 : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% -0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.00s
D:\Arduino_ide\hardware\tools\avr/bin/avrdude avrdude: 1 bytes of lock written
-CD:\Arduino_ide\hardware\tools\avr/etc/avrdude.conf avrdude: verifying lock memory against 0x3F:
-v -patmega328p avrdude: load data lock data from input file 0x3F:
-cusbasp -Pusb avrdude: input file 0x3F contains 1 bytes
-Uflash:w:D:\Arduino_ide\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:i -Ulock:w:0x0F:m avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0x05"
avrdude: writing efuse (1 bytes):
Writing | ***failed;
################################################## | 100% 0.05s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0x05:
avrdude: load data efuse data from input file 0x05:
avrdude: input file 0x05 contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: WARNING: invalid value for unused bits in fuse "efuse", should be set to 1 according to datasheet
This behaviour is deprecated and will result in an error in future version
You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xDA"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude done. Thank you.
avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "D:\Arduino_ide\hardware\tools\avr/etc/avrdude.conf"
Using Port : usb
Using Programmer : usbasp
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 : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% -0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "D:\Arduino_ide\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex"
avrdude: writing flash (32670 bytes):
Writing | ################################################## | 100% -0.00s
avrdude: 32670 bytes of flash written
avrdude: verifying flash memory against D:\Arduino_ide\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:
avrdude: load data flash data from input file D:\Arduino_ide\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:
avrdude: input file D:\Arduino_ide\hardware\arduino\avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex contains 32670 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x7800
0xff != 0x0c
avrdude: verification error; content mismatch
avrdude done. Thank you.
Ошибка при записи загрузчика.
Господа, прошу помощи! Есть 2 Nano. Задача прошить загрузчик с оптибут. Скачал с сайта папку с оптибут, добавил. В платах появились девайсы с [оптибут]. Как соединять платы? Пины с платы-программатора (одна из Нано) на разъем ICSP или встречал вариант на контакты сразу на плате?
На плату-программатор заливаю стандартый скетч с примера Arduino as ISP. Там что нибудь править надо для Нано?
Потом соединяю платы и далее мне в Сервис/Плата/ выбирать уже Нано с оптибут или нет?
а потом Записать загрузчик.
Спасибо
Подскажите, пожалуйста, китайскую ардуину уно залить бутлоадер через ср2102 можно? Инет перелазал только ардуины про мини перепрограммируют.? Компьютер вообще не видит ардуину.
Подскажите, пожалуйста, китайскую ардуину уно залить бутлоадер через ср2102 можно?
Нет, нельзя. Чтобы залить бутлоадер нужен программатор (например USBasp) или другая ардуина со скетчем эмулятора программатора (ArduinoISP).
Компьютер вообще не видит ардуину.
Наличие бутлоадера не влияет на "видимость" ардуины компьютером. Если вы про виртуальный COM-порт в диспетчере устройств. За это отвечает микросхема-преобразователь USB-UART на плате ардуино.
Я поправлюсь. Можно ли вместо штатного усб-уарта подключить через ср2102 ?
На плате уно есть 4 отверстия Х1 , для чего они? Не могу найти схему на уно китайский атмега 328-р
Можно ли вместо штатного усб-уарта подключить через ср2102 ?
Можно, но к бутлоадеру это не имеет никакого отношения.
Хотя тут надо аккуратно, ибо не известно, что там со штатным. Чтобы штатный и cp2102 одновременно не выставили разный лог. уровень на TX. А то ещё коротнёт... В идеале надо брать мультиметр и прозванивать/проверять плату. Может там непропай микросхемы или флюс плохо смыт, вот и не работает штатный.
На плате уно есть 4 отверстия Х1 , для чего они?
ХЗ что там китайцы придумали, на оригинальной таких нет. Нужно хотя бы на фото глянуть.
Не могу найти схему на уно китайский атмега 328-р
Китайских ардуин делают много разных, они могут слегка отличаться по схеме.
Вот .
Ну вот видно, что отверстия Х1 идут на ножки (9, 10, 12, 13) штатного китайского USB-UART преобразователя CH340G. Смотрим распиновку и видим, что это контакты CTS, DSR, DCD, DTR. Но они всё равно не играют роли в загрузке скетчей. Их описание можно почитать тут - сигналы квитирования.
JEKA_M. спасибо
Кстати, по этой же распиновке можно проверить мультиметром наличие питания на ножках микросхемы VCC, GND. И чтобы был контакт ножек UD+, UD- микросхемы с контактами D+, D- USB-порта
А схема есть? питание на микросхему приходит.
контакт ножек UD+, UD- микросхемы с контактами D+, D- USB-порта тоже в норме все.
я уж и кварц поменял.
А схема есть?
У меня нет. В гугл картинках можно глянуть схемы - https://www.google.com/search?q=arduino+uno+ch340g+schematic&espv=2&biw=1680&bih=920&tbm=isch&tbo=u&source=univ
питание на микросхему приходит.
контакт ножек UD+, UD- микросхемы с контактами D+, D- USB-порта тоже в норме все.
я уж и кварц поменял.
Тогда ХЗ...
Ах, да... драйвера оригинальные (китайские) на CH340G ставили? http://www.wch.cn/download/CH341SER_ZIP.html
да ставил
да ставил
В диспетчере устройств вообще что-нибудь появляется? Хотя бы неизвестное устройство?
Вот пару схем нашёл - РАЗ, ДВА.
нашел схему , спасибо. https://i.stack.imgur.com/Rm50J.jpg Схема не та. Под номером два вроде.
В диспетчере устройств вообще что-нибудь появляется? Хотя бы неизвестное устройство?
Вообще не реагирует. Даже неизвестног устройства нет. Светодиод ON горит, L -мигает, (я так понимаю атмега живая)
В диспетчере устройств вообще что-нибудь появляется? Хотя бы неизвестное устройство?
Светодиод ON горит, L -мигает, (я так понимаю атмега живая)
Да, атмега работает.
Возможно CH340G сдохла... Ещё внимательно посмотрите, как она запаяна (ключ на корпусе микрухи). Бывало, что китайцы её впаивалии перевёрнутую на 180°. Сверьтесь с картинками в интернете. Ну и остатки флюса смыть, если грязные контакты (особенно возле кварца).
А, и ещё - поменяйте USB кабель. Тот, что идёт в комплекте с китайской ардуиной - фигового качества.
Поменял кабель и комп увидел ардуину !!! Jeka_M, спасибо!!!
Спасибо, попробую.
а не подскажите где найти бутлоадер для nano?
Если Arduino IDE поставите. Там все платы рписаны со своими загрузчиками. Просто выбираете нужную и пишите - прошить загрущикю Лично я бы поставил загрузчик от UNO - optiboot и работал бы с перешитой платой, как с Уно. Оптибут корректно работает с режимами сна и сторожевым таймером
После обновления менеджером плат, перестали шиться ардуины нано, оказалось, что теперь там два загрузчика и мои платы со старым )))

Так всё таки, заливать бут от UNO или в новом загрузчике нано всё поправлено???
Была похожая проблема, скетч загружался на 100%, зависал, выдавало ошибку. Выбрал Old Bootloader все загрузилось. Все оказалось легко и просто. :-))
Дошли руки до watchdog ан нет, ни одна из моих плат не шьет загрузчик, вылетает по ошибки сей текст, в чем засада, перепробовал уже 4 платы:
недавно перепрошивал загрузчик, чтобы поменять фьюзы. ни одна плата не прошилась с первого раза. Лог не помню, я его просто игнорил и сразу же лил второй раз безе переподключения и перезагрузки. Т.Е. тупа ждал ошибку, и следом жал повторную загрузку... Даже не разбирался в проблеме...
недавно перепрошивал загрузчик, чтобы поменять фьюзы. ни одна плата не прошилась с первого раза. Лог не помню, я его просто игнорил и сразу же лил второй раз безе переподключения и перезагрузки. Т.Е. тупа ждал ошибку, и следом жал повторную загрузку... Даже не разбирался в проблеме...
и второй и третий и тд - сегодня не мой день - категорически не шьётся, ранее помню, что была бодяга - не с первого раза шился, пять плат 4 нано и 1 уно в любой комбинации облом, шнур менял, комп менял...прокладку между компом и клавиатурой только не менял )))
Только что менял в Нано бутлоадер. Через USBASP, правда - всё с первого раза... Даже коннектор не паял, просто воткнул 6 контактов в дырки ICSP.
загрузчик заливаю редко и частенько путаюсь с проводами... если с тактами все просто, то mosi - miso 50% не угадываю :))))))) и пару раз не правильно указывал на какю ногу повесил ресет. Там в скетче aduinoISP проверить что куда...
я не пойму почему он на скорости 19200 льёт, пробовал поставить 57600, орёт
в распиновке я уверен, уже 100 раз перепроверил, раньше шил и сдается мне что что-то правил в скетче
я не пойму почему он на скорости 19200 льёт, пробовал поставить 57600, орёт
Лить он будет на скорости, которая указана в board.txt для заливаемого загрузчика. Контакты пациента = контактам врача + 10 = reset пациента. Для унов-нанов нумерация пинов одинаковая.
Живой ArduinoISP из 1.6.4:
Да, регулярно заливка со второго раза.
Еще раз по алгоритму: Соединили провода, залили ArduinoISP в доктора, выбрали требуемый загрузчик в меню IDE, нажали "записать загрузчик".
Да, регулярно заливка со второго раза.
Еще раз по алгоритму: Соединили провода, залили ArduinoISP в доктора, выбрали требуемый загрузчик в меню IDE, нажали "записать загрузчик".
Не, не взлетело, опять не мой день )))
Самое обидное, что ранее с годик назад ведь заливал, но тоже были танцы с бубнами...
Понятно, что есть какая-то проблема с этой технологией, ну не может нормальный программатор шить со второго раза...видимо в скетче есть косяк с которым никто не разбирался
Да и аппаратно по пину 13 и светодиоду на нём непонятки (сигнал SCK)
загрузчик заливаю редко и частенько путаюсь с проводами...
я тоже загрузчик редко шью, зато часто - сами скетчи через ISP. У меня отдельная Нана под это выделена. На ней уже загружен Ардуино-как-ИСП, а провода собраны в коннектор 2х3, соответствующий ISP-разъему. Втыкаешь и сразу прошиваешь.
Все всегда шьется с первого раза, если нет других ошибок.
видимо в скетче есть косяк с которым никто не разбирался
нет там никакого косяка, все работает как часы.
У меня несколько активных проектов, где я МК шью не через загрузчик, а через ИСП этим самым скетчем. Этой технологияей пользуюсь иногда десятками раз в день, когда код отлаживаю.
Похвастаюсь. Под 28-лапый DIP и TQFP32. Коричневый разъем - UART и I2C. Белый - SPI и питание для других чипов или на плате прошить. В нанке ArduinoISP. Шьется все и всегда, последний раз 20 паленых атмег168 - 10AU. Все прошились, все живые и на 16МГц работают. Сразу тестовый скетч на основные шины, проверка пинов, EEPROM.

нуууу вариант скачать старое ПО 1.8.3 точно без багов
и еще раз проверить провода (перечитать инструкцию)