Forum: Mikrocontroller und Digitale Elektronik Messschieber auslesen ATMega + LM234


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von MosKiller (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mal eine Frage bzgl. eines Problems beim Auslesen von 
Messschiebern. Die Softwareseite ist kein Problem, darum geht es hier 
weniger. Ich habe WABECO Teile bereits korrekt ausgelesen und wollte nun 
die billigen China-Teile (2x24 Bit) auslesen. Jetzt habe ich 
festgestellt, dass diese 100 Khz Datenrate haben. Die Daten die bei mir 
ankommen sind schrott. Nachdem Osci angucken (siehe Bilder) bin ich 
stark verwirrt. Mein Osci ist ein Uni-T 2052CEL (50 Mhz, 1GS/s), sollte 
aber reichen.


Die Bilder sind vom Taktsignal. Das gelbe ist direkt vom Messschieber 
(1,5V). Das blaue kommt nach dem LM324, also 5V. Ist der LM324 zu 
langsam dafür?!
Er ist aufgebaut als Schmitt-Trigger, also am negativen Eingang liegen 
über Spannungsteiler 750 mV an, am positiven direkt der Eingang vom 
Taktsignal vom Messschieber. Man sieht deutlich, wie das Taktsignal gar 
nicht mehr auf 0V kommt und überhaupt kein Rechtecksignal ist.

Bei den Wabeco geht das Problemlos, saubere Signale. Die Takten aber 
auch vergleichsweise langsam (ca. 1khz).

Liegt das wirklich am LM324, gibt es da andere Typen die am Besten 
Pinkompatibel sind aber leistungsstärker?

von Stefan F. (Gast)


Lesenswert?

Du solltest mal den Schaltplan zeigen.

von MosKiller (Gast)


Lesenswert?

Stefanus F. schrieb:
> Du solltest mal den Schaltplan zeigen.

Es gibt da nichts wildes.


Spannungsteiler 22k gegen VCC 5V und 3k3 gegen Masse. Das verbunden mit 
den - Eingängen von 2 LM324 Chips.

An die + Eingänge kommen jeweils Daten und Takt von insg. 4 
Messchiebern.

Die Ausgänge von den LM324 gehen an den ATmega644P.


Mehr ist es nicht außer noch 100n am Mega und jeweils am LM324.

von karadur (Gast)


Lesenswert?

Das ist aber kein Schmitt-Trigger sondern ein Komparator in der 
Beschaltung.

Die Slewrate reicht nicht. Nimm einen passenden OP.

von Codix (Gast)


Angehängte Dateien:

Lesenswert?

Der LM324 ist dafür ungeeignet.
Nimm einen LM2901, der passt.
Siehe Anhang.
Diese Schaltung habe ich so im Einsatz. Keine Probleme damit, auch bei
2 m langer geschirmter Zuleitung.

von karadur (Gast)


Lesenswert?

Pullup nicht vergessen. LM2901 hat Opencollector.

von Manfred (Gast)


Lesenswert?

Codix schrieb:
> Der LM324 ist dafür ungeeignet.

Mir ist unklar, für was der überhaupt geeignet ist. Ich habe den genau 
einmal verbaut, mich über seine Drift geärgert und nie wieder angefasst.

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Ich mach das so, wie im Bild. Die rote LED dient als Zehnerdiode für die 
Versorgung des Messschiebers und gleichzeitig als Kontrollleuchte. Die 
Signale sind invers, entweder die SW kann das oder man benutzt zwei 
weitere Inverter.

MfG Klaus

von Manfred (Gast)


Lesenswert?

Klaus schrieb:
> Zehnerdiode

Was ist das?

von Klaus (Gast)


Lesenswert?

Manfred schrieb:
> Klaus schrieb:
>> Zehnerdiode
>
> Was ist das?

Ein Schreibfehler, darfst ihn behalten

MfG Klaus

von MosKiller (Gast)


Lesenswert?

Vielen Dank für die ganzen Antworten. Gerne nehme ich bei neuen 
Versionen einen anderen Chip, aktuell habe ich aber noch 20 Platinen 
hier, die ich gerne noch nutzen möchte. Es müsste was kompatibles zum 
LM324 sein, mit OC könnte ich noch leben und die Eingänge vom Controller 
(also Ausgang vom OP) Pull-Uppen. Nur Pin-Kompatibel sollten die sein. 
Die LM324 bin ich echt enttäuscht von den Chips.

von Michael B. (laberkopp)


Lesenswert?

MosKiller schrieb:
> Ist der LM324 zu langsam dafür?!

Ja.

Nim LM339=LM2901 Komparatoren.

MosKiller schrieb:
> gibt es da andere Typen die am Besten
> Pinkompatibel sind aber leistungsstärker

Hmm, LM339=LM2901 ist nicht pinkompatibel.

Klar gäbe es schnellere OpAmps, wie LT1633.
Der ist wohl sogar zu schnell, erfordert gutes Abblocken der 
Versorgungsspanung, ein TSH24 ist immer noch sehr schnell,
vielleicht ein TSV914, der sollte noch ausreichen,
ein TS914 wäre hingegen ähnlich langsam wie dein LM324.

von Manfred (Gast)


Lesenswert?

MosKiller schrieb:
> Nur Pin-Kompatibel sollten die sein.

Musst Du selbst die Augen auf machen (Datenblätter), es gibt eine große 
Anzahl OPs mit der gleichen Pinbelegung, da ist der 324 quasi Standard.

von MosKiller (Gast)


Lesenswert?

Was sagt ihr zum LMC6484.

Pinkompatibel, leicht zu bekommen.

von MosKiller (Gast)


Lesenswert?

Manfred schrieb:
> MosKiller schrieb:
>> Nur Pin-Kompatibel sollten die sein.
>
> Musst Du selbst die Augen auf machen (Datenblätter), es gibt eine große
> Anzahl OPs mit der gleichen Pinbelegung, da ist der 324 quasi Standard.


Ich sehe im Datenblatt irgendwie überhaupt nicht die Slew-Rate oder habe 
ich Tomaten auf den Augen?

von MosKiller (Gast)


Lesenswert?

Michael B. schrieb:
> MosKiller schrieb:
>> Ist der LM324 zu langsam dafür?!
>
> Ja.
>
> Nim LM339=LM2901 Komparatoren.
>
> MosKiller schrieb:
>> gibt es da andere Typen die am Besten
>> Pinkompatibel sind aber leistungsstärker
>
> Hmm, LM339=LM2901 ist nicht pinkompatibel.
>
> Klar gäbe es schnellere OpAmps, wie LT1633.
> Der ist wohl sogar zu schnell, erfordert gutes Abblocken der
> Versorgungsspanung, ein TSH24 ist immer noch sehr schnell,
> vielleicht ein TSV914, der sollte noch ausreichen,
> ein TS914 wäre hingegen ähnlich langsam wie dein LM324.

TSH24 und LT1633 scheinen nicht mehr so zu bekommen zu sein, zumindest 
sehr schwer und teuer.

Ich hatte den LMC6484 gefunden, reicht der auch dafür?

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

MosKiller schrieb:
> Ich sehe im Datenblatt irgendwie überhaupt nicht die Slew-Rate oder habe
> ich Tomaten auf den Augen?

Im Datenblatt von National / Texas des LM324 finde ich sie auch nicht, 
im Datenblatt von Philips hat der LM324 0,3V/µs und Gain/Bandwith 1 MHz.

Im TI-Datenblatt des LMC6484A unter 6.11 / Seite 13 "min. 1 V/µs".

von MaWin (Gast)


Lesenswert?


von Percy N. (vox_bovi)


Lesenswert?

MosKiller schrieb:

> Ich sehe im Datenblatt irgendwie überhaupt nicht die Slew-Rate oder habe
> ich Tomaten auf den Augen?

Wenn Du Dir den 324 als quad 741 vorstellst, bewegst Du Dich zumeist in 
der passenden Größenordnung. Und der gilt nicht eben als schnell.

von Reiner W. (reiner_w)


Angehängte Dateien:

Lesenswert?

MosKiller schrieb:
> Spannungsteiler 22k gegen VCC 5V und 3k3 gegen Masse. Das verbunden mit
> den - Eingängen von 2 LM324 Chips.

Ich weiß jetzt nicht was du für einen konkreten Messchieber hast, aber 
bei mir haben die Dinger einen Innenwiderstand von ca. 8k. (die billigen 
2x 24bit Dinger) Da wird es mit einer externen Belastung von 3k3 schon 
eng. Habs dann so wie im Bild getestet. Das ging gut.
Wichtig ist, das Signal recht hochohmig abzugreifen. Da ich die Pins als 
Eingang und Ausgang(Nullen) verwendet habe, waren dann noch die 68k 
nötig. Wenn die nicht mit einem C (tatsächlich hab ich 4,7k verwendet) 
gebrückt wurden, sah die Kurve aus wie bei dir.
Tatsächlich habe ich die Komparatoren letztlich ganz weggelassen und 
dafür das Messschieberpotential angehoben (ähnlich wie Klaus 
Beitrag "Re: Messschieber auslesen ATMega + LM234")

Nachteilig ist da natürlich das unterschiedliche Massepotential von 
Messschieber und Elektronik. Die Signalform ist da aber am Besten.

von Stefan F. (Gast)


Lesenswert?

Könnte man das nicht elegant mit dem Analog-Komparator des 
Mikrocontrollers lösen?

von Reiner W. (reiner_w)


Lesenswert?

Stefanus F. schrieb:
> dem Analog-Komparator des
> Mikrocontrollers

In meinem Fall s.o. hab ich das so gemacht (PSoC 4). Dann allerdings, 
wie gesagt, auf den Komparator verzichten können.

von MosKiller (Gast)


Lesenswert?

Reiner W. schrieb:
> Stefanus F. schrieb:
>> dem Analog-Komparator des
>> Mikrocontrollers
>
> In meinem Fall s.o. hab ich das so gemacht (PSoC 4). Dann allerdings,
> wie gesagt, auf den Komparator verzichten können.

Der Mega644P hat nicht so viele Komparatoren, um 4 Messschieber (8 
Eingänge) nutzen zu können soweit ich das gesehen habe. Außerdem habe 
ich nicht so richtig gesehen, wie ich die Schwelle konfiguriere.

Bei mir gehen die Eingänge vom Messschieber direkt auf den + Eingang der 
OPVs, dass sollte so hochohmig sein, dass dort quasi kein Strom fließt 
wenn der OP als Komparator konfiguriert ist. Oder sehe ich das falsch?
Bei mir gehen die Kontakte vom Messschieber direkt an den OP + Eingang, 
ohne weitere Beschaltung. Außerdem nutze ich div. Messchieber, ich habe 
alle Protokolle implementiert die ich so finden konnte.

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Der Mega644P hat nicht so viele Komparatoren, um 4 Messschieber (8
> Eingänge) nutzen zu können soweit ich das gesehen habe.

Das war auch für mich ein Grund auf die Komparatoren zu verzichten und 
die Messschieber direkt zu koppeln.

von Thomas Forster (Gast)


Lesenswert?

MosKiller schrieb:
> Liegt das wirklich am LM324, gibt es da andere Typen die am Besten
> Pinkompatibel sind aber leistungsstärker?

Ich benutze für meine Messschieber-Anzeige vier MCP6562. Jeweils einer 
für Clock und Data eines Messschiebers.
Bild: Beitrag "Re: 10stelliges 7-Segment DRO für WABECO Messschieber"

Für dich wäre dann wohl der MCP6564 als Ersatz für den LM324.

von HildeK (Gast)


Lesenswert?

Ich habe dss Thema schon eine Weile mitverfolgt und frage mich, warum 
noch kein Vorschlag kam, einen einfachen Transistor zu nehmen?
Gut, das Signal wäre danach invertiert, aber ein C14 o.ä. würde das 
wieder beheben und gleichzeitig einsauberes digitales Signal 
bereitstellen.
Eine einfache Transistorschaltung geht bei 1Mhz noch ohne 
Zusatzmaßnahmen, höchstens kann man noch ein kleines C parallel zum 
Basiswiderstand vorsehen.
Insgesamt wäre der Aufwand eher kleiner als mit einem Komparator, der 
auch bei 5V noch arbeitet und nahe GND noch fühlen kann.

von 2 Cent (Gast)


Lesenswert?

MosKiller schrieb:
> Er ist aufgebaut als Schmitt-Trigger, also am negativen Eingang liegen
> über Spannungsteiler 750 mV an, am positiven direkt der Eingang vom
> Taktsignal vom Messschieber. Man sieht deutlich, wie das Taktsignal gar
> nicht mehr auf 0V kommt und überhaupt kein Rechtecksignal ist.
Schmitt-Trigger hiesse: Mitkopplung im Nichtinvertierenden Zweig um eine 
Hysterese zu erzielen. Das hast du hier anscheinend gar nicht erst 
versucht, und das ist gut so. Du wolltest einen Komparator bauen.

Das ist dir ja auch ansatzweise geglückt, wenn auch die Slewrate, siehe 
fallende Flanke, extrem Grenzwertig ist. [auf dem Scope: langsamer, 
nicht senkrechter Anstieg und Abfall]



Vielleicht kommst du trotzdem mit einem blauen Auge davon:
Dein Hauptproblem ist die Totzeit von ca. 30us, welche der OP benötigt 
um aus der extremen Übersteuerung herauszukommen. [Auf dem Scope: die 
horizontal versetzte Antwortzeit "Dachlänge"]
Lösungsansatz:
Die Kathode der LED klemmt mit 150Ohm an GND; hau dort eine Drahtbrücke 
drüber, und ggf den anderen Widerstand verdoppeln.

Erstens hast du dann vernünftige GND-Leitungen, zweitens ist dann der OP 
nicht mehr ganz so schlimm positiv Übersteuert, und kann sich 
hoffentlich schneller erholen.

On Top: dann ggf den "Spannungsteiler 750 mV" "pimpen", um wenigstens 
ein symetrisches dreieckssignal zu bekommen.


Viel Glück!

von MosKiller (Gast)


Lesenswert?

Hallo,

so, ich habe jetzt neue OPs erhalten (THS24). Ich bekomme nun ein extrem 
sauberes Rechtecksingal, passend zum Eingangssignal. Timing passt jetzt 
(schon mal gut).

Jetzt habe ich aber ein anderes Problem, ich weiß nicht ob es am 
Messschieber liegt:

Eingestellt am Messschieber 28,61 mm. Das Taktsingal ist sauber. Das 
Datensignal hüpft hin und her. Und das jetzt direkt am Messschieber 
gemessen.
Ich frage mich jetzt ernsthaft warum?! Wenn ich doch den Messschieber 
nicht bewege, dann sollte das doch konstant sein (so wie bei den Wabecos 
auch). Warum springt das die ganze Zeit?!

Der Messschieber ist mit Masse verbunden, Batterie liegt drinnen für 
Versorgung.

von MaWin (Gast)


Lesenswert?

MosKiller schrieb:
> Das Datensignal hüpft hin und her.

Na, hoffentlich nicht um Millimeter, sondern Bruchteile eines 
Millimeters. Macht die Wabeco auch aber bei ihr wird schon digital 
zwischen mehreren Werten gemittelt, bei sub-Anzeigegenauigkeit sogar auf 
halbe Anzeigegenauigkeit und erst geupdatet, wenn die Abweichung 2 
beträgt, das macht eine ruhige Anzeige.

von MosKiller (Gast)


Lesenswert?

MaWin schrieb:
> MosKiller schrieb:
>> Das Datensignal hüpft hin und her.
>
> Na, hoffentlich nicht um Millimeter, sondern Bruchteile eines
> Millimeters. Macht die Wabeco auch aber bei ihr wird schon digital
> zwischen mehreren Werten gemittelt, bei sub-Anzeigegenauigkeit sogar auf
> halbe Anzeigegenauigkeit und erst geupdatet, wenn die Abweichung 2
> beträgt, das macht eine ruhige Anzeige.

Das kann sein, ich habe auch das Protokoll noch nicht ganz ermittelt.
Ist 2x24. Aber interessanterweise finde ich keine richtige schöne 
Dokumentation des Protokolls, nur so halbe Sachen. Kennst du da was?

Also bei den Wabeco habe ich ein absolut sauberes, hüpffreies Signal.
Bei denen jetzt schwankt es extrem, ich habe die Auswertung noch nicht 
fertig, daher kann ich dazu noch nichts sagen, hoffentlich ist das so.
Die Anzeige des Messschiebers selber ist ruhig.

von Thomas F. (igel)


Lesenswert?

MosKiller schrieb:
> Bei denen jetzt schwankt es extrem, ich habe die Auswertung noch nicht
> fertig, daher kann ich dazu noch nichts sagen, hoffentlich ist das so.
> Die Anzeige des Messschiebers selber ist ruhig.

Kann es sein dass die Botschaft abwechselnd mm und Zoll verschickt?

von MosKiller (Gast)


Lesenswert?

Thomas F. schrieb:
> MosKiller schrieb:
>> Bei denen jetzt schwankt es extrem, ich habe die Auswertung noch nicht
>> fertig, daher kann ich dazu noch nichts sagen, hoffentlich ist das so.
>> Die Anzeige des Messschiebers selber ist ruhig.
>
> Kann es sein dass die Botschaft abwechselnd mm und Zoll verschickt?

Wenn ich wüsste, was mir zeigt was Zoll und MM sind, könnte ich was dazu 
sagen. Ich finde keinerlei Aufschlüsselung der einzelnen Bits. Nur immer 
sowas halbes. Hat da keiner ein gescheites Protokoll?

von Reiner W. (reiner_w)


Angehängte Dateien:

Lesenswert?

MosKiller schrieb:
> Hat da keiner ein gescheites Protokoll?

Also beim 2x24bit Protokoll sollte es sich um das Sylvac Protokoll 
handeln. Alles Nötige findest du eigentlich hier:
http://www.powerslider.de/Diplomarbeit/Recherche/Recherche__Gruppierung/recherche__gruppierung.html

Mein eigenes Projekt liegt zwar schon einige Jahre hinter mir, habe aber 
noch einige Aufzeichnungen. Ich hatte seinerzeit das 2x24bit Protokoll 
sowie das 6x4bit Protokoll implementiert.
Soweit ich mich erinnere hatten alle neueren (Billig)Messschieber das 
6x4bit Protokoll, welches wesentlich robuster war.

MosKiller schrieb:
> Das Taktsingal ist sauber. Das
> Datensignal hüpft hin und her.

Mit dieser Aussage läßt sich wenig anfangen. Du solltest mit einem 
ordentlichen 2strahl Oszi gleichzeitig am Komparatoreingang und am 
Ausgang oszillographieren. Da kannst du schon mal sehen, ob sich die 
Signale unterscheiden.
Nach meiner Erfahrung (speziell mit dem 2x24) Protokoll kann das 
"zappeln" 2 Ursachen haben (leider auch in Kombination.

1. Die letzte Anzeigestelle zappelt. Das ist bei den alten 2x24 recht 
normal. Das kannst du dann per SW eliminieren, wenn es stört.
Allerdings waren Protokollausgabe und Anzeige dabei immer synchron. Das 
die Anzeige still steht, die letzte Stelle bei der Ausgabe aber zappelt 
ist mir nie untergekommen.

2. Dann hast du es noch (speziell beim 2x24) mit Glitches zu tun. (Bild 
1 - reale Messschieberaufnahme!)
Da kannst du technisch gegensteuern (Glitchfilter) und ggf. 
programmatisch wenn du dich tunlichst ans Protokoll hältst, wonach die 
Daten nur 1us vor/nach der positiven Taktflanke gelesen werden dürfen.
Außerdem führen stark verschliffene Flanken zu Fehltriggerungen des 
Komparator (Bild 2)

Da können dann folgende Maßnahmen helfen:
- Einstellbarer Triggerpunkt (Poti)
- kurze geschirmte Leitungen vom Messschieber

Wenn du dir den Messschieber aussuchen kannst, nimm auf alle Fälle 
neuere 6x4bit Typen.
Bei entsprechendem Aufwand gehen natürlich auch die 2x24bit Typen. Ich 
lese mit einem Controller 4 Messschieber davon simultan und das sogar im 
Fastmode.

von MosKiller (Gast)


Lesenswert?

Hallo,

danke für die Antwort. Das zappeln liegt am Messschieber 
(https://www.dropbox.com/s/r8xtbubsiidi520/VID_20180904_214541.mp4?dl=0). 
Das ist jetzt zwar nach dem Komparator aufgenommen, aber auch wenn ich 
die Anleitungen - ohne Verbindung zur Elektronik - direkt ans Osci 
anschließe, sehe ich dieses gezappel.


Die Website kenne ich bereits, nicht hilfreich.
Ich suche was, wo mir die einzelnen Bits dargestellt werden.

Bei dem Wabeco hatte ich was gefunden, wo die Bits aufgeschlüsselt sind 
(die haben 1x24 also wohl 6x4). Bei dem Salvic weiß ich nicht welche 
Bits für die Maßeinheit sind, welche für Vorzeichen etc..

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Die Website kenne ich bereits, nicht hilfreich.
> Ich suche was, wo mir die einzelnen Bits dargestellt werden.

Was genau fehlt dir den da? die Beschreibung der einzelnen Bits ist im 
Abschnitt:  2.8.3 Die Schnittstelle "System Sylvac" zu finden und die 
Abbildung 2: zeigt die die Lage der einzelnen Bits.
Also ich bin damit klargekommen.

MosKiller schrieb:
> Das zappeln liegt am Messschieber

Das könnte man nur verifizieren, wenn man Messschieberausgang und 
Komparatorausgang auf einem Bild vergleicht.

von MosKiller (Gast)


Lesenswert?

Reiner W. schrieb:
> MosKiller schrieb:
>> Die Website kenne ich bereits, nicht hilfreich.
>> Ich suche was, wo mir die einzelnen Bits dargestellt werden.
>
> Was genau fehlt dir den da? die Beschreibung der einzelnen Bits ist im
> Abschnitt:  2.8.3 Die Schnittstelle "System Sylvac" zu finden und die
> Abbildung 2: zeigt die die Lage der einzelnen Bits.
> Also ich bin damit klargekommen.
>
> MosKiller schrieb:
>> Das zappeln liegt am Messschieber
>
> Das könnte man nur verifizieren, wenn man Messschieberausgang und
> Komparatorausgang auf einem Bild vergleicht.

Das Video zeigt die MESSSCHIEBERAUSGÄNGE Takt und Daten.
Ich habe mich oben vertan mit Komparator. Das war aufgenommen, wo die 
Ausgänge vom Messschieber direkt am Osci hängen, nicht an der 
Elektronik.
Man sieht ja da deutlich wie das zappelt.


Ich verstehe irgendwie die Aufschlüsselung nicht.
Bit 23 ist Vorzeichen (1 = negativ, 0 = positiv). Die restlichen sind 
dann die Daten. Invertierte Logik.

Heißt also, ich muss einmal alle Bits 0-22 invertieren?
Und das was rauskommt, ist der Betrag? Habe ich das so richtig 
verstanden?
Woher weiß ich ob mm oder Inch?

von MosKiller (Gast)


Lesenswert?

Warum ich auch so verwirrt bin ist das hier bspw.

https://www.instructables.com/id/Reading-Digital-Callipers-with-an-Arduino-USB/?]hier
http://www.shumatech.com/support/chinese_scales.htm

Wieder ganz anders beschreiben. Soll aber auch das 2x24 Bit sein.
Und weil meiner auch noch zappelt ohne Ende habe ich keine richtige 
Basis.
Auf dem Datenblatt des Messschiebers steht aber nur 2x24 Bit Protocoll

von Reiner W. (reiner_w)


Angehängte Dateien:

Lesenswert?

MosKiller schrieb:
> Ich verstehe irgendwie die Aufschlüsselung nicht.
> Bit 23 ist Vorzeichen (1 = negativ, 0 = positiv). Die restlichen sind
> dann die Daten. Invertierte Logik.

Also auf besagter Website steht eigentlich das Nötige direkt oberhalb 
des Bildes:

...
Es werden bei jedem Datentelegramm 48 Datenbits synchronisiert gesendet. 
Diese 48 Bit sind aufgeteilt in zwei Datenworte zu je 24 Bit. Das erste 
Wort (Wort 0) enthält eine Information, welche vom Meßmittelhersteller 
zu Diagnosezwecken genutzt wird, es enthält also keine Meßdaten. Der 
eigentliche Meßwert steht in dem zweiten Datenwort und stellt den 
Anzeigeninhalt als relative Grösse zu einem am Meßmittel einstellbaren 
Nullpunkt dar. Der Meßwert ist binär in einer intern verwendeten Einheit 
codiert und wird in invertierter Logik ausgegeben. Das Vorzeichenbit ist 
das MSB (most significant bit) =Bit 23: wenn es auf "1" gesetzt ist, 
wird das Einerkomplement der Bits 0 bis 22 nebst einem Minuszeichen 
angezeigt.
...

Ob positive oder negative Flanken gezählt werden müssen, hängt davon ab, 
ob + oder - auf Masse liegt. Da ist beides möglich. Auf der Website 
liegt + auf Masse, deshalb invertierende Logic.
Bei meinen Messschiebern ist es - also positive Logik.
Mein Algorithmus sieht aus wie im Bild:
Die Daten werden ab der 26. Clock-flanke in ein 24bit array geschoben.
Nach der 49. flanke werden die Daten konvertiert falls das datagramm ok 
war (Bild Konvertierung)

Ich würde an Deiner Stelle wie folgt vorgehen:
1. Stelle den Messschieber auf 100
2. mach dir nen screenshot vom Oszi (wenn er zappelt, dann mehrere) Da 
solltest Du die 2ten 24bit Bildschirmfüllend auf dem Schirm anzeigen.
3. lese die 24bit vom Schirm ab und rechne den Wert aus. Beim Zappeln 
gibt es vlt. 2/3 Werte.
4. Vergleiche die Werte mit dem Messschieberwert

Damit überprüfst du  1. deinen Algorithmus und kannst den Begriff 
'Zappeln' durch konkrete Werte ersetzen;-) vlt. handelt es sich ja 
tatsächlich nur um die letzte Stelle.

MosKiller schrieb:
> Woher weiß ich ob mm oder Inch?

Das wird am Messschieber eingestellt. Steht der auf mm kommen halt mm 
sonst inch.

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Wieder ganz anders beschreiben. Soll aber auch das 2x24 Bit sein.

Die Bilder auf der Instructables Site zeigen aber das 4x6 Protokoll (1x6 
von 4x6 dargestellt)

von MosKiller (Gast)


Angehängte Dateien:

Lesenswert?

Reiner W. schrieb:
> MosKiller schrieb:
>
> Das wird am Messschieber eingestellt. Steht der auf mm kommen halt mm
> sonst inch.

Bei dem Wabeco gab es dafür extra ein Bit. Man ich liebe das Protokoll, 
das war echt straight forward.

Anbei mal ein Log der Daten. Das sind nicht nur die Stellen (kann ich 
auch am Osci bezeugen, vgl. auch mit Video). Da zappelt von vorne bis 
hinten alles.

Ich werde mir von einem Kumpel nochmal einen alten Sino ausleihen (hat 
auch 2x24). Mal schauen wie es da ist. Mit diesem Teil hier sterbe ich 
bald.

Bei mir ist - verbunden mit der Systemmasse, daher nicht invers.

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Bei dem Wabeco gab es dafür extra ein Bit.

Ist ja auch ein gänzlich anders Protokoll;-)

von Reiner W. (reiner_w)


Lesenswert?

Reiner W. schrieb:
> Das wird am Messschieber eingestellt. Steht der auf mm kommen halt mm
> sonst inch.

Das stimmt so nicht, hab nochmal in meinen Unterlagen geschaut.
Der Messschieber gibt immer einen internen Messwert aus, der einem 
20480zigstel Inch beträgt.

Deswegen die beiden Umrechnungsformeln je nachdem was man haben will:

Meßwert(inch) = (1/8) * (5/128) * Meßwert(intern)
Meßwert(mm) = (1/8) * (127/128) * Meßwert(intern)

Ich rechne mit mm und Integrierten, da kann man auch schreiben:

Messwert_mm = (caliperValue * 127) >> 10;

von Klaus (Gast)


Lesenswert?

Reiner W. schrieb:
> Es werden bei jedem Datentelegramm 48 Datenbits synchronisiert gesendet.
> Diese 48 Bit sind aufgeteilt in zwei Datenworte zu je 24 Bit. Das erste
> Wort (Wort 0) enthält eine Information, welche vom Meßmittelhersteller
> zu Diagnosezwecken genutzt wird, es enthält also keine Meßdaten.

Das ist so nicht richtig.

Als erstes muß man wissen, daß das kein Absolutwertgeber ist. Gemessen 
wird die relative Position zu einem unbekannten Zustand beim Anlegen der 
Versorgung. Der On/Off Knopf hat darauf keinen Einfluß, er schaltet nur 
das Display. Nach jedem Einschalten ergeben sich andere Werte.

Dieser RAW-Wert wird in den ersten 24 Bit übertragen. Jetzt gibt es aber 
einen Offset zum gewünschten Nullpunkt. Dieser wird mit dem Zero-Knopf 
bestimmt und mit dem RAW-Wert verrechnet. Das Ergebniss wird vom 
Messschieber angezeigt und in den zweiten 24 Bit übertragen. Ich habe 
nur die ersten 24 Bit benutzt und die Nullstellung im µC eingerechnet. 
Dann passt das alles ganz leicht in ein 32-Bit int. Mit einer simplen 
Sign extension kann man dann sofort mit Integer weiterrechnen.

MfG Klaus

von Reiner W. (reiner_w)


Lesenswert?

Klaus schrieb:
> Dieser RAW-Wert wird in den ersten 24 Bit übertragen.

Ja, damals wußte ich das noch nicht.

Klaus schrieb:
> Ich habe
> nur die ersten 24 Bit benutzt und die Nullstellung im µC eingerechnet.

Hätte ich wahrscheinlich auch gemacht. Aber dann kann man nur noch von 
extern mit der Elektronik nullen (was ohnehin besser ist). Nullt jemand 
am Messschieber, gibt es Probleme.

> Dann passt das alles ganz leicht in ein 32-Bit int. Mit einer simplen
> Sign extension kann man dann sofort mit Integer weiterrechnen.

Naja, das geht natürlich auch, mit den 2ten 24bit, wenn die ersten 24 
einfach überlesen werden;-)
Mit Integer weiterrechnen ist aber schon aus Speicherplatzgründen 
sinnvoll und genauer ist es außerdem.

