직렬 신호의 잡음 (용량 관련?)


11

"임시 요약"그림 :

직렬 신호가 엉망인 것 같습니다

3.3V를 마이크에 공급, 태블릿의 TX 탐색

태블릿의 헤드폰 잭에서 나오는 직렬 신호를 해독하고 싶습니다. 이것은 일부 폰과 태블릿에 존재하는 다소 이상한 "해킹"입니다. 기본적으로 TRRS 플러그의 마이크 입력에 3.3V를 공급하면 왼쪽 및 오른쪽 채널이 직렬 TX / RX가됩니다.

Raspberry PI TRRS-to-TV 케이블 (두 번째 그림에서 볼 수 있듯이)을 사용하여 필요한 4 곳 (GND, MIC, L, R)에 액세스 할 수있었습니다. 케이블은 노출 이외의 다른 작업을 수행하지 않아야합니다. 3 개의 해당 케이블 (빨간색, 흰색, 노란색)에있는 3 개의 신호 (MIC, L, R-GND와 페어링).

TX (두 번째 그림의 흰색 케이블 끝)와 일반적인 GND (두 번째 그림의 아래쪽에있는 갈색 프로브) 사이를 조사하기 위해 BitScope의 프로브를 사용했습니다. 또한 USB / TTL 칩 (노트북에 연결된 PL2303HX)에서 MIC (빨간색) 팁으로 3.3V를 "공급"하기 위해 두 개의 프로브 (빨간색 및 파란색 하나)를 사용했습니다.

태블릿을 재부팅하면 실제로 115200 (8 ~ 9us의 피크 대 피크)의 직렬 신호이지만 많은 커패시턴스 (비디오) 가있는 직렬 신호가 무엇인지 알았습니다 .

따라서 온라인에 가서 TRRS 플러그, 케이블 및 납땜 인두를 주문하기 전에 내 질문은 커패시턴스입니다.

  • 1 미터 길이의 TRRS-TV 케이블 또는 납땜 케이블 대신 프로브 사용

또는

  • 실제로 프로브와 케이블은 이러한 커패시턴스를 설명 할 수 없으며, 이것이 보이는 이유는 태블릿의 헤드폰 잭이 단순히이 신호를 방출하도록 설계되지 않았기 때문입니다 (즉, 내가보고있는 것이 실제로 잭에서 나오는 것임) .

당신이 아마 짐작할 수 있듯이, 나는 이런 종류의 일에 매우 익숙합니다. 저는 소프트웨어 전문가이며 일주일 전에 BitScope를 구입했으며 "재미와 이익"(부트 로더 물건 해킹, Cyanogenmod 컴파일 등)을 위해 태블릿의 시리얼에 액세스하고 싶습니다.

이것이 유실 된 원인인지 (즉, 케이블 이이 커패시턴스를 설명 할 수 없는지) 추측되지 않은 평가에 감사드립니다.

도움 / 제안에 미리 감사드립니다.


1
그 신호는 나에게는 꽤 평범 해 보인다. 무엇을 싫어합니까? RCA 케이블은 1000pF 정도의 벌크 커패시턴스를 가지므로 가장자리가 느리다는 것은 놀라운 일이 아닙니다.
Ale..chenski

"당신이 싫어하는 점"-가장자리가 너무 느리다고 생각합니다 (내 PL2303HX-즉 내 USB / TTL-아무것도 디코딩하지 못했습니다).
ttsiodras

(1) 케이블이 3 미터 (10 피트) 미만인지 확인하십시오. (2) 케이블없이 부품으로 잭을 얻을 수있는 경우 태블릿에 연결하고 케이블없이 케이블을 측정하여 신호의 "품질"을 확인하십시오. (3) 전송 속도가 더 낮습니다.
Anonymous

@Anonymous-시도했습니다; 내 결과를 아래에 게시했습니다.
ttsiodras

1
@ AliChen : 당신이 맞아요, 친구-BSS138을 사용하고 신호를 해독했습니다 (아래 답변에 대한 부록 참조). 놀랍습니다-이것을 기대하지 않았습니다.
ttsiodras

답변:


10

그래서, 나는 두 종류의 사람들이 언급 한 조언을 따랐습니다.

  1. Ali Chen 은 느린 에지가 RCA 케이블의 커패시턴스에 기인 할 수 있다고 지적했다. "익명"은 전선이없는 잭으로 보드에 직접 부착 할 것을 권장합니다. 나는 그들의 조언을 따랐고, 태블릿을 벗겨서 PCB를 노출시키고, 나체 잭을 꽂았 고 그것을 조사했다. 그러나 결과는 매우 느렸다. RCA 전선이 아니 었습니다. 대신 태블릿을 설계 한 사람은 헤드폰 잭에서 나오는 직렬 신호에 신경 쓰지 않은 것 같습니다 (아마도 다른 방식으로 보드와 인터페이스하는 데 사용됨). 더 깨끗한 직렬 신호를 찾기 위해 PCB 전체를 조사하려고 시도했지만 실패했습니다.

  2. 익명 은 또한 전송 속도를 줄이는 것이 좋습니다. 불행히도 u-boot (내가 관심있는 것) 동안 사용되는 보드 속도를 구성하기 위해 태블릿의 부팅 프로세스에 영향을 미치는 문서화 된 방법은 없습니다 ...

그러나 이다 부팅이 완료 후 ADB 쉘 내에서 이렇게 할 수 - 내가 관리했습니다 이후 내 자신의 커널과 루트로 컴파일 .

그래서 나는 이것을 할 수있었습니다 ...

$ su
# stty -F /dev/ttyHSL0 9600
# while true ; do echo UUUUUUU > /dev/ttyHSL0 ; sleep 0.1 ; done

