Arduino NANO не заливается скетч

Serg370
Offline
Зарегистрирован: 11.08.2018

Добрый день, форумчанам

На алишечке приобрел Arduino Nano на ATmega328P c CH340 для прошивки ESC BLhelly для квадрика. Прошил 2 ESC, и Ардуинка просто отвалилась. Была подключена к USB минут 15.

Теперь не могу до неё достучаться. Как COM-адаптер видится, порт присваивается. В ArduinoIDE тоже порт видится, по примитивнейший скетч BlinK залить не могу, Загрузчик не записывается... на всё один ответ:

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

Из светодиодов только горит один POW.     L, RX, TX не мыргают вообще.

При попытке "получить информацию о плате":

"BN: Неизвестная плата

VID:IA86

PID:7522

SN: загрузить любой скетч для использования"

Что делать с ней? В помойку, или как то можно реанимировать?

 

10 стр. форума прошерстил, своей ситуации не нашёл. Укажите направление, куда копать?

 

 

Serg370
Offline
Зарегистрирован: 11.08.2018

в режиме мониторинга порта и замкнутых TX1 RX0 - эха нет.

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Эту придётся отложить до покупки людского программатора типа USBASP или какого нибудь подобного. При помощи 340 го ни фьюзов ни еепром ни флэш не увидишь. 340 работает через бутлодер. Если бутлодер слетел или послетали фьюзы то 340 бесполезен. Ищи у кого по-близости есть нормальный программатор. Только после детального обследования микры можно решать что с ней делать. Ремонт или мусорка.

Serg370
Offline
Зарегистрирован: 11.08.2018

Спасибо, за консультацию. Откурыл спор на алишке, заказал Нану тут.

А программатор USBASP не порекомендуете?

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Почему же? Я сам им иногда пользуюсь. Но как я уже говорил планирую собрать программатор по материалам Dimax. Полагаю что для комфортной работы нужно иметь пару программаторов. Желательно разных.

По вашему случаю думаю можно восстановить работоспособность платы. Скорее это софтовая проблема, но как я уже говорил попадались мне платы Mega2560 с Али с убитыми CH340G. Спор не открывал, заказал десяток CH340, отремонтировал самостоятельно.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Можно попытаться прошить по SPI с помощью другой НАНО залив в неё скетч "Arduino as ISP" из стандартной поставки примеров в ИДЕ. Действовать по интсрукции в скетче.

Serg370
Offline
Зарегистрирован: 11.08.2018

Спасибо. Жду новую Nano, постараюсь восстановить первую.

Serg370
Offline
Зарегистрирован: 11.08.2018

 а с помощью USB/UART CP2102 нельза  Nano прошить?

или вместо СН340 со слетевшим бутлодером использовать внешний USB-UART CP2102?

На TX/RX Nano подать RX/TX от CP2102, питание внешнее подать от UBEC 7V.... Слетевший СН340 будет мешать? CP2102 не спалю?

 

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Бутлодера в CH340 не содержится. Это всего лишь конвертер. Я всего лишь предположил, что вероятно слетел бутлодер в микро, или неправильные фьюзы в контроллере. Бутлодер для того и нужен чтобы при помощи дешевого USB-UART конвертера записывать скетчи. Если программировать контроллеры через ISP то бутлодер не нужен. Просто имея дешёвый USB-UART переходник, внешний для проминек или интегрированный в плату, как на микро, уно и др, и микропроцессор с бутлодером удобно заливать скетчи, мониторить работу ардуинки по сериал, да и питания через сериал конвертор обычно хватает на поморгалки и другие мелочи. Если глубоко заниматься микроконтроллерами то программу удобно отладить на плате ардуино, а конечное устройство реализовать на голом контроллере вообще без бутлодера. 

То что предлагаете Вы, сделать можно. Надо только аккуратно отсоединить контакты RxTx идущие к atmega от CH340, присоединить к ним одноименные проводники от другого USBUART конвертера и попытаться залить скетч. Но ещё раз повторю - это имеет смысл если CH340 неисправная. В случае со слетевшим бутлодером или неверно выставленными фьюзами это все равно не поможет.

Нужет нормальный программатор.

Serg370
Offline
Зарегистрирован: 11.08.2018

