Как на Arduino Nano убрать секундную задержку при загрузке?

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

Всем доброго дня.

Была у меня задача одна по установке ардуинки в пром.автоматику на 3 прибора. Два Я реализовал на Arduino Pro Mini.

Но из-за того, что загрузчик долго грузился, мне пришлось прошить его на Optiboot от Uno.

Теперь загрузка происходит мгновенно и светодиод (оставил моргалку светодиода для проверки) наинает моргать сразу.

Но так как у третьей Pro Mini у меня нет, собрал на Nano, прошил так же Optiboot по тому же алгоритму. 

Но Nano все равно имеет секундную задержку! В чем может быть проблема?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Залейте скетч без загрузчика.

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

А это как сделать? Не подскажете?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Для этого нужен программатор (напр. USBasp) или ещё одна ардуина (Arduino as ISP).
Arduino IDE: "Скетч" -- "Загрузить через программатор"

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

Спасибо за совет, но при этом загрузчик сотрется? Или его отдельно стирать надо?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Сотрётся

-NMi-
Offline
Зарегистрирован: 20.08.2018

ЕвгенийП пишет:

Сотрётся

Вот здесь вот под вопросом. Если программатору "скормить" *.hex по размеру не превышающий флеш=прошивка+бутлоадер  --- то бутлоадер не сотрётся.

Evgeny_L пишет:

В чем может быть проблема?

Загрузчик ждёт команду, поэтому задержка.

Лечение --- убери фьюз = BootRst и проц не будет "нырять" в бутлоадер. При этом бут точно не сотрёццО.

 

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

-NMi- пишет:

Вот здесь вот под вопросом. Если программатору "скормить" *.hex по размеру не превышающий флеш=прошивка+бутлоадер  --- то бутлоадер не сотрётся.

Нет никакого вопроса. Если программатору скормить *.hex , не содержащий бутлоадер - сотрется в любом случае. А если в *.hex есть и прошивка и бут - то запишется обратно. Так, собственно, его и восстанавливают.

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

Тогда у меня вопросы:

1. Почему в Pro Mini проц не ныряет в бутлоадер, а в Nano ныряет?

2. И после изменения этого фьюза я так же могу заливать прошивку через IDE стандартно по COM или только программатором? 

3. Выставить фьюз можно только сторонней программой? Какой?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Evgeny_L пишет:

1. Почему в Pro Mini проц не ныряет в бутлоадер, а в Nano ныряет?

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

Evgeny_L пишет:

2. И после изменения этого фьюза я так же могу заливать прошивку через IDE стандартно по COM или только программатором? 

Нет, только программатором.

Evgeny_L пишет:

3. Выставить фьюз можно только сторонней программой? Какой?

https://www.google.com/search?q=avr+фьюзы

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

Jeka_M пишет:

Evgeny_L пишет:

1. Почему в Pro Mini проц не ныряет в бутлоадер, а в Nano ныряет?

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

Evgeny_L пишет:

2. И после изменения этого фьюза я так же могу заливать прошивку через IDE стандартно по COM или только программатором? 

Нет, только программатором.

Evgeny_L пишет:

3. Выставить фьюз можно только сторонней программой? Какой?

https://www.google.com/search?q=avr+фьюзы

Тогда мне совсем непонятно, почему я Pro Mini перешил загрузчик и он стартует сразу, а Nano прошил этим же загрузчиком, он запускается с секундной задержкой? Что то еще в них отличается? Фьюзы вроде все одинаковые, согласно описаний.

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

Evgeny_L пишет:

Тогда мне совсем непонятно, почему я Pro Mini перешил загрузчик и он стартует сразу, а Nano прошил этим же загрузчиком, он запускается с секундной задержкой? Что то еще в них отличается? Фьюзы вроде все одинаковые, согласно описаний.

в про мини нет USB если я не путаю. Зачем ей вообще хагрузчик, вы как ее прошиваете?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Evgeny_L пишет:

Тогда мне совсем непонятно, почему я Pro Mini перешил загрузчик и он стартует сразу, а Nano прошил этим же загрузчиком, он запускается с секундной задержкой? Что то еще в них отличается? Фьюзы вроде все одинаковые, согласно описаний.