실제로 결과는 훨씬 좋습니다.

9600에서 훨씬 낫다

시프터를 사용하면이 신호를 올바르게 디코딩 할 수 있다고 확신합니다 (1.8V이므로 3.3V USB-TTL은 여전히 ​​디코딩 할 수 없습니다).

결론 : 내 태블릿의 "헤드폰 잭 내부의 직렬 포트"는 부팅이 완료된 후에 만 ​​사용할 수 있으며 UART는 9600 보드 속도로 느려집니다. 시리얼 출력이 가장 필요하기 때문에 이는, 불행한 동안 그 시간 동안, UART 속도 115200 보드에 내 태블릿의 부트 코드에 하드 코딩 - (뭔가가 실패 할 경우입니다) 부팅 프로세스.

PS 나는 또한 친구로부터 제안을 해봤는데, 헤드폰 잭이 보낸 직렬 신호에서 3.3V 레일쪽으로 3.3K 풀업을 사용하여 아무 소용이 없었습니다.

3 일 후 업데이트

나는 인내했다 :-)

Chris Stratton의 조언에 따라-좋은 시프터가 이런 종류의 신호에도 대처할 수 있음-나는 납땜 인두, BSS138, 브레드 보드 및 많은 케이블을 구입했습니다. 아마도 최악의 납땜 작업이 끝나면 BSS138의 핀 헤더를 납땜 한 다음 브레드 보드에 연결하여 엉킨 엉망진창을 만들었습니다.

브레드 보드와 내 BSS138

내가 예상하지 못한 것은 minicom을 생성하고 "fastboot reboot"를 실행 한 후 놀랍게도 나는 이것을 보았다는 것입니다.

시리얼 신호가 디코딩되었습니다!

믿을 수 없음-BSS138이 1.8에서 3.3V까지 신호를 "리프팅"한 후, 비 정렬 커패시턴스-비교 된 신호를 실제로 디코딩 할 수 있습니다! 태블릿이 부팅되지 않는 이유를 마침내 확인할 수 있습니다.

안녕하세요, 작은 태블릿-나는 당신에게 :-)


1
원래의 신호가 잘 설계된 레벨 시프터로 디코딩 될 가능성이 높지만, 배송되는 오디오 출력 회로의 대역폭 이이 디지털 신호에 이상적인 것보다 약간 작을 수도 있습니다. 소비자 제품은 방출 된 간섭 테스트를 통과해야하며, 헤드폰 증폭기 자체는 아마도 스위칭 설계 일 것이므로, 보드 에지에 방출을 억제하기위한 LC 필터가있을 것입니다.
Chris Stratton

그러나 상대적으로 낮은 성능 범위 또는 사용하는 설정이 신호를 잘못 표현할 수 있는지 고려하십시오. 파이 또는 USB 직렬 변환기의 출력을 동일한 전송 속도로 비교하는 것이 좋습니다. 스코프가 그 모양을 만드는 방법.
Chris Stratton

@ChrisStratton 간섭 필터 정보 : 내가 알 수없는 기능 (헤드폰 잭을 통한 직렬 연결)을 사용하지 않으려는 경우에는 알 수 없지만 그럴듯하게 들립니다. 처음에 Nexus 기기에 대해 읽는 동안이 사실을 알았습니다. 내 태블릿이 어떻게 반응하는지 궁금해하고 그것을 시도하기로 결정했습니다. 내 스코프를 확인하는 방법 : 물론, 제가 그것을 샀을 때 가장 먼저했던 일 – 내 Raspberry PI2의 TX GPIO 핀에서 전송 된 115200의 수정 사각 펄스를 보여줍니다. 나는이 시점에서 나도 내 범위가 아니라는 것을 확신합니다. 태블릿의 HW입니다.
ttsiodras 8

@ChrisStratton : "... 잘 설계된 레벨 시프터로 디코딩 할 수 있습니다"-특정 칩을 염두에두고 있습니까?
ttsiodras

@ChrisStratton : 승리! BSS138은 신호를 해독했습니다. 나는 대답을 보강하고 증거를 포함 시켰습니다. :-) 올바른 방향으로 나를 찾아 주셔서 감사합니다.
ttsiodras

0

DSO에 115.2kbps의 데이터 속도로 구형파를 표시하기에 충분한 대역폭 @ 524ksps가 있습니까? 그렇게 생각합니다. 참고로 내가 틀렸을 수도있다.

아마도 더 느린 해상도를 사용했을 것입니다.


와우, 작은 사람에 대한 사랑은 없습니다! 불쌍한 BitScope :-) 진지하게-BitScope 프로브는 내 Raspberry PI에서 나오는 115200 보드를 미세하게 처리하여 멋지고 명확한 사각 펄스를 보여줍니다 ... 태블릿의 헤드폰 잭 ( i.stack .imgur.com / WAw6J.png ). 나는 쉬프터 (1.8에서 3.3로 갈)와 로직 분석기를 얻는 과정에 있으므로 쉬프터가 이것을 정리할 것입니다. 볼 것이다!
ttsiodras

그것을 만든! BSS138이 신호를 디코딩했습니다.
ttsiodras

BSS138의 Vgs 임계 값은 Vcc / 2 +/-?보다 1.3V {0.8min, 1.5max}입니다. 또는 2.5V +/-? 더 낮은 임계 값이 그랬습니다. 이것이 74HCTxx가 5V 로직에서 3.3V 신호를 받아들이는 방식입니다
Tony Stewart Sunnyskyguy EE75

이제 Jiffies 오버플로가 무엇입니까? 버기 리눅스 박스? 또는 정상적인 부팅 대기 시간
Tony Stewart Sunnyskyguy EE75
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.