Fehler bei ASCII über serielle Schnittstelle

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

    .. ich habe folgendes Problem:

    Ich möchte ein Blutdruckmessgerät über eine serielle Schnittstelle ansteuern. Dieses benötigt zur Ausführung den ASCII - Code (hex).

    Ich habe nun folgende Schritte durchgeführt:

    1. Schnittstelle konfigurieren:

    Code
    sudo stty 4800 -F /dev/ttyAMA0

    2. USART freimachen

    indem die entsprechenden Sachen in /boot/cmdline.txt und /etc/inittab editiert werden.
    (genaue Ausführung erspare ich (wie in so ziehmlich jedem Buch oder Tutorial))

    3. Dann geht´s ja eigentlich schon los:

    Code
    echo -en '\x02\x30\x31\x3B\x3B\x44\x37\x03' >> /dev/ttyAMA0

    Nur leider passiert nix und das Ergebnis welches übertragen wird stimmt auch irgendwie nicht (s. Bild)

    Hat einer einen Fehler erkannt? Oder irgendwelche Vorschläge??

    Mist ich kann hier garkein Bild einfügen..?! Aufjednfall ist dort zu erkennen das decodiert d2 R0 a0... ankommen.

    Danke schon mal und MfG

    Bilder gehen doch :D

    scope 0 zeigt wie es ist

    scope 1 wie es sein sollte[/align]

    Bilder gehen doch :D

    scope 0 zeigt wie es ist

    scope 1 wie es sein sollte

    quatsch.... nur die oberen Bilder beachten... und was jetzt folgt ist wie es sein sollte

  • am PI (wie auch am Atmel oder Arduiono) sind nun mal keinen V24 Treiber dran, da fehlt der MAX 3232 zwischen ?

    bist du sicher das beide die selbe Sprache sprechen ? (Spannungshöhe ?)

    Der PI spricht mit 3,3V und andere oft mit TTL 5V sieht man auch am Triggerlevel 2,5V (U/2)

    5V Pegel am PI können töten ....

    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)

  • also der Pegel ist kein Problem... das Gerät arbeitet auf cmos level.

    Das Problem ist das die Ausgabe am GPIO nicht das ist was es sein soll..

    ..auf dem bild unten rechts sieht man die antwort des Gerätes

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

    Einmal editiert, zuletzt von Kornfeld (15. Mai 2014 um 19:48)


  • also der Pegel ist kein Problem... das Gerät arbeitet auf cmos level.

    was hat das eine mit dem anderen zu tun ?

    mein Atmel spuckt 5V aus der PI mag nur maximal 3,3V

    das zu verbinden kann tödlich für den PI sein ! klinkt komisch, ist aber so ......

    RaspiDo
    23. November 2013 um 20:54

    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)

  • Mit vier verschiedenen Skalierungen kann wohl keiner etwas erkennen !

    Scope immer gleich einstellen und die Messungen nochmal machen ...

    - - - - - -

    Und dann die Zeitbasis so aufdrehen dass die ersten zwei Character
    ueber die ganze Breite dargestellt werden, damit man die Bits sauber
    abzaehlen kann.

    - - - - - -

    Das stty stellt nur die Baudrate ein, was ist mit den anderen Parametern ?
    Bits pro Zeichen, Parity, Stopbits ?

    Meist ist es noetig, den raw-Mode einzustellen, weil sonst Zeichen
    interpretiert werden.

    Was ist mit dem Handshake ?

    - - - - - -

    Was passiert mit einem USB-Seriell Adapter ?

  • was hat das eine mit dem anderen zu tun ?

    mein Atmel spuckt 5V aus der PI mag nur maximal 3,3V

    das zu verbinden kann tödlich für den PI sein ! klinkt komisch, ist aber so ......

    Atmel Atmega 8 an Raspberry Pi

    mag sein das das bei dem atmel so ist... und ich danke auch dafür das du mich darauf aufmerksam gemacht hast für spätere projekte... das gerät was jetzt angeschlossen ist arbeitet aber mit einem level von 0 - 3.3V und würde 5 V tolerieren

    hi das mit der Einstellung der gleichen Werte am Scope ist mir leider nicht möglich, da das Bild wie es sein sollte nicht von mir stammt...

    Die anderen Parameter habe ich festgestellt sind noch nicht eingestellt...

    mit den restlichen Einstellungen möchte ich es heute hiermit probieren :
    http://www.netzmafia.de/skripten/hardw…sPi_Serial.html

    Oder gibt es sonst noch gute Quellen?

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

    Einmal editiert, zuletzt von Kornfeld (16. Mai 2014 um 09:15)


  • Ich möchte ein Blutdruckmessgerät über eine serielle Schnittstelle ansteuern.

    also nicht vom PI ?


    mag sein das das bei dem atmel so ist... und ich danke auch dafür das du mich darauf aufmerksam gemacht hast für spätere projekte... das gerät was jetzt angeschlossen ist arbeitet aber mit einem level von 0 - 3.3V und würde 5 V tolerieren

    wieso fragst du dann hier ?

    und was sollte der Hinweis ?


    1. Schnittstelle konfigurieren:

    Code
    sudo stty 4800 -F /dev/ttyAMA0


    2. USART freimachen
    indem die entsprechenden Sachen in /boot/cmdline.txt und /etc/inittab editiert werden.
    (genaue Ausführung erspare ich (wie in so ziehmlich jedem Buch oder Tutorial))
    3. Dann geht´s ja eigentlich schon los:

    Code
    echo -en '\x02\x30\x31\x3B\x3B\x44\x37\x03' >> /dev/ttyAMA0

    wenn die Datenrichtung immer PI-Messgerät geht kann es problemlos gehen, aber du willst die Daten ja vom Blutdruckmessgerät bekommen und wenn das 5V ausgibt dann kann der PI halt schmollen wenn er 5V am GPIO bekommt !

    irgendwas läuft in unserer Kommunikation nicht rund !

    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)

  • irgendwas läuft in unserer Kommunikation nicht rund !

    ..ja ich glaub auch :D

    Also nochmal von vorn:

    -ich habe ein Blutdruckmessgerät, welches im Bereich 0- 3.3 V kommuniziert (seriell & asynchron) (Versorgungsspannung für Pumpe ist anders ist für die Kommunikation aber nicht relevant)
    -um dieses zum Beginn einer Messung zu bewegen benötigt es 8 Zeichen im ASCII- Code (hex)
    -- Diese Zeichen möchte ich über die serielle Schnittststelle (bzw. Tx ) des RPi an dieses schicken
    - Im groben sieht der Befehl immer gleich aus :
    "Startbefehl"-"2 Buchstaben für den jeweiligen Befehl"-";"-";"-" 2 Buchstaben für Prüfsumme"-"ENDE"

    Und mein Problem ist das ich nicht das Übertage was ich will. Die Spannungen stimmen definitiv überein.

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


  • -ich habe ein Blutdruckmessgerät, welches im Bereich 0- 3.3 V kommuniziert

    und warum sehe ich 5V/div ? auf den Bildern ? :s

    und warum liegt der Trigger auf 2,5V was genau 5V/2 ist ?

    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)

  • Das Bild mit den 5 V ist von einer anderen Person, welche dies unter Windows realisiert hat. .... Mir geht es aber auch erstmal darum, dass ich überhaupt erstmal das sende was ich möchte...

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


  • Das Bild mit den 5 V ist von einer anderen Person, welche dies unter Windows realisiert hat.

    wie ? also ohne PI und auch von Windows klappt es nicht mit dem Blutdruckmessgerät ?

    .... Mir geht es aber auch erstmal darum, dass ich überhaupt erstmal das sende was ich möchte...

    ich weiss definitv das es geht

    PI eingerichtet nach Anleitung, TX und RX gebrückt und cutecom probiert, läuft
    dito am Atmel einfach nur im Programmcode gesendet und zurückempfangen

    dann RS232 Wandler angeschlossen am Atmel mit Nullmodemkabel gebaut, klappt auch zum PC.

    dann RS232 Wandler angeschlossen am PI mit Nullmodemkabel gebaut, klappt auch zum PC.

    Dann Atmel und PI untereinander klappt auch mit Nullmodemkabel.

    Dann die Wandler weggelassen und die Spannungen passend gemacht klappt auch.

    4800 Bd ist nun nicht so schnell das Toleranzen stören könnten.

    Hast du Start- Stopbits- und Parety richtig eingestellt ?

    Schritt für Schritt dann wird das schon, Fehlersuche aus der Ferne ist sauschwer......

    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)

  • ich habe es nach dieser Anleitung versucht:
    http://www.netzmafia.de/skripten/hardw…sPi_Serial.html
    beim compilieren sind aber einige Fehler aufgetreten.. gibt es noch einen anderen weg wie ich diese Einstellungen vornehmen kann?

    ..nur mal so: Ich habe es mit dem Arduino versucht. Dort bekomme ich das gewünschte Signal. Da habe ich aber das Problem das dieser nur eine serielle Schnittstelle hat, wodurch ich nicht mit dem RPi kommunizieren kann (und der soll die Daten ja letztendlich noch versenden können).

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

  • Moin die Herrschaften ...

    ich hätte -> hier <- ein C-Programm anzubieten, mt dem Du das evtl. mal ausprobieren kannst.
    Du wirst imho - wie bereits an anderer Stelle erwähnt - nicht um den Raw-Modus drum herum kommen. Auch gehe ich mit jar konform, dass es sinnvoller ist, einen Levelshifter o.ä. zu verwenden und mit 5V Pegeln zu arbeiten. 3V3 sind imho zu nahe am undefinierten Pegel.

    salü,
    -ds-


  • .......nur mal so: Ich habe es mit dem Arduino versucht. Dort bekomme ich das gewünschte Signal. Da habe ich aber das Problem das dieser nur eine serielle Schnittstelle hat, wodurch ich nicht mit dem RPi kommunizieren kann (und der soll die Daten ja letztendlich noch versenden können).

    dann nimm doch einen Arduino mit 2 Schnitten ! oder mit Softschnitte, 4800 Bd ist ja nun keine Herausforderung.

    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!