Eu tenho um Arduino Uno conectado via USB, usando o cdc_acm
driver. Está disponível em /dev/ttyACM0
.
A convenção para a interface serial do Arduino é que o DTR
sinal 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 RESET
pino.
Este caminho de redefinição tem a importante vantagem de ser, se não verdadeiramente fora de banda, pelo menos muito próximo à segurança (devido a ser implementado por meio do controlador serial sempre fora de banda em conjunto com o usuário não normal - circuito watchdog controlável), e enquanto ele pode ser fisicamente desabilitado (através da fiação de um capacitor ou um resistor, dependendo do modelo, ao RESET
pino), fazê-lo arruína completamente este importante interruptor de interrupção e todos os utilitários associados.
Infelizmente, parece que , atualmente, o Linux sempre envia esse sinal quando qualquer programa se conecta a um dispositivo ACM por qualquer motivo e ( ao contrário do Windows ) não fornece nenhuma maneira confiável, mesmo vagamente conhecida, de evitar isso.
(Atualmente -hupcl
, "enviar um sinal de desligamento quando o último processo fechar o tty" e "desativar sinais -clocal
de controle do modem" não impedem que esse sinal seja enviado toda vez que o dispositivo é aberto .)