Прошивка arduino pro mini

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
Привет. Я нуб, я только начал, первый раз держу ардуинку в руках :) И сразу грабли :-/

Итак. Имею на руках горсточку ардуинок pro mini, несколько из них - на 3.3 вольта, одна - на 5. С чего начинает новичок? Правильно, заливает blink из примеров. Поскольку у меня про мини, заливаю через usb ttl конвертер. Контакта для сброса на нём нету, поэтому нужно хитро клацнуть reset на ардуинке перед загрузкой. Ну и что получилось у меня:

Беру 5 вольтовую. Немного практики и научился попадать reset-ом в нужный момент. По крайней мере, заливаю blink с разными интервалами морганий - моргания меняются.
Платы на 3.3 вольта, аж несколько. Получилось залить в них прошику, но лишь один раз. Т.е. если сейчас включать эти платы - они блинкают, прошивка в них попала. Но перезалить - не выходит никак :(
Я пробовал ед концом и сржать reset до начала компиляции, прямо перазу после компиляции. Пробовал зажать кнопку и отпускать в эти моменты. Пробовал после компиляции скетча жмакать раз в несколько секунд. Результат один - долгая загрузка после которой в консоли Ошибка загрузки на 10 попыток :-/

Чтобы снять лишние вопросы:
  • usb-конвертер явно рабочий, в 5 вольтовую то заливается. И драйвера в порядке
  • контакты значит подключаю тоже верно
  • джампер на нём переставляю, питание беру с 3.3 ноги
  • значит и reset давить когда нужно вроде научился
  • сказать бы, что неисправны ардуинки - так их 3 штуки, причём 2 куплены у одного продавца, одна у другого, маловероятен такой брак
  • и да, реализую вполне конкретный проект куда нужна именно 3.3 вольта и именно про мини :(

Поможет ли мне заливка, используя nano версию как программатор? Скоро будет на руках, могу попробовать.
Мог ли я угрохать платы неверной заливкой? Например, в настройках ide выбрал другой тип платы, процессора или загрузчика?
Может есть хитрости именно для 3.3 версии?
Может попробовать другой софт для загрузки? Я пока затестил ещё SinaProg, которая заливает уже скомпилированные скетчи в память, но результат тот же :(

Буду благодарен за любую помощь.
 

Eig

✩✩✩✩✩✩✩
3 Май 2021
38
2
Напишите, что вы выбирали в "Инструменты -> процессор". У меня было подобное, когда микроконтроллер оказался залочен после прошивки, скомпилированной для другой версии микроконтроллера. Вместо Arduino Micro необходимо было выбрать Sparkfun Pro Micro -> ATmega32U4 (3.3V 8MHz). Подобное может быть и для Pro Mini. Также нужно посмотреть версию чипа в Pro Mini. В boards.txt могут быть просто прописаны другие сигнатуры. Например, китайцы поставили в платы ATmega168PA вместо ATmega168P. Попробуйте Восстановить загрузчик.
 

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
В Процессоре ставлю ATmega 328P (3.3 или 5 V, 8 или 16 MHz, соответственно плате). На уинке стоит 328P, по крайней мере так подписан.

Появилась на руках Nano, прошил её скечет ArduinoISP, юзаю как программатор, пытаюсь залить через неё - аналогично мимо. Пробовал и просто грузить скетч и сначала залить загрузчик - ошибки. Из ошибок наиболее адекватное, что вижу - это
avrdude: Device signature = 0xff0000
avrdude: Expected signature for ATmega328P is 1E 95 0F

Насколько моих скудных знаний хватает (спасибо, за ссылку на статью) - фьюзы либо сбиты в нули, либо по какой-то причине не читаются.
 

Eig

✩✩✩✩✩✩✩
3 Май 2021
38
2
@pindzak, причем тут фьюзы... Есть фьюзы (устанавливают опции работы чипа и откуда брать генератор импульсов), а есть сигнатура - идентификатор чипа. Сигнатура у вас нулевая, потому что дудка не может ее считать. Обычно это бывает, если непропай, неправильное подключение или программатору что-то мешает войти в нужный режим работы (например, нога Reset нормализована).
По моему опыту могу вот что сказать. Нужно купить китайский клон USBAsp с переходником 10 на 6 за 200 рублей, впаять в него вилку JP3 и установить туда джампер (нужен, чтобы понизить скорость считывания и записи). Затем подключить программатор по SPI (чтобы прошить начисто чип, используя калькулятор фьюзов.)
И скачать любую программу на основе дудки, позволяющую шить фьюзы.
Пробуем прочитать чип, чтобы вообще понять хоть приблизительно, что с ним.
Процесс воскрешения: в опциях калькулятора выбираем внутренний тактовый генератор на 8 МГц (в ардуине используется внешний кварц на 16МГц) и копируем фьюзы в программу. Ищем какую-нибудь самую примитивную программу для ATmega328p (для микроконтроллера, (.hex)). Пробуем прошить. Если получилось, то значит чип не дохлый, и может быть виноват непропай на ардуине, или ее кварц сдох. Затем выставляем уже фьюзы для ардуины, пробуем прошить. Если шьется, то пробуем уже залить загрузчик.
 
  • Лойс +1
Реакции: pindzak

bort707

★★★★★★✩
21 Сен 2020
2,894
860
@Eig, ерунду пишете. Нет никаких "фьюзов для ардуины" и "фьюзов для микроконтроллера", это одно и тоже. Похоже вы что-то краем уха слышали, но не поняли. Не поможет ему USBASP, то как он прошивал через ISP - это ровно тоже самое. Если у него сигнатура не читается, то пока он эту проблему не решит - все остальное бестлоку.
 
  • Лойс +1
Реакции: pindzak

PiratFox

★★★★★✩✩
13 Фев 2020
1,722
481
@pindzak, а какой у Вас кварц на версии 3.3V, разве не 8MHz ? ИМХО, отсюда все беды. Скорее всего, Вы неправильно в IDE частоту процессора указали. А вообще, попробуйте в IDE выбирать плату Nano и пробовать разные версии Bootloader. Опять же, какой процессор на этих Ваших про мини? Бывает 328-й, а бывает и 168-й.
 
Изменено:

Eig

✩✩✩✩✩✩✩
3 Май 2021
38
2
@bort707, конечно нет разницы. Просто Arduino использует внешний кварц, о чем я и написал.
USBAsp может помочь, потому что поддерживает прошивку на низкой скорости. Это актуально при плохих соединениях. Мне это неоднократно помогало.
Критикуешь - предлагай. Помогите ему сами тогда прочитать сигнатуру.
 

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
причем тут фьюзы...
Ну так вы же дальше и пишете про залоченную ногу reset и перепрошивку начисто и установку фьюзов. Вот и я примерно в ту же степь клоню.
а какой у Вас кварц на версии 3.3V, разве не 8MHz
В описании на алике было 3.3v 8MHz, это и выбираю в IDE. Камешек на плате подписан 328P. Однако, даже если просто попробовать читуть avrdude, то ей тоже слабо.
Команда
avrdude -C ../etc/avrdude.conf -c avrisp -p m328p -P com5 -b 19200 -U lfuse:r:-:h -v
Ошибка
avrdude: Device signature = 0x00ff00
avrdude: Expected signature for ATmega328P is 1E 95 0F

Т.е. иде то как будто и не причём, плата вообще не читается.

Пока из идей - поробовать так называемый AVR Doctor, который автономно от 12В как-то зашивает фьюзы. Осталось найти магазин радиодеталей в городе :-/
 

Eig

✩✩✩✩✩✩✩
3 Май 2021
38
2
@pindzak, попробуйте прозвонить весь SPI-интерфейс на плате. Может быть, банально, какая-то из дорожек оборвана и проверьте провода.
Я программировал ATtiny861 на самодельной плате - были такие же проблемы с нулевой сигнатурой. Виной тому уродские макетные провода dupont - плохой контакт. И прошиваться стало нормально только когда понизил скорость. Поэтому не игнорируйте мой совет с USBAsp. Все равно вам потом этот программатор пригодится.
 
  • Лойс +1
Реакции: pindzak

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
  • Лойс +1
Реакции: pindzak

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
@pindzak, вероятно что то не так подключили, т.к. значение сигнатур разное
А вот я прямо сейчас, перепроверил все контакты, взял другую платку (у меня их 4), для гарантии - запитал её внешним БП через RAW. И вот прям ничего не трогая просто несколько раз пытаюсь считать фьюзы через avrdude и получаю сигнатуры, avrdude: Device signature = 0xff00ff, 0x00ff00, и даже 0x0f00ff.
Фото могу завтра, но всё по мануалам: 11-12-13 ноги друг с другом, 10ая от нано (программатор) на RST, питание на RAW и GND внешнее.

попробуйте прозвонить весь SPI-интерфейс на плате.
Что именно звонить, саму плату, дорожки? Проверил вышеупомянутые контакты между платами - звонятся, хотя провода тоже те ещё сопельки :(
Программатор не игнорю, но с алика будет не мгновенно, а в городе, боюсь, не найду.

И прошиваться стало нормально только когда понизил скорость.
Скорость чего? Из советов - выставил COM-порт на 19200 и при заливке в скетче программатора можно сменить частоту
#define SPI_CLOCK (1000000/6)
По идее, даже это значение должно хватать до 1мгц, но я понизил ещё в 10 раз (нолик убрал) - не спасло
 

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
Хмм. Ещё понизил частоту программатора. Теперь сигнатуры вообще скачут как хотят 0x00fe03, 0x8000f0, 0xfe003f, а не просто нули.
Понял понял, ищу USBASP программатор :)

Так, в порядке догадок. Где-то встречал версии, что с портом reset-а что-то, то ли резистор на нём слабый, то ли... В электронике я слаб, слова "подтягивающий" и то побаиваюсь, может подскажете, как подстраховаться и этот вариант точно убрать.
 
Изменено:

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
USBAsp в городе нету, так что продолжаю развлекаться тем, что есть. Куплю обязательно, даже если так победю.

Для гарантии поменял в скетче программатора выводы 11,12,13 на другие, переподключил соответственно, результата всё равно нет. Но вот что заметил. Если подключение выполнять на включенной плате, то при подключении того контакта, который SCK (13 по умолчанию) диод L на прошиваемой ардуинке начинает моргать в формате "дыхание", т.е. плавно тускнеть и опять разгораться. Если контакт убрать - продолжает работать зашитый в pro mini "blink". Как это объяснить? Я думал тактующий сигнал, он "тикать" должен, а не "дышать". С частотами что-то?
 

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
Вот это - эталонный, так сказать, вариант. Скетч программатора в дефолтном состоянии, пины не меняны, питание для прошиваемой беру с платы-прошиватора.
Пробовал давать внешнее питание (на RAW и GND, тогда убирал 3.3v и gnd с nano)
Пробовал добавлять конденсатор на nano между rst и gnd, как сказано в этой инструкции. На фото забыл добавить, так как там ногу нужно припаять, пока так, на соплях докидывал.
Пробовал менять пины в программаторе, тогда вместо 11-12-13 просто переставлял на соответствующие ноги.

Провода да, пока такие, купить сходу не могу, закажу.
IMG20210513003626.jpgIMG20210513003630.jpgIMG20210513003648.jpgIMG20210513003707.jpg
 

bort707

★★★★★★✩
21 Сен 2020
2,894
860
@pindzak,
два замечания
  • как бы вы не подключали питание - GND прошиваемой ардуины и НАНО должны быть соединены ВСЕГДА
  • пины 11-12-13 в программаторе менять нельзя

И еще. "совет по жизни" - отложите пока эти платы. используйте для опытов те, что прошиваются. Наберетесь опыта и через полгода прошьете все играючи и будете удивлятся "а чего я тупил"?
 
  • Лойс +1
Реакции: pindzak

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
пины 11-12-13 в программаторе менять нельзя
А почему? Для этого отдельные константы define-ятся в скетче, в инструкциях видел упоминание. Ну то есть я не отрицаю, но хочется причину знать )

Про gnd спасибо, учту.

А прошиваемых плат нету под рукой, все 4 не хотят со мной общаться. Купить оффлан, опять же, не вышло, только заказывать (
 

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
"совет по жизни" - отложите пока эти платы.
Лучший совет.
Сегодня был хороший день. Я выдохнул, отринул тревоги, сел, да спокойно и аккуратно пропаял ноги на платах. Где то их вообще не было, где-то просто подправил. При моём мизерном опыте - лучшая пайка вышла, загляденье и умиротворение.
Потом не стал мудрить и достал простой USB-TTL адаптер. Не буду ничего программировать, просто воткну, да попробую залить, с характерным нажатием reset'а после компиляции. Единственное изменение - в ходе моих исследовательских работ доустановил ещё ядро miniCore, буду действовать через него, а не через стандартные.
И, как бывает почти всегда, спокойный буддисткий пофигизм победил несколько дней суматошных метаний - скетчи заливаются как угодно, а большего мне пока и не нужно.
Благодарю за советы. Набрался инфы, что-то я явно понял, но пока не по сеньке шапка. Вопрос не то чтобы решён, но временно потерял актуальность :) Вернусь к нему позже. Пока что всем оммммм, пойду посплю.

PS Однако, залились только 3.3 вольтовые. 5v не хотят. И ладно, пока не до них
PPS
к 5 вольтам подключали как я говорил? получилось?
Как уже сказал - пока не требуется. Есть подозрение, что ранее я и так пробовал. 3.3 вольтовым ведь 5 вольт тоже годятся?
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,722
481
@pindzak, так на 3,3 вольтовые модули подавать 5 вольт очень даже можно, чипы одни и те же. Просто на модулях 3,3 вольта кварцы 8MHz, т.к. производитель не гарантирует работу процессора на частоте 16MHz при напряжении питания ниже 4,5 вольт, см. даташит п. "• Speed Grade". ;)
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
Как уже сказал - пока не требуется. Есть подозрение, что ранее я и так пробовал. 3.3 вольтовым ведь 5 вольт тоже годятся?
это как понимать?!
вы же тему создали что платы не прошиваются, а теперь решение не требуется...
в общем, если надо прошить - подключайте к 5 вольтам, а не 3.
 

pindzak

✩✩✩✩✩✩✩
16 Июн 2020
10
0
Так и понимать - у меня пока не хватает матчасти для сложных вещей. Всё нужно постигать постепенно, а я бросился в дебри. Это не зря, но рановато. Нельзя сразу ядерную физику учить без школьной программы.

Я разобрался спокойно с заливкой хотя бы через ttl, уже отлично, изначальный вопрос решён. Позвольте мне хотя бы первый скетч написать да первый проект собрать. А потом я вернусь к прямому программированию МК, это интересно.

Простите, не понимаю ваших возмущений от того что я чего-то не умею, не могу. Помощь никуда не денется, вот она - инфа, настанёт её время, спасибо вам.