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?
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.
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.
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.
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
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.
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.
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.
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?
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?
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".
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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?
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?
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.
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..
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.
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?
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.
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)
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.
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;
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
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.
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?!
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?
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?
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
MosKiller schrieb:> 110010000011100111111111Reiner 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?!
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.
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 ?!