каким образом ты "перешил" загрузчик в ProMini, каким - в Нано? Подробно опиши свои действия.

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

b707 пишет:

Evgeny_L пишет:

Тогда мне совсем непонятно, почему я Pro Mini перешил загрузчик и он стартует сразу, а Nano прошил этим же загрузчиком, он запускается с секундной задержкой? Что то еще в них отличается? Фьюзы вроде все одинаковые, согласно описаний.

в про мини нет USB если я не путаю. Зачем ей вообще хагрузчик, вы как ее прошиваете?

Я прошиваю через переходник UART-USB

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

wdrakula пишет:

Evgeny_L пишет:

Тогда мне совсем непонятно, почему я Pro Mini перешил загрузчик и он стартует сразу, а Nano прошил этим же загрузчиком, он запускается с секундной задержкой? Что то еще в них отличается? Фьюзы вроде все одинаковые, согласно описаний.

каким образом ты "перешил" загрузчик в ProMini, каким - в Нано? Подробно опиши свои действия.

Я из одного нано сделал программатор. Т.е. В Nano зашил скетч ArduinoISP. Далее соединил по схемке и в IDE перезаписал загрузчик на всторой Nano и на Pro Mini. Теперь и Nano и Pro Mini загружают скетчи как Uno. 

На сколько мне известно, в UNO стоит загрузчик Optoboot. Он загружает мнгновенно.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Evgeny_L пишет:

Я из одного нано сделал программатор. Т.е. В Nano зашил скетч ArduinoISP. Далее соединил по схемке и в IDE перезаписал загрузчик на всторой Nano и на Pro Mini. Теперь и Nano и Pro Mini загружают скетчи как Uno. 

На сколько мне известно, в UNO стоит загрузчик Optoboot. Он загружает мнгновенно.

Оптибут определяет отсутствие попытки программирования по ошибке UART "фрейминг еррор" если она есть - перестает ждать. Если её нет - ждет секунду. Особенность схемотехники Нано (в отличии от Уно и Меги) иногда приводит к вот таким результатам.

-----------------

Отдельно дам совет, пусть и непрошеный: запись через загрузчик специально придумана для удобства создания макетов и для отладки. В готовое изделие записывай код через ISP, без загрузчика. Тогда МК будет стартовать мгновенно и надежно.

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

wdrakula пишет:

Evgeny_L пишет:

Я из одного нано сделал программатор. Т.е. В Nano зашил скетч ArduinoISP. Далее соединил по схемке и в IDE перезаписал загрузчик на всторой Nano и на Pro Mini. Теперь и Nano и Pro Mini загружают скетчи как Uno. 

На сколько мне известно, в UNO стоит загрузчик Optoboot. Он загружает мнгновенно.

Оптибут определяет отсутствие попытки программирования по ошибке UART "фрейминг еррор" если она есть - перестает ждать. Если её нет - ждет секунду. Особенность схемотехники Нано (в отличии от Уно и Меги) иногда приводит к вот таким результатам.

-----------------

Отдельно дам совет, пусть и непрошеный: запись через загрузчик специально придумана для удобства создания макетов и для отладки. В готовое изделие записывай код через ISP, без загрузчика. Тогда МК будет стартовать мгновенно и надежно.

Я уже выпаивал USB адаптер с Nano, в надежде, что будет стартовать быстрее. Нифига, задержка такая же.

В чем все-таки их различия? Процы то одинаковые!

Значит проц на Nano как то "нюхает" присутствие UART, даже без микросхемы CH340G. Возможно подтяжка на какой то вывод   дает процу понять, что есть UART адаптер. Как думаете?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Evgeny_L пишет:
Как думаете?
Я Вам ещё в посте #1 сказал как думаю (и как оно есть на самом деле). Вы целый день тут флудите - давно бы сделали и забыли бы об этой проблеме.

sadman41
Offline
Зарегистрирован: 19.10.2016

USB-коннекторы на моей памяти с ардуин ещё не сдавали для ускорения.

Какие же, все-таки затейники - эти ардуинщики.

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

ЕвгенийП пишет:

Evgeny_L пишет:
Как думаете?
Я Вам ещё в посте #1 сказал как думаю (и как оно есть на самом деле). Вы целый день тут флудите - давно бы сделали и забыли бы об этой проблеме.

