UART funktioniert nicht richtig

  • Hallo!

    Zu aller erst einmal, das ist mein erstes Projekt mit dem Raspberry also Nachsichtig sein falls ich nen Anfängerfehler gemacht hab oder undurchsichtige Fragen stelle :)

    Was hab ich vor?
    Ich will mir nen Internetradio bauen, den ich über Mikrocontroller steuere und bei dem mir auf einem kleinen Bildschirm Sender, Band und Titel angezeigt werden. Die Kommunikation soll dabei über UART laufen.

    Was hab ich schon gemacht?
    Um nicht schon den Mikrocontroller zu programmieren wollte ich die Steuerbefehle erst mal über den Computer senden und auch die Infos am Computer ausgegen. Dafür hab ich mir nen USB zu serielle Wandler gekauft (USB - Seriell).

    Als Pegelwandler hab ich mir diese Schaltung aufgebaut(Pegelwandler).

    Wenn ich jetzt alles einrichte und den Raspberry mit dem Computer verbinde und via Minicom Zeichen an den Computer sende oder andersrum etwas sende, dann kommen die falschen Zeichen an.
    Ein Beispiel ist beim senden von "1" kommt immer "g" an.


    Was hab ich bereits kontrolliert?

    • Baudraten
    • Format 8N1
    • RX und TX am Ausgang des Pegelwandler verbunden und vom Raspberry Zeiche gesendet -> Zeichen werden gesendet und kommen wieder richtig an
    • RX und TX am Adapter verbunden und vom Computer Zeichen gesendet -> Zeichen werden gesendet und kommen wieder richtig an

    Was ist mir aufgefallen...
    Wenn ich den Hex Code von "1" invertiere und den Wert durch 2 teile kommt der Hex Wert für "g" raus.
    Das gleiche Muster passt auch bei anderen Zeichen. Ich hab aber keine Ahnung wie ich das interpretieren soll.


    Also das ist mein Problem, ich hoffe von euch kann mir jemand helfen :)

    Noch nen schönen Tag!

  • Am USB Anschluss den USB zu Seriell Wandler angesteckt.

    Der Wandler arbeitet aber mit 5 Volt und deshalb hab ich zusätzlich (weil der PI mit 3,3V soll) zwischen dem Wandler und dem PI diese Schaltung mit eingebaut (Klicke hier) und entsprechend verdrahtet.


  • Am USB Anschluss den USB zu Seriell Wandler angesteckt.

    Der Wandler arbeitet aber mit 5 Volt und deshalb hab ich zusätzlich (weil der PI mit 3,3V soll) zwischen dem Wandler und dem PI diese Schaltung mit eingebaut (Klicke hier) und entsprechend verdrahtet.

    Sorry Road.Runner,
    aber da hast Du m.E. etwas gründlich missverstanden.
    Mach doch bitte mal ein Foto oder eine Skizze und poste sie als Anhang.
    Und dann rupf erstmal alle Kabel vom RPi ... heute ist kein Grillwetter ;) ...
    cu,
    -ds-


  • Was hab ich schon gemacht?
    Um nicht schon den Mikrocontroller zu programmieren wollte ich die Steuerbefehle erst mal über den Computer senden und auch die Infos am Computer ausgegen. Dafür hab ich mir nen USB zu serielle Wandler gekauft (USB - Seriell).

    Als Pegelwandler hab ich mir diese Schaltung aufgebaut(Pegelwandler).

    das kann nicht klappen


    Sorry Road.Runner,
    aber da hast Du m.E. etwas gründlich missverstanden.
    -ds-

    genau, der USB Wandler wandelt zu V24 (geplant +-12V oft sind es aber nur +-5 reicht aber)

    V24 ist invertiertes Signal

    mit deiner PI Wandlung hast du nicht invertiert ! nur den Pegel angepasst auf 5V
    der USB Wandler liefert aber invertierte Pegel und wenn du Pech hast auch +-12 V

    also nach deiner PI Schaltung sollte noch ein RS232 Wandler kommen, aber die Trasis kannst du gleich weglassen wenn du sowas kaufst

    RS232 MAX3232
    http://www.ebay.com/bhp/rs232-ttl-max3232

    aber achte wirklich auf MAX 3232 weil der ab 3,3V arbeiten kann direkt am PI

    nimmst du sonst einen RS232 Wandler, dann muss der mit 5V arbeiten und deine Transistor Widerstandsschaltung wird wieder gebraucht.


    Dann klär mich bitte auf, ich glaub ich steh ein wenig auf dem Schlauch!

    Geraucht hat noch nix :)

    aufgemalt hin oder her der USB invertiert evtl. sogar mit Pegelhub auf +-12V , deine Transistoranpassung invertiert nicht und ist vor allem nicht auf negative Spannung vorbereitet.

    diese Transistor Widerstandsschaltung ist nur ! für direkten TTL 5V Anschluß geeignet

    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)

    Edited once, last by jar (August 9, 2013 at 2:37 PM).

  • Aaaalso Road.Runner,

    ob die Pegelwandlung für Deinen Zweck geeignet ist oder ob sie prinzipiell funktioniert oder nicht lassen ich im Moment mal dahingestellt. Dazu können kompetentere Köpfe wie ich mehr aussagen.

    Pegelwandler benötigst Du um die 3V3 Ausgänge der GPIOs auf z.B. 5V anzuheben bzw. bei Eingängen die Eingangssignale auf 3V3 zu beschränken, weil die Pins als Eingang nicht mehr verkraften.

    Diesen USB->seriell Adapter kannst Du direkt (notfalls über einen aktiven Hub) am RPi-USB anschliessen und das Signal zum PC am d-sub abgreifen. Das einzige was sich ändert ist das Device (müsste /dev/ttyUSB0 sein).

    Alternativ dazu kannst Du Dir z.B. ein solches Modul zulegen. Die gibts auch von anderen Anbietern, aber da hab ich im Moment keinen Link zur Hand.
    Für diese Module benötigst Du i.d.R. keinen Levelshifter, denn, obwohl 5V draufsteht, funktionieren die auch mit 3V3.
    In diesem Fall einfach an den passenden Pins der GPIOs anstecken (3v3, GND, Rx, Tx) und dann kann nix passieren. Ggf die Rx/Tx Leitung am GPIO tauschen (ist dann wie crossover).

    Dritte Variante wäre, einen MAX232 mit Kondensatoren bla, bla, ... und dann ebenfalls mit 3V3 direkt an die GPIOs gehen.

    Was Du da machst ist eine 5V Schaltung an einen V24 Adapter anzuschliessen ... das kann ganz furchtbar ins Auge gehen ;) ...

    Ich hoffe, das ist jetzt ein bisschen klarer,
    -ds-


  • Pegelwandler benötigst Du um die 3V3 Ausgänge der GPIOs auf z.B. 5V anzuheben bzw. bei Eingängen die Eingangssignale auf 3V3 zu beschränken, weil die Pins als Eingang nicht mehr verkraften.
    Ich hoffe, das ist jetzt ein bisschen klarer,
    -ds-

    hatte ich schon versucht zu erklären, vielleicht hält doppelt besser oder deine Worte sind klarer ;)



    Alternativ dazu kannst Du Dir z.B. ein solches Modul zulegen. Die gibts auch von anderen Anbietern, aber da hab ich im Moment keinen Link zur Hand.
    Für diese Module benötigst Du i.d.R. keinen Levelshifter, denn, obwohl 5V draufsteht, funktionieren die auch mit 3V3.
    -ds-

    nur wenn ein neuerer MAX3232 drin steckt


    Dritte Variante wäre, einen MAX232 mit Kondensatoren bla, bla, ... und dann ebenfalls mit 3V3 direkt an die GPIOs gehen.
    -ds-

    Achtung viele 232 gehen nicht an 3,3V die stammen u.U. noch aus der TTL Zeit ab 4,75V , es gibt mehr als einen Hersteller ST, TI, MAX ich müsste mal suchen was hier noch so rumliegt.



    Was Du da machst ist eine 5V Schaltung an einen V24 Adapter anzuschliessen ... das kann ganz furchtbar ins Auge gehen ;) ...
    -ds-

    genau:heart:

    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)

  • So super vielen Dank für den Denkanstoß, jetzt läufts !!!! :bravo2:


    Quote


    Pegelwandler benötigst Du um die 3V3 Ausgänge der GPIOs auf z.B. 5V anzuheben bzw. bei Eingängen die Eingangssignale auf 3V3 zu beschränken, weil die Pins als Eingang nicht mehr verkraften.
    Ich hoffe, das ist jetzt ein bisschen klarer,
    -ds-

    Danke aber das war mir schon vorher klar. :)


    Quote


    ob die Pegelwandlung für Deinen Zweck geeignet ist oder ob sie prinzipiell funktioniert oder nicht lassen ich im Moment mal dahingestellt. Dazu können kompetentere Köpfe wie ich mehr aussagen.

    Funktioniert ist zwar nicht elegant aber was solls... ist im gegebenen Fall nur zum Testen.


    Quote


    Was Du da machst ist eine 5V Schaltung an einen V24 Adapter anzuschliessen ... das kann ganz furchtbar ins Auge gehen icon_wink.gif ...
    -ds-

    Er gibt 5V aus, eher noch ein wenig drunter!


    Quote


    V24 ist invertiertes Signal

    mit deiner PI Wandlung hast du nicht invertiert ! nur den Pegel angepasst auf 5V

    Bei der Invertierung lag das Problem, da hab ich Mist gemacht.


    So siehts jetzt aus.

    Die Spannung am Empfangstransistor ist so zwar grenzwertig :) aber da mach ich noch was!


    Also nochmals Danke!


    Vielleicht kann mir ja abschließend noch jemand erklären wie ich Namen in die Zitate bekomm?!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!