Serielle Schnittschnelle zu ATMEGA8

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich möchte dieses Projekt verwenden, um über den PI eine Laufschrift auszugeben.

    Die LED Matrix wird über die serielle Schnittstelle angesprochen, das klappt auch schon alles, ABER....

    nicht wirklich zuverlässig. Ich habe das Gefühl, dass teilweise Daten "verloren" gehen vom PI zur Matrix.

    Aufbau/Ausgangspunkt sieht wie folgt aus:

    PI versorgt die Matrix mit 5V und GND.
    Pin8 ist mit dem entsprechenden Pin auf der Matrix verbunden.

    Folgende Schritte habe ich unternommen:

    • Ich habe es schon geschafft, dass Buchstaben sauber auf der Matrix ausgegeben werden, aber meistens ist in der Sequenz einer oder mehrere Buchstaben fehlerhaft bzw wird fehlerhaft dargestellt. Das ganze ist auch nicht wiederholbar... Sende ich TEST kommt vlt TE#T an, wobei # ein falsch kodiertes/falsch angekommenes Zeichen ist.
      Sende ich nochmal TEST, kommt vielleicht T##T raus oder TES#.
    • Auf die Länge der Sequenz kommt es auch nicht an.
    • Die Buchstaben werden über ein Python-Skript übermittelt. Ich habe unterschiedlich lange Pausen zwischen den einzelnen Buchstaben gemacht.
    • Wenn man die Matrix nur mit 3 Volt versorgt, kommt nur noch Müll an.
    • Wenn man den Pin8 auf 5 V verstärkt (damit) kommt auch Müll an, aber "komischer" Müll
      Ich sende Enter (Ascii 10), es kommt y an (Ascii 121)
      ich sende f (Ascii 102), es kommt & an (Ascii 38)
      ich sende u (Ascii 117), es kommt E an (Ascii 69)
      Leider sehe ich hier keine Regelmäßigkeit. Worst case teste ich alles durch, ich brauch aber vor allem Enter (Ascii 10) oder muss alternativ die Programmierung der LED Matrix ändern, damit die auf einen anderen "Laufschriftändernstartwert" warten, statt Enter.
    • ich habe die Kabel ausgetauscht
    • Ich habe den UART-Eingang des Raspberrys benutzt um sicher zu stellen, dass die Daten sauber gesendet werden, was auch der Fall ist.

    Leider habe ich keine Möglichkeit direkt über den PC eine serielle Schnittstelle zu benutzen, deswegen geht es nur über den PI.

    Hat einer von euch eine Idee?

    Danke im Voraus!

    Edit: genauere "Versucht" Beschreibung

    Einmal editiert, zuletzt von din4711 (2. September 2014 um 01:14)

  • die 5V aus dem PI ? der kann u.U. nicht viel hergeben, Strommangel. siehe Stromversorgungs Thread dreamshader !
    dein Pegelwandler invertiert, wenn dann 2x invertieren oder passend zum Empfänger.
    Nichtinvertierender Pegelwandler wäre ein 74HC4050 an 5V

    Aus dem PI kommt ein TTL rs232, welches zu echter RS232 mit +-12V Pegel immer invertiert und angehoben werden muss. Nur zum Atmel pur muss nicht invertiert werden nur muss man auf die Pegelanpassung 5V zu 3.3V achten, der PI wird mit 5V gerne schnell gegrillt.

    Atmel Atmega 8 an Raspberry Pi

    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)

    Einmal editiert, zuletzt von jar (2. September 2014 um 10:28)


  • Ich gebe ja nichts zurück, also sende nur von PI an Atmel.

    dann eben nur halbe Schaltung nutzen, aber wieso ? kannst doch eine Bestätigung zurückgeben


    dumme Frage... wie invertiere ich nochmal?

    wieso, beide verstehen sich uninvertiert.....nur den Pegel anpassen oder Vorsicht walten lassen oder Schutzschaltung verwenden 470 Ohm mit BAT42 oder 43 nach +3.3V lt. Plan

    weil eventuelle pullups am Atmel hängen auch 5V raus

    Baudratenfehler fällt mir noch ein, immer schön unter oder maximal bei 9600 Bd bleiben

    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)

    Einmal editiert, zuletzt von jar (2. September 2014 um 12:08)


  • wieso, beide verstehen sich uninvertiert.....nur den Pegel anpassen oder Vorsicht walten lassen oder Schutzschaltung verwenden 470 Ohm mit BAT42 oder 43 nach +3.3V lt. Plan

    Durch meine bisherige Schaltung wird ja anscheinend das Signal invertiert, ich dachte wenn ich es jetzt wieder invertiere passt alles.
    Ich weiß auch leider nicht wie ich den nur den Pegel anpasse...


    Baudratenfehler fällt mir noch ein, immer schön unter oder maximal bei 9600 Bd bleiben

    Ja, wollte ich auch schon ändern, hab nur keine Ahnung von Atmel-Programmierung, deshalb wollte ich da nicht rumbasteln.
    In dem Skript steht

    und ich hab keine Ahnung wie ich das auf eine niedrigere Baudrate änder.

    edit: oh dein Link hatte ich gar nicht gesehen, dachte das gehört zu deiner Signatur; schau ich mir mal an

    Einmal editiert, zuletzt von din4711 (2. September 2014 um 12:20)


  • Ich weiß auch leider nicht wie ich den nur den Pegel anpasse...

    edit: oh dein Link hatte ich gar nicht gesehen, dachte das gehört zu deiner Signatur; schau ich mir mal an

    wenns so nicht geht, 74HC4050 an 5V als Treiber zwischenschalten, Signalrichtung immer vom PI weg ! Eingang an PI GPIO Ausgang an Atmel

    oder für später umgekehrt
    an 3.3V gibt er zum PI an seinen Ausgängen nur 3.3V aus und verträgt am Eingang bis +15V !

    da braucht man aber für ein und aus 2 IC mit verschiedenen Vcc, zum PI 3.3V zum Atmel o.ä. Arduino 5V

    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)

  • ja, klasse hast verstanden !
    die unbenutzten 2a bis 6a Eingänge noch auf GND legen und zwischen VCC und GND noch ein Vielschicht Keramikkondensator 100nF bis 470nF um es perfekt zu machen, aber immer vorausgesetzt deine Zusätze klauen dem PI nicht zuviel Strom wenn du über die microUSB speist, da kann der PI für alles GPIO Atmel, LED und USB nur ca. 0.2A abgeben

    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)

  • Stromversorgung geht über GPIO, das reicht :)

    Wozu denn noch der Kondensator?
    Und wieso Keramik und nicht Folien?
    Und wieso die Ausgänge auf GND?

    Möchte ja dazu lernen. ;)

    Einmal editiert, zuletzt von din4711 (2. September 2014 um 13:37)


  • Möchte ja dazu lernen. ;)

    prima


    Stromversorgung geht über GPIO, das reicht :)

    Ok wenn du sicher bist.....


    Wozu denn noch der Kondensator?

    der puffert kurze Stromspitzen des ICs beim Schalten und entstört so


    Und wieso Keramik und nicht Folien?

    weil kurze Schaltspitzen HF sind und gewickelte Folie als Induktivität schnelle Stromänderungen nicht puffern kann


    Und wieso die Ausgänge auf GND?


    hey ich schrieb die unbenutzen Eingänge !!!! grummel grummel, lesen und mitdenken.
    damit das IC überall definierte Eingangspegel hat und nicht alles aus der Luft einfängt und dann zum Schwingen neigt.

    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)

    Einmal editiert, zuletzt von jar (2. September 2014 um 13:46)

  • Wie hast du denn deine Schnittstelle konfiguriert?

    Baudratengehler wäre das eine... falsche anzahl an stopbits oder falsches Paritätsbit wäre das andere...

    Wie sieht denn dein PYthon Skript aus?

    Rede wenig, rede wahr, trinke mäßig, zahle bar.:angel:

  • Okay, danke, wieder was gelernt.

    Das Ende vom Lied....

    vorweg: du hattest Recht :blush:

    Deine Lösung hat auch nicht funktioniert (es kommen wieder Müllzeichen an).
    Da ich aber glaube, dass du Recht hast, hab ich den Fehler weiterhin bei mir gesucht.

    Anderes Netzteil für die LED Matrix genommen, direkt den RX des RPIs an den TX der Matrix, GND verbunden; geht einwandfrei....

    Ich glaube zwar immer noch, dass das Netzteil genug Strom liefert, aber vielleicht hat das einfach nen Hau weg oder irgendwelche Stromschwankungen, Kriechströme was weiß ich.

    Hier mein Pythonscript für die Nachwelt oder den, der das Nachbauen will:

    Einmal für die Laufschrift:

    Und für Symbole:

    Die Hex-Werte für die Symbole kann man mit dem Excel im Anhang errechnen.


    Vielen Dank für die Tipps!


  • Okay, danke, wieder was gelernt.

    lernen ist immer gut :thumbs1:


    Das Ende vom Lied....
    vorweg: du hattest Recht :blush:

    soll ab und an mal vorkommen :blush:


    ...direkt den RX des RPIs an den TX der Matrix, GND verbunden; geht einwandfrei....

    glaube ich nicht, was soll das LED Array denn dem PI mitteilen :s


    Vielen Dank für die Tipps!

    gerne ;)

    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)

Jetzt mitmachen!

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