Hałas (związany z pojemnością?) W sygnale szeregowym

11

Zdjęcia „streszczenia”:

Sygnał szeregowy wydaje się pomieszany

Zasilanie mikrofonu 3,3 V, sondowanie TX tabletu

Chcę zdekodować sygnał szeregowy wychodzący z gniazda słuchawkowego tabletu. Jest to nieco dziwny „hack”, który występuje w kilku telefonach i tabletach: w zasadzie, jeśli podasz 3,3 V na wejście mikrofonowe wtyczki TRRS, lewy i prawy kanał stają się szeregowym TX / RX.

Użyłem kabla Raspberry PI TRRS-TV (jak widać na drugim zdjęciu), aby uzyskać dostęp do 4 potrzebnych mi miejsc: GND, MIC, L, R. Kabel nie powinien robić nic poza eksponowaniem 3 sygnały (MIC, L, R - sparowane z GND) w trzech odpowiednich kablach (czerwony, biały, żółty).

Sond BitScope użyłem do sondowania między TX (końcówka białego kabla na 2. zdjęciu) a wspólnym GND (brązowa sonda na dole 2. obrazu). Użyłem również dwóch sond (czerwonej i niebieskiej) do „zasilania” 3,3 V z mojego układu USB / TTL (PL2303HX podłączony do mojego laptopa) do końcówki MIC (czerwonej).

Po ponownym uruchomieniu tabletu rzeczywiście widziałem, co jest niewątpliwie sygnałem szeregowym przy 115200 (międzyszczytowym od 8 do 9us), ale z dużą pojemnością (wideo) .

Moje pytanie - zanim przejdę do sieci i zamówię wtyczkę TRRS, kable i lutownicę - to pojemność, którą widzę z powodu ...

  • kabel TRRS-TV o długości 1 metra lub użycie sond zamiast kabli lutowanych

LUB

  • sondy i kabel w rzeczywistości nie są w stanie uwzględnić tak dużej pojemności, a powodem, dla którego to widzę, jest to, że gniazdo słuchawkowe tabletu po prostu nie zostało zaprojektowane do emitowania tego sygnału (tj. to, co widzę, jest rzeczywiście tym, co wychodzi z gniazda) .

Jak zapewne możecie się domyślić, jestem zupełnie nowy w tego rodzaju sprawach; Jestem facetem od oprogramowania, kupiłem mój BitScope tydzień temu i chciałbym uzyskać dostęp do numeru seryjnego mojego tabletu w celu „zabawy i zysku” (włamywanie się do bootloadera, kompilowanie Cyanogenmod itp.).

Byłbym wdzięczny za oszacowanie, czy jest to zgubiona przyczyna (tj. Kable nie mogą wyjaśnić tak dużej pojemności), czy nie.

Z góry dziękuję za wszelką pomoc / sugestie.

ttsiodras
źródło
1
Sygnał wygląda dla mnie całkiem normalnie. Co ci się w nim nie podoba? Twój kabel RCA prawdopodobnie ma pojemność około 1000pF, więc nie powinno być zaskoczeniem, że ma wolne krawędzie.
Ale..chenski 11.10.16
„Czego ci się nie podoba” - wydaje mi się, że krawędzie są zbyt wolne (mój PL2303HX - tj. Mój USB / TTL - niczego nie dekodował).
ttsiodras,
(1) upewnij się, że kabel ma mniej niż 3 metry (10 stóp); (2) jeśli możesz uzyskać tylko jack jako część bez kabla, podłącz go do tabletu i zmierz na nim bez kabla, aby zobaczyć „jakość” sygnału; (3) tylko niższa prędkość transmisji.
Anonimowy,
@Anonymous - próbowałem; zamieściłem moje wyniki poniżej.
ttsiodras
1
@AliChen: Miałeś rację, kolego - użyłem BSS138 i zdekodowałem sygnał (patrz załącznik do mojej odpowiedzi poniżej). Niesamowite - nie spodziewałem się tego.
ttsiodras

