Как arduino ide делает ресет?

dmgoldobin
Offline
Зарегистрирован: 16.02.2020

Судя по тому, что ide заливает новый скетч прямо при работе пользовательского кода, оно как то делает ресет. Но судя по схеме (nano) такая возможность не предусмотрена. Тогда как? И главное - как это сделать самому?

 ps. может там на usb просто есть возможность питание отключать через драйвер?

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

IDE ресет не делает. Ресет делает мелкосхема USB-UART. А первым стартует загрузчик.

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

dmgoldobin пишет:

Но судя по схеме (nano) такая возможность не предусмотрена. 

По какой схеме? Разных вариаций ардуин существует множество. От оригинальной до разных китайских клонов.
Обычно предусмотрено. От ножки DTR микросхемы USB-UART преобразователя через конденсатор 0.1uf на ножку RESET микроконтроллера.

dmgoldobin
Offline
Зарегистрирован: 16.02.2020

А вот да, нашел схему где разведен dtr. А на другой схеме он в воздухе висел. Не знал, что там все по разному бывает, попробую dtr дернуть

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

bwn пишет:

IDE ресет не делает. Ресет делает мелкосхема USB-UART. А первым стартует загрузчик.

т.к. платформа не была конкретизирована, спрошу, а как же Леонардо делает ресет?

у меня есть предположение, но хотелось бы уточнить.

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

xDriver пишет:

т.к. платформа не была конкретизирована, спрошу, а как же Леонардо делает ресет?

у меня есть предположение, но хотелось бы уточнить.

"Но судя по схеме (nano) такая возможность не предусмотрена" - воспринял как 168/328 Atmega.
Как делает Леонардо не знаю и даже в руках не держал.))))

dmgoldobin
Offline
Зарегистрирован: 16.02.2020

Все даже проще оказалось, каждое открытие устройства COM под виндой и так уже дергает DTR и приводит к ресету. 

Это объясняет заодно почему мне не удавалось управлять прошивкой через "echo x >com5", она ресетилась каждый раз

RG22EM
Offline
Зарегистрирован: 27.08.2016

dmgoldobin пишет:

Все даже проще оказалось, каждое открытие устройства COM под виндой и так уже дергает DTR и приводит к ресету. 

Это объясняет заодно почему мне не удавалось управлять прошивкой через "echo x >com5", она ресетилась каждый раз

если это не отключить в инициализации, то да

Milly
Offline
Зарегистрирован: 20.02.2020

dmgoldobin пишет:

Все даже проще оказалось, каждое открытие устройства COM под виндой и так уже дергает DTR и приводит к ресету. 

Это объясняет заодно почему мне не удавалось управлять прошивкой через "echo x >com5", она ресетилась каждый раз

 

А почему тогда МК не ресетится при открытии монитора порта? Ведь тоже порт юзается так же как и при заливке скетча!

1. Заливаю скетч - идёт открытие порта - ресет - заливка - работе скетча.

2. открываю монитор порта - ( тут выходит открытия ком порта не происходит) - кидаю туда символы - ресета нет естественно. НО почему?

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

Milly пишет:

dmgoldobin пишет:

Все даже проще оказалось, каждое открытие устройства COM под виндой и так уже дергает DTR и приводит к ресету. 

Это объясняет заодно почему мне не удавалось управлять прошивкой через "echo x >com5", она ресетилась каждый раз

 

А почему тогда МК не ресетится при открытии монитора порта? Ведь тоже порт юзается так же как и при заливке скетча!

1. Заливаю скетч - идёт открытие порта - ресет - заливка - работе скетча.

2. открываю монитор порта - ( тут выходит открытия ком порта не происходит) - кидаю туда символы - ресета нет естественно. НО почему?

мк ресетится,  а вот буфер СH340 не очищается, так как понятия не имеет, что мк ресетнулся

Milly
Offline
Зарегистрирован: 20.02.2020

ua6em пишет:

Milly пишет:

dmgoldobin пишет:

Все даже проще оказалось, каждое открытие устройства COM под виндой и так уже дергает DTR и приводит к ресету. 

Это объясняет заодно почему мне не удавалось управлять прошивкой через "echo x >com5", она ресетилась каждый раз

 

А почему тогда МК не ресетится при открытии монитора порта? Ведь тоже порт юзается так же как и при заливке скетча!

1. Заливаю скетч - идёт открытие порта - ресет - заливка - работе скетча.

2. открываю монитор порта - ( тут выходит открытия ком порта не происходит) - кидаю туда символы - ресета нет естественно. НО почему?

мк ресетится,  а вот буфер СH340 не очищается, так как понятия не имеет, что мк ресетнулся

 

ничего не понял про буфер.

