Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

interne Serielle Schnittstelle (RX/TX an GPIO)

Talisker
2015-05-26
2015-05-27
  • Talisker - 2015-05-26

    Ich versuche das Programm von Edwin "SerialComWithVisu" mit der UART (RX/TX auf PIN8 und 10 der GPIO) zum Laufen zu bringen, ohne Erfolg.
    Geht das überhaupt und wie weise ich die Schnittstelle zu?

     
  • eschwellinger

    eschwellinger - 2015-05-26

    Hallo,

    zunächst mal:
    Das Beispiel ist natürlich nicht wirklich von mir, ich habe lediglich dieses Beispiel
    welches im CODESYS Store verfügbar ist, geändert das es die Raspberry Pi SPS enthält statt Control Win.
    (So kann man alle Store Applikationsbeispiele mit dem CODESYS PI verwenden)
    Rechts click auf die SPS im Gerätebaum und "Gerät aktualisieren" ausführen.
    Dann noch aktuellen Compiler und VisuProfil setzen und das war es.
    Hier im englischen Forum gibt's ja auch einen "viel gelesener Thread" zum Thema auch mit Serial nach USB Adaptern
    http://forum.codesys.com/viewtopic.php?f=21&t=5699

    So wie geht's also mit der seriellen Schnittstelle die über die GPIO's verfügbar ist?
    Man muss beachten das es auch 3.3V Pegel sind d.h hier kann ich nicht direkt RS232 Geräte anschießen sondern muss einen z.B
    Max232 (oder eben andere RS232 Treiber) Baustein anschließen der die Pegel auf die +/-12V bringt.
    Soviel zur Hardware.
    Auf Linux Seite muss man die Konsole die per Default an diesem Port aktiviert ist deaktivieren.
    Das macht man mit dem Befehl
    sudo raspi-config

    Nun fehlt die noch der Eintrag für die Serielle Schnittstelle im SPS Config file:
    /etc/CODESYSControl.cfg

    [SysCom]
    Linux.Devicefile=/dev/ttyAMA

    Grüße
    Edwin

    IMG: DisableSerialConsole.jpg

     
  • Talisker - 2015-05-26

    Danke für die schnelle Antwort.

    in der CODESYSControl hab ich:

    [SysCom]
    Linux.Devicefile=/dev/ttyAMA
    portnum := COM.SysCom.SYS_COMPORT1;

    Ich hatte noch das Touchdisplay am Raspi aktiv.
    Anscheinend verwendet das auch dir Pins8+10. Das muß ich noch mal genau prüfen.

    Im Moment kommt etwas rein, aber nur "Zeichensalat".

     
  • eschwellinger

    eschwellinger - 2015-05-26

    Hallo,

    hast recht... ttyAMA das passt.

    [SysCom]
    Linux.Devicefile=/dev/ttyAMA

    Das mit dem Pegel passt?
    Weil wenn Schrott kommt würde ich eher auf so was tippen...

    Grüße
    Edwin

     
  • Talisker - 2015-05-26

    So, es hat geklappt, Danke noch einmal.
    Mein Arafruit-GPS-Empfänger braucht NONE als Parität und ich hatte eine der Paritäten (für write) noch wie im Beispiel stehen. Die wirken aber auf die selbe serielle SS, also funtionierte das mit dem Beispiel an der Stelle erst, nachdem ich das entsprechend für mich angepaßt hatte.
    Ansonsten mußte ich noch ein wenig Grips in das "Filtern" der richtigen Daten stecken, denn die kommen ja fortlaufend in der seriellen SS an, müssen erst einmal zusammengesetzt und dann nach bestimmten Merkmalen herausgeschnitten werden. Keine so große Sache, wenn man es erst einmal hat.

    Edit: Pegel paßt, den Adafruit-GPS kann man sogar mit 5V Vin betreiben, die Pegel werden automatisch an den Raspi angepasst. Das finde ich wirklich gut!!!

     
  • eschwellinger

    eschwellinger - 2015-05-27

    Hi,
    prima, hört sich interessant an.
    Keine Ahnung ob das andere auch verwenden wollen,
    hast du Lust das zu veröffentlichen?
    Dein Projekt + kleine Beschreibung welche Hardware man benötigt?
    Kein Muss nur so ne Frage.

    Grüße
    Edwin

     
  • Talisker - 2015-05-27

    Ja, mach ich gerne, wird aber etwas dauern, bis ich soweit bin.
    Nächste Baustelle ist die PWM-Platine, die hast du ja schon in Betrieb, mal sehen, wie das klappt.
    Anschließende ist evtl. noch ZigBee (oder XBee) eine Begehrlichkeit.

     

Log in to post a comment.