von MosKiller (Gast)


Angehängte Dateien:

Lesenswert?

Hallo nochmal. Sorry das das so lange gedauert hat, hatte aber keine 
Zeit aktuell.


Ich habe jetzt mal ein Bild aufgenommen (eher gesagt 2). Der Bildername 
ist equal to dem gemessenen Wert (abgelesen auf der Anzeige des 
Messschiebers).
Aufgenommen immer die 2. 24 Bit von 2x24 Bit.

Ich habe versucht, händisch, erstmal das ganze zu verstehen. Es ist 
immer von links nach rechts die nachfolgenden Bits.

Bei -7,32 habe ich: 010100001110100000000000
Bei 31,72 habe ich: 110010000011100111111111

Wenn ich das in den Rechner eingebe vom PC (binär), und mit den o.g. 
Formeln umrechne, komme ich def. nicht auf die Messwerte die das Display 
anzeigt.

Was mache ich falsch?!

von Falk B. (falk)


Lesenswert?

@02.09.2018 22:10

>Liegt das wirklich am LM324,

Ja, denn das ist ein OPV mit 1MHz VErstärkungs-Bandbreitenprodukt. Als 
Komparator ist der nicht sonderlich schnell.

> gibt es da andere Typen die am Besten
>Pinkompatibel sind aber leistungsstärker?

