Автоматическая перезагрузка Arduino при подключении терминала

ildaronii
Offline
Зарегистрирован: 30.09.2018

Как отключить автоматическую перезагрузку Arduino при подключении терминала? При подключении Монитора порта Arduino UNO перезагружается. Надо бы как то вырубить.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Порезать дорожку. Но тогда будут проблемы с загрузкой скетчей через порт.

ildaronii
Offline
Зарегистрирован: 30.09.2018

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

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Это сделано аппаратно что бы можно было с компа перевести плату в режим загрузки (дернуть Reset).

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

Komandir пишет:

Порезать дорожку. Но тогда будут проблемы с загрузкой скетчей через порт.

Хирург?) Использовать другой эмулятор терминала.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Надо тогда искать тот, что не формирует RTS сигнал ...

nik182
Offline
Зарегистрирован: 04.05.2015

Я даже пользуюсь для перезагрузки этой особенностью - достаточно в терминале изменить скорость куда нибудь и обратно и ардуинка перзагружена. И никуда тянуться не надо. 

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

ildaronii пишет:

По другому никак? Нельзя программно как то это решить? Почему так происходит?

а оно вам мешает?

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

К примеру, Ардуино работает круглосуточно и выводится лог на терминал...)

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Можно использовать программный серийный порт на других пинах. Тогда перезагружаться не будет. Но программу по ним не зальешь, а мониторить можно.

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

Мониторить можно, только зачем такие изгаления когда можно взять нормальный эмулятор терминала.

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

Green пишет:

можно взять нормальный эмулятор терминала.

+100500!

ТС, поставьте бесплатный терминал и будет Вам счастье - https://sites.google.com/site/terminalbpp/

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

Только в 20141030 у меня что-то не работает скроллинг. В предыдущей 20130116 всё ОК.
Нет, предыдущая 20130820 - с тоже всё хорошо.

ildaronii
Offline
Зарегистрирован: 30.09.2018

b707 пишет:

ildaronii пишет:

По другому никак? Нельзя программно как то это решить? Почему так происходит?

а оно вам мешает?

Если бы не мешало не спрашивал бы.

ildaronii
Offline
Зарегистрирован: 30.09.2018

mykaida пишет:

Можно использовать программный серийный порт на других пинах. Тогда перезагружаться не будет. Но программу по ним не зальешь, а мониторить можно.

Придется так и делать.

ildaronii
Offline
Зарегистрирован: 30.09.2018

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

Green пишет:

можно взять нормальный эмулятор терминала.

+100500!

ТС, поставьте бесплатный терминал и будет Вам счастье - https://sites.google.com/site/terminalbpp/

По моему это не зависит от терминала. Контроллер последовательного порта на самой Arduino UNO при подключении сам формирует сигнал или нет?

nik182
Offline
Зарегистрирован: 04.05.2015

Нет. Он ничего не знает о подключении терминала. Внешний сигнал DTR дергает ресет. Вам уже предлагали резать дорожку до ресет. А в предложенном терминале есть кнопка посылать или нет DTR. 

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

ildaronii пишет:

По моему это не зависит от терминала. 

Хотите решить проблему - делайте как говорят. Хотите поспорить - без меня. Это не философская проблема, и спорить о том, что элементарно, за несколько минут, проверяется, я считаю глупым.

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

ildaronii пишет:

Если бы не мешало не спрашивал бы.

Поясните, чем мешает? - я ж тоже не просто так спрашиваю, уверен, что вы что-то неправильно делаете.

sumi
Offline
Зарегистрирован: 28.04.2020

Пример общения с Ардуино без перезагрузки при подключении , на которой залит echo скетч ,на Python. на других языках соотвественно аналогично. 

import serial
import termios

if __name__ == '__main__':

    port = '/dev/ttyUSB0'
    # switch of DTR
    f = open(port)    
    attrs = termios.tcgetattr(f)
    attrs_old = attrs
    attrs[2] = attrs[2] & ~termios.HUPCL
    termios.tcsetattr(f, termios.TCSAFLUSH, attrs)
    f.close()
    
    com = serial.Serial(port  = port , baudrate = 115200 , timeout = 10)    
    #exchange with echo firmware
    com.write(b'test \n\r')    
    print ( com.readline() )
    com.close()
    print ("done")

    # switch port parameters back
    f = open(port)    
    termios.tcsetattr(f, termios.TCSAFLUSH, attrs_old)
    f.close()
    
    pass

 

seleznevss
Offline
Зарегистрирован: 01.09.2021

Как вариант, можно замкнуть пин rst и землю конденсатором на 100 мф. Тогда при вызове порта, не будет перезагрузки.

При загрузке новой прошивки конденсатор надо будет отсоединить