변환없이 TTL을 232로?
TTL 신호를 장치에 수집하기위한 누군가의 애플리케이션에 대한 블로그를 읽고 있었는데 당황했습니다.
저자는 3.3V TTL 신호로 보이는 것을 RS232 포트에 직접 연결합니다 (그리고 분명히 작동합니다!). 232가 1 : [-3, -25]이고 0 : [3,25]이기 때문에 0을 읽고 정의되지 않아야하지 않습니까? 정의되지 않은 것이 본질적으로 0이 아닌 변경으로 간주 될 수 있습니까?
단순화 또는 원칙이 누락 되었습니까?
블로그는 여기
답변
많은 (대부분은 아닐지라도) RS232 수신기는 실제로 공식적으로 유효한 로직 레벨에 도달하지 않는 단극 신호를 수용합니다.
그러나 RS232 라인 드라이버 및 수신기는 전통적으로 기본적으로 항상 반전되어 왔으므로 MCU 또는 일반적인 규칙에 따라이 트릭을 사용하려면 인버터가 필요합니다. (극소수의 UART에는 반전을 적용하는 모드 비트가 있습니다)
예전으로 돌아가서, 일상적인 실험을 위해 여분의 전원이 필요하지 않은 1489 라인 수신기를 사용했지만 그 전원이 부족한 경우가있었습니다. 전송 경로는 TTL NAND 게이트를 사용합니다. 어쨌든 1488.
사양을 넘어서는 동작을 활용하는 것은 신뢰할 수없는 작동이 세상의 끝이 아닌 길들인 전기 환경에서 개인적인 실험을 위해 할 수있는 일입니다. 그것은 당신이 제품에서하는 일이나 실패가 결과를 가져 오는 곳이 아닙니다.
차지 펌프 RS232 레벨 시프터는 지금까지 수십 년 동안 저렴했습니다. 그리고 대부분의 컴퓨터에서 더 이상 실제 RS232 포트가없는 경우, 장비를 다루지 않는 한 일반적으로 "로직 수준 USB-UART 케이블"(일반적으로 Arduino / pi 프로젝트 용으로 판매 됨)을 사용하여 PC에 연결하는 것이 더 간단합니다. "USB-RS232 직렬"어댑터보다. 전자는 일반적으로 헤더 또는 개별 와이어를 가지고 있으며 후자는 9 핀 D 형 커넥터 쉘입니다.