Nimm einen ECHTEN Komparator, hier LM339. Aber auch da sollte man dem 
eine kleine Hysterese spendieren.

https://www.mikrocontroller.net/articles/Schmitt-Trigger#Schmitt-Trigger_mit_Operationsverst.C3.A4rker_oder_Komparator

von MosKiller (Gast)


Lesenswert?

Falk B. schrieb:
> @02.09.2018 22:10
>
>>Liegt das wirklich am LM324,
>
> Ja, denn das ist ein OPV mit 1MHz VErstärkungs-Bandbreitenprodukt. Als
> Komparator ist der nicht sonderlich schnell.
>
>> gibt es da andere Typen die am Besten
>>Pinkompatibel sind aber leistungsstärker?
>
> Nimm einen ECHTEN Komparator, hier LM339. Aber auch da sollte man dem
> eine kleine Hysterese spendieren.
>
> https://www.mikrocontroller.net/articles/Schmitt-T...

Das ist doch schon alles erledigt, habe ein THS24 das funktioniert 
alles.
Es hapert aktuell an der Auswertung. Sehe da keinen Zusammenhang.
Oder lieber dafür einen neuen Thread öffnen?

von MosKiller (Gast)


Lesenswert?

Falk B. schrieb:
mparator ist der nicht sonderlich schnell.
>
>> gibt es da andere Typen die am Besten
>>Pinkompatibel sind aber leistungsstärker?
>
> Nimm einen ECHTEN Komparator, hier LM339. Aber auch da sollte man dem
> eine kleine Hysterese spendieren.
>
> https://www.mikrocontroller.net/articles/Schmitt-T...

