Bestimmung des UART RX-Pins "blind"?

Meine Mutter hatte ein altes Roku, das sie nicht mehr wollte, also nahm ich es, weil ich dachte, ich könnte es vielleicht hacken und ein generisches Linux darauf ausführen. Ich nahm es auseinander und sah zwei Header, die so aussahen, als wären sie zum Debuggen. Ich habe die Masse gefunden (auf dem, was ich Pin 2 nenne), und dann den Rest sondiert und herausgefunden, dass sie alle 3,3 V haben (zumindest auf P12). Ich habe meinen Logikanalysator an alle Pins angeschlossen und neu gestartet, fand ein 115200-Baud-Signal an dem, was ich Pin 6 nenne. Wenn ich mir die Daten ansehe, heißt es "U-boot ...", dann "Linux 2.6.4-roku ... ." Also ich glaube, ich habe den richtigen Pin.

Meine Frage ist, wie kann ich den RX-Pin finden? Ich habe einen Raspberry PI mit einem 3,3-V-Uart und einem davon https://www.sparkfun.com/products/9873 . Gibt es einen sicheren Weg, dies zu tun? Gibt es einen Standard-Header mit 10 Pins mit Masse auf 2 und TX auf 6?

In den Bildern habe ich den Logikanalysator angeschlossen gelassen. https://imgur.com/a/UL80fPe

Was ist ein Roku?

Antworten (3)

Verwenden Sie ein Multimeter im Durchgangstestmodus und überprüfen Sie, welche der verbleibenden Header-Pins direkt mit der 3,3-V-Stromversorgung verbunden sind. Wahrscheinlich nur einer.

Wenn Sie diese beiseite legen, sind die verbleibenden, die Sie ursprünglich bei 3,3 V gemessen haben, entweder Eingänge mit einem Pull-up-Widerstand auf 3,3 V wie RX oder CTS oder ein aktiver hoher Ausgang wie RTS.

Schalten Sie für den Pin, den Sie für RX halten, einen 1-kOhm-Widerstand in Reihe mit dem TX-Ausgang Ihres Pi, um den Strom zu begrenzen, falls der Pin, den Sie testen, tatsächlich ein Ausgang ist, und probieren Sie es aus. Wenn Sie sicher sind, dass Sie RX nach Ihrem Test identifiziert haben, benötigen Sie den Widerstand nicht mehr.

Sie könnten versuchen, das Datenblatt für den Prozessor zu erhalten und zu sehen, ob Sie den RX-Pfad von der CPU zum Header verfolgen können, vielleicht indem Sie den TX-Pfad als Richtlinie verwenden.

In diesem Fall ist es ein vielschichtiges Board, aber im Allgemeinen eine gute Idee, danke.

Schreiben Sie ein Skript, das jede Sekunde "ls\n" oder "login\n" ausgibt, und probieren Sie andere Pins an diesem Header aus, bis er sich bei Ihnen beschwert (machen Sie dies über einen 10k-Widerstand, damit Sie dabei keinen der Pins töten). .

10 kOhm ist ziemlich hoch. Das reicht möglicherweise nicht aus, um einen passiven Klimmzug zu überwinden.