Я так и сделал. Ваш способ работает. Именно так я скорее всего и решу свою проблему. Но хочется понять истину, в чем все-таки различия.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ты производишь впечатление любознательного и подготовленного новичка. Измерь тестером сопротивление от контакта на CH340 и МК до разъема на плате TX и RX у Нано и Уно. Посмотри схему того и другого.

Заодно (бонусом) и получишь ответ, почему Уно и Мега  (даже те, что на CH340) могут работать в режиме USB-UART при замыкании Reset на GND, а Нано - не может.

Разница только в цепи контактов UART. Ты правильно понимаешь, что сами МК и их настройки - одинаковы.

-NMi-
Offline
Зарегистрирован: 20.08.2018

b707 пишет:

Нет никакого вопроса. Если программатору скормить *.hex , не содержащий бутлоадер - сотрется в любом случае. А если в *.hex есть и прошивка и бут - то запишется обратно. Так, собственно, его и восстанавливают.

Тааакс, те иными словами аврки не поддерживают перезапись а поддерживают только стирание+запись? Правильно я понимаю?

Тогда мне непонятен один момент: у меня есть самые первые дурдуины от 8 до 2560 замученные в хвост и гриву много мильёнов раз, некоторые даже уже не пишутся правильно. Перешивались они всякими разными программаторами втч и китайскими стока же мильёнов раз. Но если мне надо мой бутлоадер (а он самописный, в инете его нет) - я беру любую дурдуину и тупо сливаю всю флешь с камня на камень. Внимание вопрос: как выживает бутлоадер???

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

sadman41 пишет:
USB-коннекторы на моей памяти с ардуин ещё не сдували для ускорения. Какие же, все-таки затейники - эти ардуинщики.

там пару резисторов сдуть надо было, как мне кажется )))

Сейчас начнут пытать, а что за нано у ТС (на вкус все одуванчики разные)

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

wdrakula пишет:

ты производишь впечатление любознательного и подготовленного новичка. Измерь тестером сопротивление от контакта на CH340 и МК до разъема на плате TX и RX у Нано и Уно. Посмотри схему того и другого.

Заодно (бонусом) и получишь ответ, почему Уно и Мега  (даже те, что на CH340) могут работать в режиме USB-UART при замыкании Reset на GND, а Нано - не может.

Разница только в цепи контактов UART. Ты правильно понимаешь, что сами МК и их настройки - одинаковы.

В общем разобрался в чем проблема.

Оказывается в Pro Mini введены сигналы Rx, Tx и DTR. На самой ардуинке сигнал DTR идет через конденсатор на Reset. И когда мы подключаем внешний адаптер USB-TTL, сам адаптер делает сброс ардуинки и бутится. Далее происходит заливка скетча.

В Nano схемотехника та же. И так же сигнал DTR подключен к встроенному адаптеру USB-TTL. Но при подключении питания, сам адаптер начинает дергать этот сигнал DTR на минус, тем самым не давая ардуинке запустится в течении 1сек.

В качестве эксеримента, я отсоединил этот конденсатор (по схеме C4) и Nano начала мгновенно запускаться!

Если кому нужно будет ускорять закгузку ардуино Nano, как мне, можете менять бут на UNO и удалять конденсатор или обрезать дорожку, идущую от него на ресет.

Всем спасибо за активное участие!

P.S.: Хотел прикрепить схемы Nano и Pro Mini, но не нашел, как прикреплять файлы.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Усё хорошо, "прекрасная маркиза", но, порезав ногу Reset у тебя не будут грузиццо скетчи? Кагбыть?

Evgeny_L
Offline
Зарегистрирован: 28.01.2020

-NMi- пишет:

Усё хорошо, "прекрасная маркиза", но, порезав ногу Reset у тебя не будут грузиццо скетчи? Кагбыть?

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Evgeny_L пишет:

В моем случае, когда не хватает ардуинок

Так надо не конденсаторы резать, а менять поход к комплектованию. Я, вот, например, самые ходовые детали (МК, некоторые микросхемы, резисторы, конденсаторы и т.п.) дозакупаю новые полсотни-сотню, когда в загашнике ещё остаётся десяток-два. В результате - никогда не кончаются :-) Очень рекомендую.