Wie kann man bei 5 Pins auf denen ein UART serial Protokoll gefahren wird rausfinden welche Pins welche Funktion haben?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Vor mir liegt ein JamMan Stereo Looper/Phrase Sampler, auf dem vom Besitzer irgendwie aus Versehen Loops geloescht wurden. Diese wurden mit Herzensblut eingespielt und der Besitzer hofft dass ich es schaffe die Loops aus den binaeren Daten aus dem Nand auszulesen und zu recovern. Soviel zu meiner Aufgabe:)


    JamMan PCB - 5 Pins sind oben in der Mitte zu sehen

    Auf dem Looper (Atmel | SMART ARM-based Embedded MPU SAM9G45) läuft ein Linux, welches ich durch Sniffen einer anderen seriellen Schnittstelle belegen kann. Jetzt hoffe ich dass auf 5 Pins, die auf dem Board existieren, eine Linux Konsole per RS232 angeboten wird und ich darueber ins Linux reinkomme und die Nand Daten binaer auf eine SD Karte abziehen kann. Dem Looper kann man auch eine SD Karte als Speichererweiterung vermachen.

    Meine Kenntnisse bzgl RS232 sind Dekaden alt (In einem Z80 Praktikum hatte ich das letzte Mal damit Kontakt :shy:) aber ich denke die habe ich jetzt wieder refreshed. Jetzt geht es darum die Funktion der Pins der Schnittstelle zu bestimmen. Ich hoffe Ihr könnt mir dabei helfen. Leider habe ich nur ein Multimeter - kein Oszi :no_sad:

    Ich habe mal den Widerstand und die Spannung zu GND gemessen und folgendes herausbekommen:

    Code
    Pin       Spannung   Widerstand   RS232 Semantik
                V             Ohm
    0           0              0          GND
    1           3.32           -           ?
    2           0              -           ?
    3           0,94           -           ?
    4           3.32        600/1200       ?

    Wie ich verstehe sind Werte zwischen +-3V und +-15V zu erwarten. Die Widerstaende habe ich bei stromlosen Geraet gemessen und der erste Wert bei Pin 4 war vor dem Einschalten des Geraetes und Messen der Spannung und der zweite Wert nachdem das Geraet wieder stromlos war.

    Kann man daraus schon sehen was TX und RX ist bzw ob es RTR/CTS gibt? Oder gibt es noch andere Messungen die ich mit einem Multimeter machen kann um die Pin Semantik genauer bestimmen zu koennen?

  • Wie kann man bei 5 Pins auf denen ein UART serial Protokoll gefahren wird rausfinden welche Pins welche Funktion haben?? Schau mal ob du hier fündig wirst!

  • sieht nach quasi TTL aus nur mit 3,3V

    die 3,3V scheint die inaktive Tx 1 oder 4 zu sein, Ruhepegel ist high nichtinvertiert, ergo müsste inaktiv der andere mit 3,3V irgendein Ausgangsignal sein.

    Kann man nur raten an Hand der Signalrichtung.

    Die anderen mit 0V sind entweder unbeschaltet, der mit 0,9V vermutlich wartet auf 3,3V

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Die 3.3V sehen deuten darauf hin dass die Schnittstelle mit 3.3V laeuft. Gibt es einen Wandlerchip auf dem Board?

    Dann mal das Voltmeter anschliessen und booten. Gibt es einen Pin der zuerst so um 1.5V ist und dann auf 3.3V oder 0V geht? Dort wuerde ich Tx vermuten. (Die 1.5V koennten durch die Boot-Meldungen produziert werden)

    - - - - -

    Ein Widerstand und eine effiziente LED koennten ebenfalls nuetzlich sein. Wahrscheinlich sieht man das blinken besser als auf auf dem Voltmeter.

  • Hi framp,

    wenn's denn wirklich eine echte RS232-Schnittstelle ist, würde ich darauf tippen, dass der Pin 4 mit den 600/1200 Ohm der RX-Eingang des Loopers ist, da es hier wahrscheinlicher ist, dass ein PullUp- oder ein PullDown-Widerstand verbaut ist, um bei nicht angeschlossenem Gegengerät einen definiertzen Eingangspegel zu bekommen. Am Ausgang ist dies nicht so wichtig, da der Ausgang eh durch eine Transistorstufe oder Ähnliches getrieben wird. jar, korrigiere mich, wenn ich Unsinn erzähle.

    Von daher würde ich darauf tippen, dass Pin 1 der TX-Ausgang des Gerätes ist und Pin 4 der RX-Eingang. Ich könnte mir vorstellen, dass dies eine "echte" RS232-Schnittstelle ist, die +-3,3V liefert. Schau doch mal auf der Leiterplatte des Loopers, ob sich in der Nähe dieser Schnittstelle ein MAX232, MAX202 oder irgendein Derivat davon befindet. Wobei dann schon seltsam ist, dass hier nicht mind. 7V an wenigstens einem Pin zu messen sind.

    Die Datenpins müsste man dann kreuzweise verbinden, also RX auf TX der Gegenstelle und umgekehrt. Außerdem noch Masse. Beim Anschluss eines USB/RS232-Wandlers musst Du beachten, dass der an seinem TX-Ausgang in der Regel mehr als 5V liefert. Wenn der Looper nur halb so empfindlich ist wie die GPIOs vom RPi, dann raucht's!

    PS: Auf Deinem verlinkten Bild habe ich jetzt in der Nähe der Schnittstelle kein MAX232-Derivat gesehen, von daher ist es schon naheliegend, dass die Interpretation von jar zutrifft. Ist die Unterseite der Leiterplatte bestückt?

    EDIT:

    Die Idee von Tell mit der LED ist gut!

  • Ich vermute mal, dass der einfachste und für das Gerät sicherste Weg die Funktion der Pins festzustellen wäre, diese an einen Logikanalyzer anzuschließen und das Gerät mal zu booten. Falls der Logikanalyzer noch eine "Protokoll / Schnittstellen" Analyse beherrscht ( was eigentl. auch Geräte im mittleren Preissegment können ) sollte es kein großes Problem sein, festzustellen ob es eine Rs232 Schnittstelle ist bzw. welcher Pin welche Funktion hat.

  • Vielen Dank fuer Eure hilfreichen Antworten. Wie ich jetzt verstanden habe bin ich absolut auf dem Holzpfad :mad_GREEN:: Da liegt keine RS232 Schnittstelle vor sondern eine UART TTL serielle Schnittstelle. (Es findet sich kein MAX232 wie schlizbäda feststellte).

    Ich habe dazu diesen Beitrag gefunden und verstehe jetzt dass ich wohl einen USB-TTL Serial Konverter mit Vcc 3.3V brauche. Gefunden habe ich diesen Konverter [Anzeige]. Oder sollte ich diesen hier [Anzeige] nehmen ? Oder gibt es noch einen besserern bzw richtigeren ?

    Jetzt habe ich an dem Konverter zusaetzlich zu GND, TxD, RxD auch noch Vcc. Ich gehe mal davon aus dass DTR/RTR und CTS nicht benoetigt werden. Muss ich Vcc irgendwo anschliessen? Ich denke nicht denn die Spannung sollte ja vom Looper kommen, aber wenn ja, an welchem Pin?

    Zitat von jar

    die 3,3V scheint die inaktive Tx 1 oder 4 zu sein, Ruhepegel ist high nichtinvertiert, ergo müsste inaktiv der andere mit 3,3V irgendein Ausgangsignal sein.

    Ich verstehe dass so dass 3.3 V Low und 0V High ist und Du damit meinst da auf Pin 1 und 4 Low liegt und somit einer RxD und der andere TxD sein muss. schlizbäda meint Pin 1 sei wohl TxD und Pin 4 RxD was ja zu Deiner Vermutung passt. Habe ich Dich da richtig verstanden?

    Fliegenhals Das waere sicherlich die einfachste Loesung meines Problems, nur leider habe ich keinen Logikanalyzer sondern nur ein Multimeter wie ich in meinem ersten Beitrag geschrieben habe :)

    Zitat von "schizbäda

    Ist die Unterseite der Leiterplatte bestückt?

    Ja, mit winzigen Widerstaenden, aber keinen größeren Bauteilen. Ich denke Du suchst noch nach dem MAX232 auf der Unterseite?

    Edit: ich verstehe dass ein Oszilloskop sehr helfen wuede. Koennt Ihr ein preisguenstiges Geraet empfehlen mit dem ich die Pins besser identifizieren kann?

  • > Pin 1: 3,3 V, dann wackelt es mehrere Male etwas nach unten, dann wieder 3.3 V

    Das ist ziemlich sicher Tx von diesem Geraet

    > Pin 3: Erst 3.3 V, dann runter auf 0.82 V

    Das toent etwas undefiniert, koennte also ein offener Eingang sein

    Einen grossen Widerstand (100k oder so) nehmen und versuchen den Pin darueber auf Masse oder 3.3V zu ziehen. Wenn er sich ziehen laesst ist es ein Eingang. Ob's Rx oder ein Steuereingang ist, muesste man dann herausfinden.

  • Fliegenhals Das waere sicherlich die einfachste Loesung meines Problems, nur leider habe ich keinen Logikanalyzer sondern nur ein Multimeter wie ich in meinem ersten Beitrag geschrieben habe :)

    Vielleicht findet sich ja in deiner Nähe, ein hilfsbereiter Mitstreiter bzw. ein Makershop o.ä. mit der erforderlichen Ausrüstung? Es wäre mal interessant die Platine von unten zu sehen. Es könnte ja sein, dass dies gar keine Rs232 Schnittstelle ist? Bei der 20 pol. unbestückten Stiftleiste neben deinem Anschluß, könnte es sich um ein J-Tag Interface handeln, vielleicht kommt man damit eher an die gewünschten Daten.

  • Ich wurde schon per PM angeschrieben wg eines Oszis. Ist aber leider nicht in meiner Nähe :(

    Die Unterseite sieht wie folgt aus: https://ibb.co/mF4xgY4 Man

    Man sieht über der 20 Pol Stiftleiste dass ich an den 5 Pols Stifte zwecks einfacherem Verkabeln bereits angeloetet habe.

    J-Tag ist mir auch schon bei meinen Forschungen untergekommen. Das wird auch soweit ich sehe von des SAM9 MCU die vom Looper benutzt wird unterstützt. Aber das ist absolutes Neuland fuer mich :-/. Deshalb versuche ich erst mal per serial console in die Kiste reinzukommen. Wenn ich im Linux bin weiss ich was ich tun muss.

  • Da es sich ja vermutl. um einen 3,3V TTL Pegel handelt, vielleicht kann Dir so etwas für die RS232 Analyse weiterhelfen:

    https://www.raspberrypi.org/forums/viewtopic.php?t=7696

    http://tuxbabe.eu/raspalyzer.html

    Wo befanden sich denn die gelöschten Daten, im Geräte-Flash o. auf einer SD Karte? Falls die Sampels auf einer SD Karte waren und nicht überschrieben wurden, könnte man vlt. dort was retten. Hat das Teil keinen USB Anschluß, mit dem man etwas anstellen kann?

  • Eine Raspi zur Analyse zu nehmen ist mir nicht eingefallen ... gute Idee :thumbup:. Ich werde da mal lesen.

    Zu Deiner Frage: Die Daten liegen noch auf dem Nand Speicher. Das will ich ja genau erreichen durch Linux Console Zugriff: Die Daten von dem Nand auf die SD Karte zu kopieren. Die Mountpoints habe ich durch sniffen einer offiziellen USB Schnittstelle zu einem Windowsprogramm herausgefunden. Das benutzte Protokoll ist aber binaer und proprietaer. Damit komme ich auch ziemlich sicher nicht an die Rohdaten auf dem Nand :(

  • Ich habe diesen Konverter [Anzeige] geordert. Ausserdem habe ich jemanden gefunden bei dem ich mir ein Scope leihen kann. Mal sehen was das an Infos liefert :)

    Fliegenhals Ich versuche es erst mal mit dem Scope. Eine Raspi fuer die Analyse aufzusetzen ist elegant - aber erst mal fuer mich zu aufwaendig.

  • Viele Wege führen zum Ziel. Mit einem Logic Analyzer ist es sicher leichter, aber mit einem Oszi sollte man auch an die gewünschten Infos kommen. Ich drück die Daumen das es klappt und Erfahrungsberichte ( positiv o. negativ ) sind jederzeit willkommen.

  • Ausserdem habe ich jemanden gefunden bei dem ich mir ein Scope leihen kann

    du solltest dir für sowas mal ein arme Leute scope bis 200kHz (oder mehr) leisten

    auch kaum teurer als dein Adapter

    https://www.ebay.de/itm/JYE-Tech-D…tkAAOSwpUVdQlB7

    https://www.ebay.de/itm/Bausatz-Mi…KMAAOSw45VdJqfq

    fertig aufgebaut

    https://www.ebay.de/itm/2-4-zoll-L…5.c100005.m1851

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Heute hat mir der Weihnachtsmann in Person des Postboten den Konverter gebracht :bravo2:

    An Pin 0 habe ich GND des Konverters und an Pin 1 TXD angeschlossen, 115200 8N1 in gtkterm konfiguriert und siehe da -es meldet sich der JamMan mit

    QNX ist, wie ich nachgelesen habe, ein RT OS und Unix/Posix basiert. Interessanterweise wurde es von Harman gekauft. Von denen stammt der Looper. Aber leider ist das nur der Bootlog und keine Konsole bei der ich das OS steuern kann. Macht es Sinn da noch den TXD Pin zu identifizieren oder muss ich nach einer anderen Möglichkeit auf die Kiste zu kommen um den NAND auszulesen?

  • Heute morgen habe ich noch an Pin 3 des Loopers den TXD Pin des Converters angeschlossen und bekomme eine Unix Konsole zu sehen :bravo2::bravo2::bravo2:

    Code
    # df -h
    /dev/hds1                   7.4G      3.4M      7.4G       1%  /mnt/sdfs/
    /dev/etfs2                  505M       65M      439M      13%  /mnt/nandfs/
    /dev/hds                    7.4G      7.4G         0     100%
    /dev/etfs2                  508M      508M         0     100%  (/mnt/nandfs/)
    /dev/etfs1                  7.5M      7.5M         0     100%

    Und es sind auch diverse Tools verfuegbar :)

    Jetzt muss ich mich mir die Unterschiede von Linux und QNX ansehen. dd vom NAND zur SD Karte funktioniert nicht auf Anhieb:no_sad: Aber das ist ein anderes Thema.

    Vielen Dank an alle die tatkräftig mitgeholfen haben mich in die Geheimnisse von RS232, UART, TTL Converter et al einzufuehren so dass ich nun Konsolenzugriff habe :danke_ATDE:

    Die Pintabelle sieht jetzt also wie folgt aus bei dem JamMan Stereo Looper

    Code
    Pin            UART Semantik from Looper
    0                GND
    1                RXD 
    3                TXD

    und die UART Settings sind 115200 8N1.


    Vielleicht stolpert ja noch mal jemand ueber dieses Problem. Der Looper ist zwar schon aelter und wird nicht mehr verkauft aber man findet beim Suchen immer mal wieder Threads wo jemandem auch Loops verloren gegangen sind.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!