Estou tentando ligar/desligar uma saída ou alternar um relé etc controlando o pino RTS ou DTR do meu sinal RS232. Eu criei um script em C que liga/desliga meu sinalizador DTR ou RTS, mas não estou obtendo nenhuma diferença na minha saída na minha porta serial para o adaptador de terminal (veja a imagem abaixo):
A estrutura do meu RS232 é a seguinte:
Como a imagem descreve, o sinal RTS está no pino 8, quando eu sinalizo para "on" e meço entre o pino 1 (terra) e o pino 8 (RTS) estou recebendo 3V. Quando eu o desligo, ele permanece em 3V, então nada mudou quando estou alternando DTR ou RTS.
Alguém sabe o que estou fazendo de errado?
ATUALIZAR
Eu tentei o código abaixo (acho que corresponde à resposta de @Vincent Achard). Isso não funciona, quando eu meço entre o pino 1 (terra) e o pino 6 (saída de 5v), isso permanece 5V durante a execução do script. Além disso, quando meço entre o pino 1 (terra) e o ping 8 (RTS), isso permanece 2,8 V durante a execução do script. Alguém vê algum erro nesse código?
Desde já, obrigado!
Os pinos DTR e RST em uma interface serial não agem como GPIOs: seu nível não ficará alto ou baixo.
Eu poderia substituir esse comportamento modificando o driver tty do kernel para obter um estado não padrão permanente:
arquivo: drivers/tty/tty_port.c
no
substituir
por
talvez existam algumas soluções mais fáceis??