Das ist doch schon alles erledigt, habe ein THS24 das funktioniert 
alles.
Es hapert aktuell an der Auswertung. Sehe da keinen Zusammenhang.
Oder lieber dafür einen neuen Thread öffnen?

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Bei 31,72 habe ich: 110010000011100111111111
>
> Wenn ich das in den Rechner eingebe vom PC (binär), und mit den o.g.
> Formeln umrechne, komme ich def. nicht auf die Messwerte die das Display
> anzeigt.

Also, du sagst ja weder was auf deinem Messschieber stand, noch wie du 
das konkret umgerechnet hast.
Vorausgesetzt, du hast die Bits korrekt vom Schirm abgelesen, kommt nach 
der Beschreibung

http://www.powerslider.de/Diplomarbeit/Recherche/Recherche__Gruppierung/recherche__gruppierung.html

(25580*127) >> 10) = 3072 -> 30,72 mm

raus.

Sorry, seh grad, dass ja die 30,72 auch auf dem Messschieber stand. Also 
stimmt doch, wo ist das Problem?

MosKiller schrieb:
> Bei -7,32 habe ich: 010100001110100000000000

(5898*127) >> 10 = 731 -> 7,31 und bit32=0 also negativ

: Bearbeitet durch User
von MosKiller (Gast)


