라즈베리 파이 직렬 포트

라즈베리 파이 직렬 포트

쓰고 싶은 디스플레이가 있습니다. 이는 직렬 포트를 통해 달성할 수 있습니다. USB-RS-232 변환기를 사용하면 정말 매력적으로 작동합니다. 직렬 변환기의 RX, TX 및 GND 라인만 사용해 보았지만 여전히 작동했습니다. 이제 이 디스플레이를 작은 상자에 넣고 Raspberry Pi와 페어링하고 싶기 때문에 큰 USB-RS-232 변환기를 위한 공간이 남아 있지 않습니다. Raspberry Pi의 내부 직렬 포트를 사용해 보았습니다. 9600보드 설정을 사용하십시오 $ sudo stty -F /dev/ttyAMA0 9600. 하지만 모니터에 연결하면 쓰레기만 표시되고 일반 제어 명령(RS-232 변환기를 사용하여 작동)도 작동하지 않습니다. GPIO TX를 사용하여 $ sudo minicom -b 9600 -o -D /dev/ttyAMA0RX로 루프하면 콘솔에 올바른 문자가 표시됩니다 minicom. 이제 GPIO 직렬 포트를 USB-RS-232 변환기의 RX 및 TX 핀에 루프하고 접지를 연결하고 minicom전송 속도가 9600으로 설정된 두 포트를 모두 엽니다. 가끔 다른 터미널에 일부 출력이 표시되지만 결과적으로는 쓰레기일 뿐입니다.

답변1

문제는 Pi에는 RS232 포트가 없지만 모니터에는 있다는 것입니다.

Pi에는 (LV-)UART 인터페이스가 있으며 TX 핀은 0V(논리) 0및 3.3V(논리)를 출력합니다 1. Pi에서는 이미 3.3V를 사용할 수 있으므로 이 작업은 쉽습니다. 그러나 이는 단일 PCB 또는 단일 장치 내 통신에만 적용됩니다.

장거리 장치 간의 통신을 위해서는 간섭 신호가 덜 발생하는 RS232와 같은 시스템을 사용하십시오. 파형의 논리 구조(비트 속도, 타이밍, 시작 비트, 정지 비트, 패리티 비트 및 데이터 비트)는 UART와 동일하지만 논리 전압 레벨은 -15V...-3V, 1+15V입니다. ..+3V는 논리에 사용됩니다 0. 즉, 더 높은(및 음의) 전압이 있을 뿐만 아니라 그 의미도 반대입니다.

따라서 모니터에 RS232 레벨이 필요하고 Pi에서 3.3V 레벨을 얻는 경우 일반적으로 데이터를 인식하지 못하고 인식하더라도 일반적으로 쓰레기입니다.

물론 동일한 인터페이스에서 RX와 TX를 연결하면 기대한 결과를 얻을 수 있습니다.

그러나 RS232 TX 출력에 전류 제한이 없으면 Pi가 손상될 수도 있습니다!

시중에는 UART-RS232 변환기 보드가 있지만 납땜을 원하는 경우 이 보드에는 MAX3232(+ 4개의 커패시터)만 포함되어 있습니다. 또한 IC는 Pi의 3.3V 공급 전압을 사용하여 더 높은(음의) 전압 레벨을 생성합니다.

더 일반적인 것은 MAX232(왜 그렇게 불리는지 추측해 보세요)이지만 3.3V 작동이 아닌 5V 작동용으로 설계되었습니다.


마지막으로 UART와 RS232는 동일한 논리 구조를 사용하기 때문에 둘 사이, 특히 소프트웨어(프로그래머)를 구별하는 것이 불가능한 경우가 많습니다. 직렬 인터페이스 유형이지만 "직렬 인터페이스"로 간주되지 않는 I²C 및 SPI와 같은 다른 인터페이스도 있지만 종종 "직렬 인터페이스"라고도 합니다.

답변2

내장된 Raspberry Pi 직렬 포트는 설명된 대로 0~3.3V의 전압 레벨을 사용합니다.여기. USB-직렬 변환기와 모니터는 -15V ~ +15V(최소 -3V/+3V)의 공칭 RS232 전압 레벨을 사용합니다. 이 두 수준 사이를 변환해야 합니다.

출력 및 입력 전압이 호환되므로 이 포트는 루프백 중에 작동합니다.

관련 정보