www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BASCOM und ELM323 / OBD2


Autor: micha b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Projekt nähert sich seinem Ende. :-)
Sämtliche AD-Wandlungen, Vollgrafikausgabe auf 2,5" Display über Graph
und Bargraph, Uhren, Stopuhren, Menuesteuerung etc, alles ist(auch dank
dieses Forums) am Laufen.

Einzig die Kommunikation meines ATM128 und dem ELM323 funktioniert noch
nicht richtig.

Die Verbindung ist über die RS232 realisiert, ich kann vom µPC aus zwar
den ELM ansprechen (z.B. mit "ATZ" resetten, Abfragen schicken etc.)
er reagiert auch, sendet auch zurück, allerdings kommen nur Hyroglyphen
an. Es sollten  nach dem Hersteller-Datenblatt aber Hex-Daten kommen.

Habe parallel zum µPC auch versucht über versch. Terminalprogramme mit
dem ELM zu kommunizieren-gleiches Ergebniss, nur irgendwelche nicht
identifizierbare Zeichen. Bei erneuter Abfrage sind diese dann aber
reproduzierbar, d.h. es kommen die gleichen wieder zur zurück.
Die Terminalprogramme melden hierbei "Zeichenfehler".

Die Schaltung um den ELM323 ist entsprechend der Herstellerempfehlung
aufgebaut.

Steh ich auf dem Schlauch? SIND das bereits die richtigen Daten, und
ich muß sie irgendwie "interpretieren / umrechnen" ?
Wie bekomme ich Klartext auf die Terminalprogramme? Welches Prog.
würdet ihr hierzu empfehlen?

Danke für die "Starthilfe" :-)

Micha B.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>allerdings kommen nur Hyroglyphen
>an. Es sollten  nach dem Hersteller-Datenblatt aber Hex-Daten kommen.

Dann solltest du dir ein Terminalprogramm besorgen, dass aus
"Hyroglyphen" für dich lesbare HEX-Zahlen macht.
Das, was du da siehst, sind IMHO die ASCII-Zeichen, die dem gesendeten
Byte entsprechen.

Ich benutze gerne Comtest (B&B-electronics). BrayTerm (oder so ähnlich)
wird auch gerne benutzt (keine eigene Erfahrung). In der Codesammlung
findet man noch HTerm.

Autor: micha b (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
OK, angenommen, das ist der Grund (kanns leider erst heut Nacht testen,
da ich solange bei der Arbeit bin), wie komme ich dann µPC intern vom
Hyroglyphen zum ASCII / Hex ?

Anbei mal ein Return-String, über Zwischenablage in ne txt kopiert.
Viele der Zeichen werden ja erst garnicht angezeigt, wie bekomme ich da
die ASCII / HEX-Daten raus?


Danke :-)

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du benutzt zur Kommunikation mit dem ELM aber schon einen
Schnittstellenwandler bzw. die Levelkonverter Schaltung des Herstellers
zwischen PC und ELM?

Zur kommunikation zwischen ATmega und ELM ist kein Pegelwandler
erforderlich, da beide mit TTL pegeln arbeiten.

/Michael

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C ginge sowas mit itoa():
http://www.nongnu.org/avr-libc/user-manual/group__...

Sowas sollte es unter Bascom auch geben.

Bleibt nur die Frage wie sinnvoll das Wandeln von integer zu string
ist. Wenn damit noch gerechnet werden soll, wuerde ich die
"hex"-Variante bevorzugen. Zum Anzeigen ist ASCII natuerlich
einfacher.

gruss, bjoern.

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ELM323 sendet grundsätzlich ASCII Zeichen die sich mit jedem
Terminal Programm lesen lassen. Das was der OP hier bekommt ist mit
Sicherheit nicht das was kommen soll.
Das heist erst mal sollte das Problem gefunden werden, warum keine
ASCII Zeichen kommen. Dann kann man sich mit der Wandelung
beschäftigen.
Auch die Hex Daten kommen als 2 Byte ASCII.

@micha b

Auf meiner Page http://www.mictronics.de findest Du einen ELM322 Clone
basierend auf AVR. Im Source Code (main.c) ist eine Funktion drin, die
dir 2 Byte ASCII in 1 Byte Hex umwandelt.
Musst Du halt umsetzen in Bascom.

/Michael

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorum wird ein schuh draus(hex-wert als 2 ascii-zeichen). der
zeichensalat sieht nach falscher baudrate bzw verfaelschtem signal aus.
am einfachsten waere es, ein speicheroszi dranzuhalten und die baudrate
auszumessen, bzw. sich die signalqualitaet anzusehen.
alternativ tuts zumindest um nen groben ueberblick zu erhalten der
eingang von ner soundkarte:

http://www.google.de/search?q=sound+card+scope

gruss, bjoern.

Autor: micha b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul: Das mit dem HTerm hat zumindest insoweit geholfen, daß ich jetzt
in ASCII-Zeichen sehe, daß was nicht stimmt. Eine Rückmeldung endet
immer mit 03Hex, insofern arbeitet der ELM wohl schon richtig...

@Michael Wolf: Die Schaltung ist gemäß Hersteller aufgebaut, also mit
Konverter.
Nach Tests mit verschiedenen Terminalprogrammen (unter anderem HTerm)
habe ich feststellen können, daß die Anzahl der ankommenden Bytes schon
dem entspricht was kommen sollte. Nur der eigentliche Inhalt (auch
übersetzt nach Hex) entspricht in keinster Weise dem Soll.
Verschiedene Baudraten habe ich ebenfalls durchprobiert. Ob der Quarz
vielleicht ausserhalb der Toleranz liegt? Aber würde dann der ELM
überhaupt antworten?

Also, heute abend Signalqualität prüfen... :-(

Mal ne ganz dumme Frage... Ist für den Betrieb eines ELM der Anschluß
an die OBD2 zwingend erforderlich? Kann es sein, daß der Mist
zurückgesendet wird, weil der Ausgang NICHT an der OBD2 hängt solange
ich im Arbeitszimmer progge?
Sagt mir bitte nicht das das die Lösung ist... grmmmlll

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must halt den ELM über die OBD Stecker mit Spannung versorgen (oder
anderweitig). Die OBD Datenleitungen sind für die Grundfunktionen des
ELM nicht notwendig, der geht auch so.
Das heist AT Z usw. muss immer gehen.

/Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.