Вот работает ардуино, управляет светодиодами WS8211, открываю монитор порта - кидаю туда управляющие коды для своего скетча - ничего не ресетиться, но стоит только нажать кнопку ОТПРАВИТЬ СКЕТЧ - ресет про ходит. В чём разница открытия ком порта в обоих случаях? Я не понимаю.

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

Milly пишет:

ничего не понял про буфер.

Вот работает ардуино, управляет светодиодами WS8211, открываю монитор порта - кидаю туда управляющие коды для своего скетча - ничего не ресетиться, но стоит только нажать кнопку ОТПРАВИТЬ СКЕТЧ - ресет про ходит. В чём разница открытия ком порта в обоих случаях? Я не понимаю.

Вам про ком порт почитатать, хардовый, со всеми сигналами TX-RX RTS-CTS DTR-DSR ...и как добраться из монитора (DATA) к этим управляющим сигналам

dmgoldobin
Offline
Зарегистрирован: 16.02.2020

У меня ресетится nano при открытии монитора в IDE. 

Прошиваем стандартный блинк, чтоб раз 5 в секунду мигал, открываем монитор - все на секунду замирает

Milly
Offline
Зарегистрирован: 20.02.2020

dmgoldobin пишет:

У меня ресетится nano при открытии монитора в IDE. 

Прошиваем стандартный блинк, чтоб раз 5 в секунду мигал, открываем монитор - все на секунду замирает

 

Опа, а у меня не происходит этого ( в принципе и не надо). Что мы делаем не так?

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

Milly пишет:

1. Заливаю скетч - идёт открытие порта - ресет - заливка - работе скетча.

2. открываю монитор порта - ( тут выходит открытия ком порта не происходит) - кидаю туда символы - ресета нет естественно. НО почему?

Точно? У меня не так. 

1. Работает ардуина.
2. Закрываю монитор порта
3. Ардуина продолжает работу
4. Открываю монитор порта
5. Ардуина перезагружается.

Что я не так делаю?

Feronos
Feronos аватар
Offline
Зарегистрирован: 19.02.2020

Я правильно понимаю, что речь идёт про IDE на "микромягких окнах"? Или с линукса кто-то тоже пробовал? А то я-то на работе на убунте сижу, с ардуинкой все свои дела там делаю.

Green
Offline
Зарегистрирован: 01.10.2015

Milly пишет:

2. открываю монитор порта - ( тут выходит открытия ком порта не происходит) - кидаю туда символы - ресета нет естественно. НО почему?

Может у человека эмулятор терминала не родной.)

dmgoldobin
Offline
Зарегистрирован: 16.02.2020

на маке тоже перезагружается при открытии монитора

Feronos
Feronos аватар
Offline
Зарегистрирован: 19.02.2020

На линьке так же

RG22EM
Offline
Зарегистрирован: 27.08.2016

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

Milly пишет:

1. Заливаю скетч - идёт открытие порта - ресет - заливка - работе скетча.

2. открываю монитор порта - ( тут выходит открытия ком порта не происходит) - кидаю туда символы - ресета нет естественно. НО почему?

Точно? У меня не так. 

1. Работает ардуина.
2. Закрываю монитор порта
3. Ардуина продолжает работу
4. Открываю монитор порта
5. Ардуина перезагружается.

Что я не так делаю?

вы не настроили компорт, если настроить "правильно" ресетится не будет...
к примеру к компорту подключено радиопередающее устройство, DTR или CTS линии - разрешение
на передачу и будет каждый раз при старте ОСИ самопроизвольное (неконтролируемое) включение,
в этом случае оно точно не надо, видимо ТС тоже радиопопуляризатор )))

 

Green
Offline
Зарегистрирован: 01.10.2015

Ну так это смотря какой эмулятор.) У меня на Win не перегружается.
К примеру скетч с выводом в терминал работает круглосуточно.
И что ж теперь терминал держать постоянно включенным! Непорядок.

Milly
Offline
Зарегистрирован: 20.02.2020

Green пишет:

Ну так это смотря какой эмулятор.) У меня на Win не перегружается.
К примеру скетч с выводом в терминал работает круглосуточно.
И что ж теперь терминал держать постоянно включенным! Непорядок.

Юзаю монитор, который с IDE. Ничего специально не настраивал.

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

И что это за настройки?

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Milly пишет:

Юзаю монитор, который с IDE. Ничего специально не настраивал.

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

И что это за настройки?

 

Ресетит линией DTR. Настройки- Hardware Flow Control. Если отключить, то должна больше не ресетить.

Milly
Offline
Зарегистрирован: 20.02.2020

asam пишет:

M пишет:

Юзаю монитор, который с IDE. Ничего специально не настраивал.

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

И что это за настройки?

 

Ресетит линией DTR. Настройки- Hardware Flow Control. Если отключить, то должна больше не ресетить.

Щас глянул у себя - сия настройка стоит в НЕТ.  Тогда опять вопрос, почему же при заливке скетча ресет есть?