Lesenswert?

MosKiller schrieb:
> 110010000011100111111111

Reiner W. schrieb:
> http://www.powerslider.de/Diplomarbeit/Recherche/R...
>
> (25580*127) >> 10) = 3072 -> 30,72 mm
>
> raus.
>
> Sorry, seh grad, dass ja die 30,72 auch auf dem Messschieber stand. Also
> stimmt doch, wo ist das Problem?
>
> MosKiller schrieb:
>> Bei -7,32 habe ich: 010100001110100000000000
>
> (5898*127) >> 10 = 731 -> 7,31 und bit32=0 also negativ

Danke Reiner für deine Hilfe, ich habe aber einfach ein Brett vor dem 
Kopf.
Bitte hilf mir wie du das umgerechnet hast. Die Formeln habe ich dank 
dir.


Guck mal bitte, einfach mal jetzt der Wert für 32,72:

Ich habe dieses hier (LSbit - MSbit):
110010000011100111111111

Bit0...............Bit23


Wie kommst du hier auf 5898?!

von MosKiller (Gast)


Lesenswert?

Pardon, ich meinte 25580

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Ich habe dieses hier (LSbit - MSbit):
> 110010000011100111111111
>
> Bit0...............Bit23

Ok, also ich zitiere mal von:
http://www.powerslider.de/Diplomarbeit/Recherche/Recherche__Gruppierung/recherche__gruppierung.html

