Eu tenho um Arduino Uno conectado via USB, usando o driver cdc_acm
. Está disponível em /dev/ttyACM0
.
A convenção para a interface serial do Arduino é que o sinal DTR
seja usado para um sinal de reinicialização - ao usar o adaptador serial-para-USB integrado, o sinal DTR / RTS / DSR / CTS; ou, ao usar um cabo RS-232, os pinos 4 ou 5 (e possivelmente 6 ou 8) são conectados ao pino RESET
.
Essa opção de redefinição tem a importante vantagem de ser, se não realmente fora de banda, pelo menos muito próxima -failsafe (devido a ser implementada por meio do sempre -out-of-band serial controller em conjunção com o circuito watchdog não-normalmente-controlável pelo usuário), e enquanto ele pode ser fisicamente desabilitado (via fiação ou um capacitor ou um resistor, dependendo do modelo, para o RESET
pin), para fazer isso, estraga completamente este importante killswitch e toda a utilidade associada.
Infelizmente, parece que , atualmente, o Linux sempre envia este sinal quando qualquer programa anexa a um dispositivo ACM por qualquer motivo, e ( ao contrário do Windows ), não fornece vagamente Uma maneira confiável e conhecida para evitar isso.
(Atualmente ambos -hupcl
, "enviam um sinal de desligamento quando o último processo fecha o tty" e -clocal
, "desativa sinais de controle do modem" do < strong> not impede que este sinal seja enviado todas as vezes o dispositivo é aberto .
/dev/ttyACM0
sem enviar um sinal DTR / RTS / DSR / CTS (sem bloquear o sinal no nível do hardware)? Tags serial-port ioctl