Odpowiedzi:

10

Postępowałem zgodnie z radą dwóch miłych ludzi, którzy skomentowali ... Oto wyniki.

  1. Ali Chen wskazał, że wolne krawędzie można przypisać pojemności kabla RCA; i „Anonimowy” zalecał mocowanie bezpośrednio do tablicy za pomocą gniazda bez przewodów. Postępowałem zgodnie z ich radą, zdjąłem tablet, aby odsłonić płytkę drukowaną, podłączyłem nagie gniazdo i zbadałem go - ale wyniki były niestety takie same: bardzo wolne, wyraźnie napędzane pojemnościowo krawędzie. To nie były przewody RCA - zamiast tego wydaje się, że ktokolwiek zaprojektował tablet, nie dbał zbytnio o sygnał szeregowy wychodzący z gniazda słuchawkowego (prawdopodobnie użył innego sposobu komunikacji z płytką). Próbowałem sondować całą płytkę drukowaną w nadziei znalezienia czystszego sygnału szeregowego, ale mi się nie udało.

  2. Anonimowy zalecił również zmniejszenie prędkości transmisji; niestety nie ma udokumentowanego sposobu wpływania na proces uruchamiania mojego tabletu, aby skonfigurować szybkość transmisji używaną podczas rozruchu (co mnie interesowało) ...

Ale to jest możliwe, aby to zrobić po rozruchu komputera zostanie zakończona, od wewnątrz skorupy ADB - ponieważ udało mi się skompilować własne jądro i roota .

Byłem w stanie to zrobić ...

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

I rzeczywiście, wynik jest znacznie ładniejszy:

Znacznie lepiej w 9600

Jestem całkiem pewien, że ten sygnał można dobrze zdekodować, jeśli użyję dźwigni zmiany biegów (jest przy 1,8 V, więc mój 3,3 V USB-TTL nadal nie może go zdekodować).

Podsumowując: „portu szeregowego mojego tabletu w gnieździe słuchawkowym” można naprawdę używać tylko PO zakończeniu rozruchu, a UART zwolnił do 9600 bodów; co jest niefortunne, ponieważ wyjście szeregowe jest najbardziej potrzebne podczas procesu rozruchu (jeśli coś się nie powiedzie) - i w tym czasie prędkość UART jest zakodowana w kodzie rozruchowym mojego tabletu przy 115200 bodów.

PS Próbowałem też zasugerować przyjacielowi, aby użyć podciągania 3.3K w kierunku szyny 3.3V w sygnale szeregowym wysyłanym przez gniazdo słuchawkowe - bezskutecznie.

AKTUALIZACJA, 3 dni później

Wytrwałem :-)

Postępując zgodnie z radą Chrisa Strattona - że dobry manewr może poradzić sobie nawet z tego rodzaju sygnałem - kupiłem lutownicę, BSS138, płytkę chlebową i wiązkę kabli. Po tym, co jest prawdopodobnie najgorszym zadaniem lutowania, jakie kiedykolwiek było, udało mi się przylutować nagłówki pinów na BSS138, a następnie przystąpiłem do dołączania go do płyty chlebowej i tworzenia tego splątanego bałaganu:

Płyta chlebowa i mój BSS138

Nie spodziewałem się, że po odrodzeniu Minicom i wydaniu „szybkiego restartu”, ku mojemu wielkiemu zdumieniu, zobaczyłem to:

Dekodowany sygnał szeregowy!

To niewiarygodne - po tym, jak BSS138 „podnosi” sygnał z 1,8 do 3,3 V, ten nieszczęsny sygnał o zagadkowej pojemności można faktycznie zdekodować! W końcu rozumiem, dlaczego mój tablet nie uruchamia się.

Witaj, mały tablet - teraz jestem Tobą :-)