>>Der eigentliche Meßwert steht in dem zweiten Datenwort und stellt den 
>>Anzeigeninhalt als relative Grösse zu einem am Meßmittel einstellbaren 
>>Nullpunkt dar. Der Meßwert ist binär in einer intern verwendeten Einheit 
>>codiert und wird in invertierter Logik ausgegeben. Das Vorzeichenbit ist >>das 
MSB (most significant bit) =Bit 23: wenn es auf "1" gesetzt ist, wird >>das 
Einerkomplement der Bits 0 bis 22 nebst einem Minuszeichen angezeigt.
1
1. Ausgangswert               :110010000011100111111111
2
2. MSB - LSB                  :111111111001110000010011
3
3. Bit23=1 -> Einerkomplement :000000000110001111101100 = 25583
4
5
Für die -7,31:
6
1. Ausgangswert               :010100001110100000000000
7
2. MSB - LSB                  :000000000001011100001010 = 5898
8
3. Bit23=0 -> keine Umrechnung aber negativ!

Ja und dann die Umrechnung in mm:
1
Meßwert(mm) = (1/8) * (127/128) * Meßwert(intern)
2
3
oder als Integerrechnung:
4
5
(Meßwert(intern)*127) >> 10

: Bearbeitet durch User
von MosKiller (Gast)


