mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Signal auswerten


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute, ich hab folgendes Problem.

Ich will von einem BMW e36 den Tankfüllstand auswerten. Und ich will 
nicht unbedingt den µC an den Tankgeber selber anschließen. Von daher 
hab ich gedacht, ich schließe den µC an den Digitalen Ausgang an, der 
zum Bordcomputer führt.

Das Signal ist nur sehr komisch.

Bei 15.7 Litern kommt folgendes Signal raus:

http://mike-knebel.de/sig.jpg

Bei 9,6 Litern das hier:
http://mike-knebel.de/sig2.jpg

Weiß jemand was das sein könnte?


Danke

Autor: Volker Schulz (volkerschulz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das Signal hast Du jetzt wie ausgemessen? Dass sich die 
Gesamtlaengen der Nachrichten unterscheiden (Differenz 2ms) laesst 
vermuten, dass es da nicht auf die ms genau zuging. ;)

Volker

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit einem oszilloscope.
Time/div war auf 10ms, und ich hab das so abgelesen.

Was könnte das denn sein?

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja ich sollte dazusagen dass ich noch eine andere Messung gemacht 
habe, und ich da bei 42ms gelandet bin :/

Wenn ich bei genau 48 ms wäre, wären alle 3ms ein Bit... dann wärs 
logisch, aber so...

Autor: Volker Schulz (volkerschulz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> Ach ja ich sollte dazusagen dass ich noch eine andere Messung gemacht
> habe, und ich da bei 42ms gelandet bin :/
>
> Wenn ich bei genau 48 ms wäre, wären alle 3ms ein Bit... dann wärs
> logisch, aber so...

Bei 3ms pro Bit wuerden die Laengen 42ms und 48ms schon Sinn machen, 
naemlich dann, wenn die beiden letzten Bits (dann vermutlich LSB) von 1 
auf 0 gesprungen sind. Aber Deine Zeiten pro High-/Low-Pegel sind 
allesamt nicht durch 3 teilbar... :/

Ist eine Aufzeichnung mit 1ms/Div moeglich?


Volker

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab leider grade nur ein Analoges Oszi da, ich werde mal schauen das 
ich nen Logic Analyser hinhänge.
Muss mal sehen wo ich einen herbekomme, hab nur einen selbergebauten für 
den Parallelport.

Vieleicht sind es ja auch 4 Byte,wo wir dann bei 1,5 ms wären.

Aber dank dir schonmal :)

Autor: Volker Schulz (volkerschulz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> Vieleicht sind es ja auch 4 Byte,wo wir dann bei 1,5 ms wären.

4 Bit meinst Du, oder? Das waere aber schon reichlich wenig. 
Eigentlich reichen ja 8 Bit noch nichtmal um Dir den Fuellstand auf den 
Zehntel Liter genau anzuzeigen... Was er ja zu tun scheint...


Volker

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn jedes Bit etwas 4ms dauert, klappt es mit folgender Dekodierung:
Ein High-Pegel steht für eine 1, ein Low-Pegel für eine 0. Es werden,
beginnend mit dem niederwertigsten Bit, 12 Bits übertragen. Der Wert
gibt den Füllstand in 1/20 Liter an.

[pre]
Gelesen       Gespiegelt    Hex  Dez  1/20
010111001000  000100111010  13a  314  15,7
000000110000  000011000000  0c0  192   9,6
[pre]

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klinkt verdammt logisch, aber ich hab grad den wert 19,9 gemessen, 
und da habe ich 2ms-low 11ms-high 11ms-low 7ms-high 11ms-low

Da müsste ja 5,15 rauskommen.... das is aber zu wenig...

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab grad gesehen, eigentlich kommt bei mir 01110011000 raus,
Also gespiegelt 00011001110, trozdem falsch, aber kann ne 
messungenauigkeit sein, kann sein, dass die 11 ne 12 ist. Dann stimmts 
nämlich.

Danke das ist echt genial was du rausgefunden hast!!!

Tausend dank!!!!

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> Hab grad gesehen, eigentlich kommt bei mir 01110011000 raus,
> Also gespiegelt 00011001110, trozdem falsch, aber kann ne
> messungenauigkeit sein, kann sein, dass die 11 ne 12 ist.

Beim ersten High- und dem letzten Low-Impuls (beide 11ms) hast du ja
auch mit 3 Bitintervallen gerechnet (111 bzw. 000). Dann ist es ja nur
logisch, dass du auch der zweite 11ms-Low-Impuls 3 Nullbits darstellt,
so dass sich 011100011000, also die erwarteten 19,9l ergibt.

Noch etwas zu den Bitzeiten: Was ist das für eine Schnittstelle? Wenn
sie eine getrennte Taktleitung hat, müssen die Bitzeiten nicht konstant
sein, was die Abweichungen bei deinen Messungen erklären könnte. Insbe-
sondere dann, wenn das Schnittstellenprotokoll auf den Mikrocontrollern
softwaremäßig abgewickelt wird, sind die Zeiten praktisch nie konstant.
Du solltest dann mit dem Oszi auf dem anderen Kanal die Taktleitung
anzeigen lassen und schauen, welchen Zustand die Datenleitung jeweils an
den Taktflanken hat. Bei deiner eigenen Auswertung würdest du dann
natürlich ebenfalls den Takt berücksichtigen.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt eben leider keinen Takt, das ist ja das blöde.
Laut schaltplan gibt es nur diese einzige Leitung.

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.