USB에서 CTS/RTS 하드웨어 흐름 제어 사용

USB에서 CTS/RTS 하드웨어 흐름 제어 사용

Raspberry Pi를 사용하여 Roland MDX-20 밀링 머신을 실행하려고 합니다. 기계에는 작은 입력 버퍼가 있으며 하드웨어 흐름 제어를 사용하여 명령이 완료되고 새 명령을 수신할 수 있을 때 신호를 보냅니다. 다음을 사용하여 올바른 직렬 설정을 시도했습니다.

stty -F /dev/ttyUSB0 9600 cs8 -parenb -cstopb -clocal crtscts

하지만 cat 명령을 사용하여 보내면;

cat ~/(my RML file) > /dev/ttyUSB0

모든 데이터가 즉시 전송됩니다.

다른 Windows 사용자가 제대로 작동한다고 보고한 Startech.com USB-직렬 케이블이 있는데 케이블에는 문제가 없지만 직렬 드라이버에는 더 많은 문제가 있는 것 같습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

감사해요

답변1

스타텍 웹사이트에는 현재 다양한 USB <-> 직렬 케이블 제품이 나열되어 있습니다. 이러한 다양한 제품은 서로 다른 칩셋, 즉 적어도 FTDI 및 Prolific의 칩셋을 사용합니다. 그리고 Prolific만이 하드웨어 흐름 제어를 지원하는 것 같습니다.

dmesg장치가 연결되면 Prolific 또는 FTDI USB 장치가 있는지 확인할 수 있습니다.

USB 케이블을 확인한 후 다음을 실행하여 하드웨어 흐름 제어를 디버그할 수 있습니다.statserial별도의 터미널에서.


직렬 장치가 USB<->직렬 케이블에 직접 연결되어 있지 않은 경우 해당 추가 케이블의 연결을 확인하는 것도 좋습니다.

답변2

문제가 발견될 때까지 임시 해결 방법으로 pv처리량을 예를 들어 100바이트/초로 제한할 수 있습니다.

pv -L 100 -q < ~/my_RML_file > /dev/ttyUSB0

관련 정보