Или IDE сама временно корректирует эту вещь в "АППАРАТНОЕ", чтобы сбросить МК перед заливкой, а монитор порта настройку не меняет и открывает порт как есть. ТАК?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Milly пишет:

Щас глянул у себя - сия настройка стоит в НЕТ.  Тогда опять вопрос, почему же при заливке скетча ресет есть?

Или IDE сама временно корректирует эту вещь в "АППАРАТНОЕ", чтобы сбросить МК перед заливкой, а монитор порта настройку не меняет и открывает порт как есть. ТАК?

Аппаратный Flow Control это когда линия DTR  дергаются автоматически при открытии порта. Но никто не запрещает программе дернуть ее "вручную".

Milly
Offline
Зарегистрирован: 20.02.2020

asam пишет:

Milly пишет:

Щас глянул у себя - сия настройка стоит в НЕТ.  Тогда опять вопрос, почему же при заливке скетча ресет есть?

Или IDE сама временно корректирует эту вещь в "АППАРАТНОЕ", чтобы сбросить МК перед заливкой, а монитор порта настройку не меняет и открывает порт как есть. ТАК?

Аппаратный Flow Control это когда линия DTR  дергаются автоматически при открытии порта. Но никто не запрещает программе дернуть ее "вручную".

Ну тогда наверное ясно всё. IDE при открытии порта - дёргает DTR в обязательном порядке, а монитор просто открывает и тогда  в зависимости от настроек потока - DTR задействуется или нет.

Вроде не сложно, но почему то до сих пор этой инфы про ардуину нигде не было!

 

RG22EM
Offline
Зарегистрирован: 27.08.2016

Milly пишет:

asam пишет:

Milly пишет:

Щас глянул у себя - сия настройка стоит в НЕТ.  Тогда опять вопрос, почему же при заливке скетча ресет есть?

Или IDE сама временно корректирует эту вещь в "АППАРАТНОЕ", чтобы сбросить МК перед заливкой, а монитор порта настройку не меняет и открывает порт как есть. ТАК?

Аппаратный Flow Control это когда линия DTR  дергаются автоматически при открытии порта. Но никто не запрещает программе дернуть ее "вручную".

Ну тогда наверное ясно всё. IDE при открытии порта - дёргает DTR в обязательном порядке, а монитор просто открывает и тогда  в зависимости от настроек потока - DTR задействуется или нет.

Вроде не сложно, но почему то до сих пор этой инфы про ардуину нигде не было!

ни под виндами ни под Линукс дёрганье IDE пином DTR  при открытии монитора порта не зависит от установок настроек управления потоком!

Если у вас под Линуксом не дёргает озвучьте, что за Линукс такой...

hulitolku
hulitolku аватар
Offline
Зарегистрирован: 23.02.2020

не понял, как в винде отклбчить dtr на usb порту?

Управление потоком? Но не одно из трех значений, указанных там, не помогает.

АРдуино все также ресетится при октрытии порта.

rkit
Offline
Зарегистрирован: 23.11.2016

hulitolku пишет:

не понял, как в винде отклбчить dtr на usb порту?

никак

hulitolku
hulitolku аватар
Offline
Зарегистрирован: 23.02.2020

Цитата:
никак

Ок. Тогда как отключить в ардуино нано ресет при открытии COM порта?

rkit
Offline
Зарегистрирован: 23.11.2016

Перерезать дорожку между usb чипом и основным мк.

hulitolku
hulitolku аватар
Offline
Зарегистрирован: 23.02.2020

rkit пишет:

Перерезать дорожку между usb чипом и основным мк.

Какую именно дорогу? 

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

hulitolku пишет:

Какую именно дорогу? 

Ту, которая идет от микросхемы USB-UART через конденсатор 0.1uf на ножку RESET микроконтроллера.
Только потом придётся вручную жать RESET для загрузки скетча.

hulitolku
hulitolku аватар
Offline
Зарегистрирован: 23.02.2020

А где тут микросхема USB-UART?

 

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

Это не Arduino NANO.

Она на том USB-UART адаптере, который ты подключаешь к этой ардуине для загрузки скетча. Но т.к. в данном случае USB-UART адаптер идет отдельно, достаточно НЕ подключать пин DTR.

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

hulitolku пишет:

...в ардуино нано...

hulitolku пишет:

А где тут микросхема USB-UART?

 

Здесь ее нет, т.к. это не Ардуино Нано, а Ардуино Мини.

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

hulitolku
hulitolku аватар
Offline
Зарегистрирован: 23.02.2020

Оно?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

hulitolku, да. Btw, отличный ник :)

Green
Offline
Зарегистрирован: 01.10.2015

hulitolku пишет:

Тогда как отключить в ардуино нано ресет при открытии COM порта?


Использовать Terminal v.1.9b - 20130820 из https://sites.google.com/site/terminalbpp/ хотя бы.