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.
Das ist aber kein Schmitt-Trigger sondern ein Komparator in der Beschaltung. Die Slewrate reicht nicht. Nimm einen passenden OP.
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
Manfred schrieb: > Klaus schrieb: >> Zehnerdiode > > Was ist das? Ein Schreibfehler, darfst ihn behalten 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.
Könnte man das nicht elegant mit dem Analog-Komparator des Mikrocontrollers lösen?
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.
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.
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?
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
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.
MosKiller schrieb: > Bei dem Wabeco gab es dafür extra ein Bit. Ist ja auch ein gänzlich anders Protokoll;-)
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?!
@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
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
:
Bearbeitet durch User
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?!
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
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 ?!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.