Lesenswert?

Reiner W. schrieb:
> MosKiller schrieb:
>> Ich habe dieses hier (LSbit - MSbit):
>> 110010000011100111111111
>>
>> Bit0...............Bit23
>
> Ok, also ich zitiere mal von:
> http://www.powerslider.de/Diplomarbeit/Recherche/R...
>
>>>Der eigentliche Meßwert steht in dem zweiten Datenwort und stellt den
>>>Anzeigeninhalt als relative Grösse zu einem am Meßmittel einstellbaren
>>>Nullpunkt dar. Der Meßwert ist binär in einer intern verwendeten Einheit
>>>codiert und wird in invertierter Logik ausgegeben. Das Vorzeichenbit ist >>das
> MSB (most significant bit) =Bit 23: wenn es auf "1" gesetzt ist, wird
>>>das
> Einerkomplement der Bits 0 bis 22 nebst einem Minuszeichen angezeigt.1.
> Ausgangswert               :110010000011100111111111
> 2. MSB - LSB                  :111111111001110000010011
> 3. Bit23=1 -> Einerkomplement :000000000110001111101100 = 25583
>
> Für die -7,31:
> 1. Ausgangswert               :010100001110100000000000
> 2. MSB - LSB                  :000000000001011100001010 = 5898
> 3. Bit23=0 -> keine Umrechnung aber negativ!
>
> Ja und dann die Umrechnung in mm:
> Meßwert(mm) = (1/8) * (127/128) * Meßwert(intern)
>
> oder als Integerrechnung:
>
> (Meßwert(intern)*127) >> 10


Jetzt habe ich es verstanden. Ich danke dir vielmals!
Bevor ich das teste, noch eine kleine Frage:

Wie hast du das LSB/MSB vertauschen elegant in c gelöst?!
Gibt es da einen internen Befehl vll ?!

von Reiner W. (reiner_w)


Lesenswert?

MosKiller schrieb:
> Wie hast du das LSB/MSB vertauschen elegant in c gelöst?!
> Gibt es da einen internen Befehl vll ?!

Gar nicht ;-) Ich hatte die bits als int 0/1 in ein Array geschoben und 
dann das Array in einen uint32 geshiftet. Habe mich damals grad in C 
eingearbeitet;-)
Wenn du es direkt in c machen willst, wirst du vlt. hier fündig:
https://stackoverflow.com/questions/746171/most-efficient-algorithm-for-bit-reversal-from-msb-lsb-to-lsb-msb-in-c

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.