Ок, а залить бутлодер на МК через внешний USB/UART нельзя? Только через USBASP или ISP-программатор, верно?

 

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Да.

Oleg_707
Oleg_707 аватар
Offline
Зарегистрирован: 02.12.2016

Usb asp ардуину можно прочитать через ISP разьем флеш и еепром (через сторонние программы), если НЕ залочен isp интерфейс (через фьюсы в процессоре). Иначе только сдувать 328P феном паяльным и читать параллельным программатором через переходник ( или fuse доктор еще есть), но оно по затратам того не стоит.

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Serg370 пишет:

в режиме мониторинга порта и замкнутых TX1 RX0 - эха нет.

Способ проверки замыканием Rx Tx относился к старым платам на ft232rl, у CH340 иная схема включения, и тут нужно замыкать не на плате, а на самой микросхеме. Это выводы 2и 3 на чипе ch340.

Oleg_707
Oleg_707 аватар
Offline
Зарегистрирован: 02.12.2016

От ch340 через резисторы 1к rx tx идут к атмеге. Параллельно от проца выходят на выводы RX0 TX1. При замыкании все равно должно выходить на эхо.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Oleg_707, не должно, резисторы  и светодиоды работают как делитель с подтяжкой к питанию.

Ну проверьте на рабочей плате, делов-то :)

Oleg_707
Oleg_707 аватар
Offline
Зарегистрирован: 02.12.2016

да, проверил на рабочей ардуине, через перемычку не проходит. Не продавливает подтяжку.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ТС не сказал самое главное, а другой интерфейс, не 4-х проводный он из конфигуратора Blheli пробовал в ардуино залить?

Serg370
Offline
Зарегистрирован: 11.08.2018

