php_serial.class sendet beim init 7 x unerwünscht 0xFF über die serielle Schnitstelle

  • Hi all,


    ich kopple RPi und AVR µController über die serielle Schnittstelle. Alles ok, nur sendet die Library php_serial.class beim Initialisieren in jeder Zeile das HEX-Byte FF.



    Der Output dieses Codes, mit putty mitgeschnitten und im Hexeditor angesehen:


    FFFFFFFFFFFFFF 6D 79 5F 74 65 78 74


    FFFFFFFFFFFFFF m y _ t e x t


    Ich habe jede Zeile einzeln mit Pausen umrahmt, und kann sehen, dass je Zeile einmal ein Byte FF gesendet wird (bzw. die Leitung einmal kurz auf Null geht = Startbit)


    Ich habe überprüft, ob das Startbit vielleicht nur ein Glitch (eine kurze 0 auf der seriellen Leitung) ist, der den nachfolgenden Ruhepegel als FF erscheinen lässt, aber das Oszi sagt, dass die Bitdauer der Null (25µs) zur Baudrate passt.


    Hat jemand eine Idee, woher die FFs kommen?


    Herzlichen Dank für die Mühe!
    Snafu.

  • Du benutzt die Funktion serialflush() aber in dem verlinkten Code von dir ist diese nicht vorhanden. Benutzt du eine andere Library?


    Ansonsten zeig uns mal, was in der Variable $_buffer vor und nach dem Benutzen der Funktion sendMessage() steht. Kann ja sein, dass dort etwas drin steht, was du gar nicht haben möchtest.


  • Hallo Zaziki, danke für die Antwort und deine Mühe!


    > Du benutzt die Funktion serialflush() aber in dem verlinkten Code von dir ist diese nicht vorhanden.
    > Benutzt du eine andere Library?


    Entschuldigung, die Lib. kursiert in mehreren nicht durch Versionsnummern unterscheidbaren Versionen, der Fehler tritt mit allen auf, die ich hier habe, mit und ohne serialflush().


    > Ansonsten zeig uns mal, was in der Variable $_buffer vor und nach dem Benutzen der Funktion
    > sendMessage() steht. Kann ja sein, dass dort etwas drin steht, was du gar nicht haben möchtest.


    Vor der Benutzung:<br/>string(0) ""
    Nacher:<br/>string(0) ""


    Ist beide Male leer.


    Die unerwünschten FF-Bytes treten schon früher auf, in jeder Zeile, die ich mit "// sends 0xff to serial" kommentiert habe, selbst wenn ich dann nichts sende.


    Schönen Gruss
    snafu

  • Hallo,
    ich habe das gleiche Problem aber mit Python.
    Am Raspi habe ich einen Pegelwandler mit max2322
    Auf dem Raspi benutze ich folgende Kommandos
    import serial
    port = serial.Serial(port='/dev/ttyAMA0', baudrate=19200)
    port.write('hallo welt')


    Auf meinem Linux-PC folgende
    import serial
    port = serial.Serial(port='/dev/ttyS0', baudrate=19200)
    while True:
    write port.read(10)


    Die Ausgabe ist dann \xffhallo wel


    Hat jemand eine Idee woran das liegen kann


    schon mal danke Tux