ttsiodras
źródło
1
Chociaż jest całkiem prawdopodobne, że oryginalny sygnał może być dekodowany za pomocą dobrze zaprojektowanego przesuwnika poziomu, możliwe jest również, że szerokość pasma dostarczanego obwodu wyjściowego audio jest nieco mniejsza niż byłoby to idealne dla tego sygnału cyfrowego. Produkt konsumencki musi przejść testy emisji zakłóceń, a sam wzmacniacz słuchawkowy jest prawdopodobnie konstrukcją przełączającą, więc prawdopodobnie na brzegu płytki będą filtry LC, aby tłumić emisje, które byłyby zaprojektowane przede wszystkim do przekazywania dźwięku, a nie tego.
Chris Stratton
Zastanów się jednak, czy twój stosunkowo niski zakres wydajności lub ustawienia, które z nim korzystasz, mogą źle przedstawiać sygnał - dobrze byłoby dla porównania porównać moc wyjściową twojego pi lub konwertera szeregowego USB z tą samą prędkością transmisji i zobaczyć jak kwadratowy zakres sprawia, że ​​wygląda.
Chris Stratton
@ChrisStratton Informacje o filtrach interferencyjnych: nie ma pojęcia, ale brzmi wiarygodnie, jeśli funkcja, którą odkryłem (szeregowy przez gniazdo słuchawkowe) nie była przeznaczona do użycia. Początkowo dowiedziałem się o tym podczas czytania o urządzeniach Nexus - i ciekawy, jak zareaguje mój tablet, postanowiłem spróbować. O sprawdzeniu mojego zakresu: oczywiście, to była pierwsza rzecz, którą zrobiłem, kiedy go kupiłem - pokazuje krystalicznie czyste kwadratowe impulsy przy 115200 wysłane z pinu TX GPIO mojego Raspberry PI2. W tym momencie jestem całkiem pewien, że to nie ja, ani mój zakres - to sprzęt HW.
ttsiodras
@ChrisStratton: „... można dekodować za pomocą dobrze zaprojektowanego mechanizmu zmiany poziomu” - czy masz na myśli jakiś konkretny układ?
ttsiodras
@ChrisStratton: Victory! BSS138 zdekodował sygnał - poszerzyłem swoją odpowiedź i dołączyłem dowód :-) Dzięki za wskazanie mi właściwego kierunku.
ttsiodras
0

Czy Twój DSO ma wystarczającą przepustowość @ 524 ksps, aby pokazać falę kwadratową przy szybkości transmisji 115,2 kb / s? Tak myślę. po prostu dla ciebie. Mogę się mylić.

Może użyłeś wolniejszej rozdzielczości.

Tony Stewart Sunnyskyguy EE75
źródło
Wow, brak miłości dla małego faceta! Zły BitScope :-) Poważnie, jednak - BitScope dobrze sonduje 115200 bodów wychodzących z mojego Raspberry PI, pokazując ładne i wyraźne kwadratowe impulsy ... nic podobnego do tego, co pokazuje sygnał wychodzący z gniazda słuchawkowego mojego tabletu ( i.stack .imgur.com / WAw6J.png ). Jestem w trakcie uzyskiwania zmiany biegów (aby przejść z wersji 1.8 do 3.3) i analizatora logiki, więc może zmieniacz to wyczyści. Zobaczymy!
ttsiodras
Udało się! BSS138 zdekodował sygnał.
ttsiodras
BSS138 ma niższy próg Vgs wynoszący 1,3 V {0,8 min, 1,5 max} zamiast Vcc / 2 +/-? lub 2,5 V +/-? więc zrobił to dolny próg. W ten sposób 74HCTxx działa równie dobrze, przyjmując sygnały
3,3
co do cholery jest przepełnieniem Jiffiesa? wadliwy system Linux? lub po prostu normalne opóźnienie rozruchu
Tony Stewart Sunnyskyguy EE75 18.10.16