Попробовал залить другие интерфейсы. Результат один - "stk500_getsync():not sync: resp=0x00" :(

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Пробовали перезалить загрузчик, используя рабочую НАНУ как программатор, что получилось?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Serg370 пишет:

Попробовал залить другие интерфейсы. Результат один - "stk500_getsync():not sync: resp=0x00" :(

Остается попробовать другой наной залить, у меня такое было, когда в нано был залит бутлоадер со скоростью обмена на порту 115200 (загрузчик от UNO) ну или попробовать повыставлять другие скорости на порту при заливке.
Если загрузчик Blheli (2-х проводный интерфейс) то у него скорость на порту другая насколько я помню

Serg370
Offline
Зарегистрирован: 11.08.2018

Друая Нана в пути. А скорость менять необходимо в IDE или Blhelisuite и на com-порту в дисптечере устройств, или в диспетчере можно максимум ставить 115200, а играться только в программах? Какая по умолчанию у CH340G?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Serg370 пишет:

Друая Нана в пути. А скорость менять необходимо в IDE или Blhelisuite и на com-порту в дисптечере устройств, или в диспетчере можно максимум ставить 115200, а играться только в программах? Какая по умолчанию у CH340G?


Дело не в CH340, а в загрузчике, это в нем произведена настройка скорости сериального порта, загрузчик BLHELI установил ее в соответствии с требования программы конфигурации BLHELI, здесь на работе нет возможности посмотреть какая именно, пробуйте 115200 и на понижение и прошить 2 проводный интерфейс с загрузчиком BLHELI

Serg370
Offline
Зарегистрирован: 11.08.2018

бесполезно. на трёх скоростях, которые предлагает BLHeliSuite - 19200, 57600, 115200, пробовал залить все возможные прошивки...

stk500_getsync():not sync: resp=0x00

iarduino.ru дали сегодня трекномер. дождусь, буду реанимировать через ArduinoISP

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Serg370 пишет:

бесполезно. на трёх скоростях, которые предлагает BLHeliSuite - 19200, 57600, 115200, пробовал залить все возможные прошивки...

stk500_getsync():not sync: resp=0x00

iarduino.ru дали сегодня трекномер. дождусь, буду реанимировать через ArduinoISP

В boot скорость выставлена 38400, остается шить через ISP, хотя зная команды можно попытаться прошить из командной строки, лично я не пробовал, может кто отзовется на форуме, как это сделать

Serg370
Offline
Зарегистрирован: 11.08.2018

Поискал схему заливки бутлодера из Нано в Нано.... что-то не нашел. я правильно понял, что по разъёмам ICSP их соединять MISO - MISO; MOSI-MOSI; SCK-SCK и питание GND и +5V в паралель с одной на другую? Или еще на прошиваемую, на RST подать надо? Тоже с ICSP  на ICSP по 5-му пину?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

вот из скетча arduino as isp

 
#define RESET     10 // Use pin 10 to reset the target rather than SS
#define LED_HB    9
#define LED_ERR   8
#define LED_PMODE 7
#define PIN_MOSI 11
#define PIN_MISO 12
#define PIN_SCK 13
 

т е 10 к reset target

я еще у программатора между ресет и землей конденсатор 10 мкФ вешал чтоб не перезагружалась лишний раз

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да, кондер там необходим категорически, особенно если шьете из Линукс. 10мкф - достаточно.

В НАНО, которая программатор, заливаете обычным способом сектч "Arduino As ISP" из примеров. В нем есть детальное описание что куда надо подключить (вот не помню MISO-MISO + MOSI-MOSI или встречно MISO-MOSI - уточните. Да, 10-й пин на ресет прошиваемого МК). К ресету той, что программатор - кондер между пином и землей, дабы не дать программатору уйти в ресет раньше срока.

Там, в скетче, есть ещё пины для подключения лампочек, тогда можно визуально смотреть процесс прошивки. Подключаю трехцветный светодиод.. :)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

я тут как то писал уже - случай был у человека - не заливалось в его NANO с первого раза, на плате на reset был конденсатор. Увеличил в скетче delay задержку чтоб дольше период сброса был - стало лучше. Потом проще нашли решение - подряд два раза запускали "загрузить через программатор" и все прошивалось в 100 % случаях. Так что наши Китайские друзья разные непредсказуемые платы делают :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

у меня на ROBODYN  NANO и без конденсаторов проблем не было, всё шилось с полпинка

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

ua6em пишет:

у меня на ROBODYN  NANO и без конденсаторов проблем не было, всё шилось с полпинка

у меня тоже, но мы не знаем какая NANO у ТС

Serg370
Offline
Зарегистрирован: 11.08.2018

у меня китайская "DIY MORE"

bwn
Offline
Зарегистрирован: 25.08.2014

Попробуйте поменять платы в Ардуино IDE перед заливкой. Бывает чина-братья вместо нано-загрузчика заливают от Уно и наоборот, а бывает и вовсе забывают залить, она хоть какие признаки жизни подает?
 

Serg370
Offline
Зарегистрирован: 11.08.2018

Попробовал от Uno... результат тот же. Горит только светодиод питания и раз в 10 секунд коротко моргает зеленый сигнал L

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

попробовал, после прошивки платы arduino nano c с загрузчиком от UNO прошивкой двухпроводного интерфейса BLHELI BOOTLOADER она легко перешивается в IDE блинком из примеров, то-есть плата TC убитая
у меня в IDE для nano имеется возможность выбора двух загрузчиков со скоростью 115200 и 57600


 

Serg370
Offline
Зарегистрирован: 11.08.2018

ua6em пишет:

.... двух загрузчиков со скоростью 115200 и 57600

115200 - это ATmega328P, а 57600 - это ATmega 328P (Old Bootloader)?

и ещё вопрос: о каком двухпроводном интерфейсе BLHeli Вы говорите? Это тот что "С SILABS BLHeli Bootloader (USB/COM)"?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

1. Да Да

2. это 1-wire интерфейс, то-есть и "С" и "1"
 

после прошивки 4-х проводного интерфейса блинк тоже перезашился успешно

Serg370
Offline
Зарегистрирован: 11.08.2018

Всем привет. Получил с этого сайта arduino Nano. Под BLheliSuite прошился под четырёхпроводной интерфейс, прошил регули. Всё ОК.

Решил реанимировать первую Nano. На полученную, залил Blink через IDE - заливка прошла только при выборе в иструментах "ATmega 328P (Old Bootloader)", видимо на данной плате от DCCduino старый проц? Или просто старый загрузчик? Его потом можно перезалить сторонним программатором?

Далее на новую Нано залил скетч ArduinoISP, без проблем.

Собираю схему заливки загрузчика Нано-Нано...  Подаю питание, на обоих Нано загорается POW, 7 раз моргает L, жму "Записать Загручик" в Инструментах  и получаю:

"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
Ошибка при записи загрузчика."

Проверил на несколько раз соединения проводов. Вроде всё верно. Единственное не вешал конденсатор на "программатор".

Нашёл кондёр на 470 мкФ, повесил на "программатор" "-" на GND, "+" на RST. Попробовал записать загрузчик на скоростях 128000, 115200, 57600, 38400. Получаю:

"avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Ошибка при записи загрузчика."

Куда дальше? Или всё, пациент скорее мертв чем жив?

Есть фотки сборки, если нужно могу вывесить.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

дальше нужон осилограф и милипильметр )))

Serg370
Offline
Зарегистрирован: 11.08.2018

то есть проблема в железе?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

С высокой вероятностью пациент - мертв.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

я бы предположил, что кварец сдох (так как для того, чтобы работала микросхема нужно питание и кварец с обвязкой двумя конденсаторами, большему там неработать нечему, милипильметр чтобы померить питание, осилограф посмотреть синусоиду)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Зачем там кварц, если оно от внутреннего генератора вполне работать могет?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Мне кажется ТСу тяжело понять про кварц, ему попроще надо.

Serg370
Offline
Зарегистрирован: 11.08.2018

Да и попроще не надо ) Осцилографа нет, в дебри не полезу.

Спасибо форумчанам и на этом.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Arhat109-2 пишет:

Зачем там кварц, если оно от внутреннего генератора вполне работать могет?

так это ардуино нано, оно там по умолчанию присутствует, проверить можно легко, приемник включить и послушать частоты кратные 16мгц, в том числе и вниз, если сигнал есть ардуина работает, ну а ежели нет пропаять кварец и два конденсатора, если там пьеза, то только её, но питание надеюсь ТС проверил, что на ножках присутсвует, тоже кстати пропаять в том числе и минус

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Так она вроде бы уже работала, только потом гавкнулась.. можно, не вредно - всяко. Но, мне кажется что это уже не поможет. У меня из десятка несколько НАН оказалось косячных, писал уже где-то .. да и фиг с ними. Не та стоимость. Купил новую и всех делов.

Booc
Offline
Зарегистрирован: 03.09.2018

Привет! У меня аналогичная проблема была на ARDUINO UNO с ALIEXPRESS  с надписью 

WAVGAT.

Проблему удалось решить изменив скорость соединения с 115200 бит/с на скорость 57600 бит/с в файле:

... arduino-1.8.6\hardware\arduino\avr\boards.txt

LINE: 64   uno.upload.speed=115200  заменил на:  uno.upload.speed=57600

Эта строка именно для ARDUINO UNO.

Для ARDUINO NANO будет LINE: 147  nano.menu.cpu.atmega328.upload.speed=115200

При работе с портами время задержки оператора DELAY в 4 раза больше, чем указано в СКЕТЧе.

Для урока с мигающим светодиодом для получения частоты мигания 1 Гц пришлось ставить не DELAY(500), а DELAY(125) Для высокого и низкого уровня..

Кроме того при выводе данных через порт скорость бывода данных тоже в 4 раза меньше, чем указано в СКЕТЧе.
Для того, чтобы получить нужную скорость я указывал не 9600 бит/с, а 38400, второй вариант в СКЕТЧе 9600, а в мониторе 2400.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Booc, это все значит, что Вы неправильно указали плату в меню.

Booc
Offline
Зарегистрирован: 03.09.2018

В списке плат нет такой, которая работала бы адекватно. Есть несколько плат, которые работают в 2 раза быстрее, чем "Arduino / Genuino Uno", но тоже неправильно.

 В данный момент выбрана плата "Arduino / Genuino Uno"

Просто UNO в списке отсутствует.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Booc пишет:

 В данный момент выбрана плата "Arduino / Genuino Uno"

это и есть просто UNO

b707
Offline
Зарегистрирован: 26.05.2017

Booc - платы

WAVGAT.

это подделка под подделку. это мало того. что "не настоящие" арудино (это-то не беда, они на Али все ненастоящие) - но ВАВГАТовские еще не полностью совместимы с обычными ардуино.

Эти платы на 15-20% дешевле нормальных, но брать их категорически НЕ СОВЕТУЮ. Не гоняйтесь за дешевизной.