mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Messchieber auslesen - unbekanntes Protokoll


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.
Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Allerseits,

ich stehe gerade vor dem Problem, einen Messchieber auszulesen, den ich 
letztes Jahr bei Reichelt gekauft habe. Dieser hat ein mir unbekanntes 
Protokoll (Die Linkliste zu den Messchiebern kenne ich). Beim Anzeigen 
mit dem Analogoszi zeigt sich ein Bild ähnlich dem von Nick Müller unter
http://www.yadro.de/digital-messleiste/protokoll.html
beschriebenen. Taktsignal ist in der von Nick beschriebenen Art 
vorhanden, Datensignal ebenfalls.
Aber: Es sind nur 6 * 4 Bit (Statt 7 * 4).
Und: Die Werte der Blöcke (so wie ich sie interpretiere) haben nichts 
mit meinem eingestellten Wert (123,45 mm) zu tun.

Frage: Ist einem von Euch ein derartiges Protokoll schon mal über den 
Weg gelaufen? Wie ist dieses zu interpretieren? Kann es sein, dass hier 
bei steigender und bei fallender Flanke ausgelesen wird oder nicht jeder 
Block einen diskreten Wert abbildet?

Autor: Tip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ändere doch mal vorsichtig den eingestellten Wert und verfolge das auf 
dem Oszilloskop. Wenn deine Daten schon in der Länge nicht zu dem im 
Link beschriebenen Protokoll passen, wären ein paar Bilder mit 
zugehörigen Werten von DEINEM Meßschieber sehr hilfreich. Geeignet 
gezoomt sollte das mit den Flanken rauszukriegen sein.

Autor: Siggi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die gute Antwort :-)

Durch den Vergleich der Werte sieht man auf Anhieb, dass das Vorzeichen 
im letzten Block übertragen wird. Ich habe die einzelnen Blöcke (ich 
habe sie hier Paket genannt) mal in ein PDF gesetzt. Bitte entschuldigt 
die üble Formatierung...
Ein Fachmann sieht vielleicht schon auf den ersten Blick, wie die 
Übertragung läuft. Ich bin leider derzeit keiner :-(

Ein langsames Verändern der Werte mit gleichzeitiger Beobachtung auf dem 
Schirm macht mir etwas Probleme, da ich entweder nicht genug vom Signal 
sehe oder es so sehr flimmert, dass mir das Gefühl für die Veränderungen 
fehlt.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fleißig, fleißig... Da weiß ich meine Print-Screen Tast am Oszi richtig 
zu schätzen ;-)

Die Signale sehen so aus, als ob eine Übernahme der Daten (untere Kanal) 
mit der steigenden Flanke vom Takt (oberer Kanal) vernünftig ist.
Für -123,45 würde man damit ablesen
Paket 1..6: 0110 0011 1111 0011 1111 0111

Naheliegen wäre, dass der übertragene Wert für 0.00 auch 000000 ist, 
woraus man auf Invertierung der Daten schließen würde. Das Vorzeichenbit 
im 6.ten Paket deutet weiter drauf hin, das im dem Paket das LSB steckt.

Vielleich würde man mit den Daten zu anderen Meßwerten, z.B. 1 mm und 
25.4 mm ncoh etwas mehr sehen.

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja, eine "Print Screen"-Taste hat mein Oszi nicht. Aber er leistet 
trotzdem hervorragende Dienste. Ist halt nicht mehr der Jüngste, aber 
ein sehr hochwertiges Gerät.

An die Auswertung steigender Flanken hatte ich auch bereits gedacht, da 
diese nicht ganz so nah am Rand der Signalflanken liegen.

Mit Signalinvertierung ergibt sich für -123,45 (v.l.n.r):
1001|1100|0000|1100|0000|1000

12345 ist binär 0b11000000111001, was genau den ersten 14 Bit des 
Signals entspricht, LSB zuerst.

Nun ist anzunehmen, dass
- kleinere Werte ebenfalls immer am Anfang des Telegramms angeordnet 
sind, womit der 0er-Block kurz vor dem Ende größer wird
- größere Werte ebenfalls am Anfang dargestellt werden, womit die Nullen 
aufgezehrt werden
- angenommen, es stehen die ersten 20 bit für die Werte zur Verfügung, 
würde das eine höchste Dezimale Zahl von 1048575 erlauben, wesentlich 
mehr als notwendig...

Den letzten Punkt kann ich schwerlich prüfen, für die anderen beiden 
werde ich mal kleine und große Werte einstellen.

Das Vorzeichen liegt auf Bit 25.

Das Bit für die Einheit sollte (so vorhanden) ebenfalls leicht zu finden 
sein.

Vielen Dank für die konstruktive Hilfe =)
Im Prinzip liegt es so einfach vor einem. Aber irgendwie war ich 
blind...

@Matthias: Du hattest so weit schon durchgeblickt und wolltest nur noch 
etwas eigenes Nachdenken fördern, oder?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siggi schrieb:
> @Matthias: Du hattest so weit schon durchgeblickt und wolltest nur noch
> etwas eigenes Nachdenken fördern, oder?
Nein, ein bisschen gepuzzelt.

Das sieht doch so aus, als ob mit den Daten etwas anzufangen ist. Ich 
bin gespannt, ob sich die Interpretation bei anderen Werten bestätigt. 
Mit ein paar nicht genutzen Bits kann man leben ;-)

Wenn das klappt, fehlt nur noch der kleine µC, der das Signal 
automatisch dekodiert.

Autor: Siggi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe nun einige Werte durchgespielt. Das beschriebene Schema 
funktioniert auch bei allen anderen, von mir eingestellten Werten.

Anhand der mir vorliegenden Informationen habe ich eine kleine 
Protokollbeschreibung erstellt. Vielleicht hilft sie jemandem weiter, 
der einen solchen Messschieber ebenfalls besitzt. Das sollte etwas 
übersichtlicher sein, als einen kompletten Thread durchzuarbeiten.
Ich hoffe, ich habe nichts Wichtiges vergessen. Falls doch, bin ich für 
Ergänzungen dankbar.

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grüss dich Siggi,

also hier mal ein Link der das Thema ausführlich behandelt:

http://www.settorezero.com/wordpress/protocolli-seriali-utilizzati-dai-calibri-digitali-analisi-del-protocollo-1x24/

ist aber auf Italienisch...

Ich habe soeben eine Platine zum Auslesen dieser Messschieber entwickelt
die ich buchstäblich gerade dabei bin zusammenzulöten.
Ich habe 'eh vor diese aufs Netz zu geben falls es dich interessiert
sende ich dir das Teil per email zu mit ein paar Erklärungen.
Auf dem Steckboard habe ich's schon getestet und weiss dass es funzt.
Im Grunde wird die Information in 3x8Bit Schieberegister geschoben
und dort gespeichert bis der AVR sich die Mühe macht die Daten zu holen.
So können fast beliebig viele Messschieber angeschlossen werden ohne
dass es dabei zu Konflikten zwischen dem Timing der einzelnen Schieber 
kommt.

So long: Hermann

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja hab ich vergessen:
Im Gegensatz zum Sylvac Protokoll (2x24bit) bzw 4x7BCD Protokoll werden 
die Datenbits hier bei steigenden Flanken der Clock gelesen ...

Autor: Ole E. (olebowle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Siggi und Hermann,

habt ihr es eigentlich hin bekommen, denn Wert des Messschiebers zu 
Nullen oder den Mode umzuschalten à la 
(http://www.shumatech.com/support/chinese_scales.htm#Hold%20and%20Fast%20Reading)?
Das funktioniert bei meinen nämlich nicht. Ich nulle jetzt per Software. 
Das Auslesen geschieht bei mir nur mit einem Atmega, ich brauch eh nur 3 
Messschieber. Die Pegelwandlung läuft bei mir über NPN-Transistoren mit 
Basisvorwiderstand und Pull-Up im Mikrocontroller. Dann ist das Signal 
zwar invertiert, aber das juckt mich nicht, muss ich halt auf fallender 
Flanke auslesen und den Wert invertieren. Wie habt ihr das gelöst?

Grüße Ole

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gute Frage !

in meinem Fall mit "brute force": wie gesagt habe ich soeben eine 
Platine fertiggestellt wo ich die Schieblehren mit 2x24 und 1x24 
Protokoll auslesen kann. In einem gewissen Sinn hast du mit deiner Frage 
einen wunden Punkt angesprochen (den ich ach noch nicht vollständig 
getestet habe), ich geb' dir dennoch mal meine Sicht der Dinge:
Chinesische Schieblehren fressen ca. 18 uA an Strom ( wenn du willst 
kann ich dir den entsprechenden Artikel am Montag ausgraben). Um die 
Schieblehren mit Strom zu versorgen benutze ich zwei in Reihe 
geschaltete Dioden die über einen 1-2Kohm- Widerstand an den 3.3V meines 
AVR's hängen. 2x0.7V = 1.4 was als Spannungsversorgung ausreicht.

Nun zu deiner Frage: In der Tat lassen sich die Schieblehren wohl nicht 
nullen (hab' zumindest keinen Weg gefunden) der Trick den ich aber 
verwenden will ist die Schieblehre direkt von einem AVR Pin über die 
zwei Dioden (in Reihe mit dem besagten 1-2kohm Widerstand) mit Spannung 
zu versorgen und dadurch zu Nullen dass ich dem Teil einfach den Saft 
abdrehe.

Ein AVR Pin liefert flockige 20mA also weit mehr als die notwendigen 
18uA
die die Schieblehre zieht. Ein Rücksetzen der Schieblehre wäre also 
nicht mehr als ein Nullen des AVR pins. Wenn man verhindern will das bei 
einem Reset (watchdog) des AVRs die Schieblehre auf Null geht besteht 
noch die Möglichkeit eine dritte Diode mit dem Widerstand in Serie zu 
schalten und die 2x0.7V der zwei "unteren" Dioden mit einem dicken Elko 
zu versehen. Diese dritte Diode verhindert das beim Reset des AVRs der 
Saft rückwärts fliest. Im Klartext heisst das dass beim Reset des AVR 
(einige ms) die Spannung am Schieber erhalten bleibt. Ein echtes Nullen 
wird dann dadurch erzielt dass der entsprechende AVR Pin lange genug 
nieder gehalten wird bis die Spannung weit geung abgefallen ist um die 
Schieblehre zu nullen.

Ich hoffe meine Ausführung ist verständlich ....

Grüsse:  Hermann

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch 'ne Frage (an Olé):

Wie liest du deine 3 Schieber aus ? Per Interrupt ?
Was mich davon abgehalten hat die "Interrupt Lösung" wie sie im Forum 
präsentiert worden ist zu verwenden ist die Vorstellung das zwei 
Messschieber phasengleich senden und der AVR  dann kapituliert. Ich will 
die Messschieber als Encoder für meine Heliostaten verwenden, da muss 
ich sicher sein dass die Teile zumindest 12 Stunden am Tag Jahraus 
Jahrein fehlerfrei funktionieren !

Also wie regelst du das ?

Grüsse:  Hermann

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmals an Ole !

Umschalten à la Fast/Slow Modus ist wahrscheinlich nicht drin. Wenn ich 
das Timing richtig interpretiere, haben die Chinesen mit dem 1x24 
Protokol wohl einen Kompromiss gesucht. Die klassischen 2x24 bzw 4x7 
Protokolle laufen mit ca. 3 Bursts pro Sekunde im langsamen Modus und 
wenn ich mich recht erinnere mit ca 50 Bursts im schnellen Mode.
Die 3x8 Schieber (um die's hier ja geht) senden ca alle 185 ms also 5-6 
mal pro Sekunde - damit zwei mal schneller als die Andern im "slow 
mode". Eben ein Kompromiss zwischen den zwei Modi in meinen Augen.
Ich denke die andern Protokolle werden eh' bald aufhöhren zu existieren 
weil das 1x24 Protokoll einfach simpler ist.

ps: Hab' vorhin vergessen zu sagen dass der Schieber natürlich mit den 
besagten 2 Dioden parallel und nicht in Reihe geschaltet werden muß !

Autor: Ole E. (olebowle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hermann,

Hermann E. schrieb:
> ( wenn du willst
> kann ich dir den entsprechenden Artikel am Montag ausgraben)

ja der würde mich interessieren, ebenso wie deinen Schaltplan.

Das Auslesen der Messschieber geschieht bei mir mit drei ext. Interupts 
(CLK-Leitungen). Falls die wirklich mal Phasengleich sein sollten, 
könnte das in der Tat ein Problem geben. Hatte bis jetzt aber nie 
Probleme damit, weil die bei meinen Tests auf dem Breadbord alle noch 
eigenständig von ihren Batterien versorgt wurden. Wenn ich die nun aber 
alle zentral versorge könnte das ein Problem geben, weil sie ja zugleich 
an geschalten werden.
Mögliche Auswege (ich hab meine Leiterplatte schon geätzt und will an 
der HW möglichst nix mehr drehen):
- probieren und hoffen, dass es trotzdem geht ;-)
- Verwendung unterschiedlich großer Stützkondensatoren direkt in den 
Batteriefächern der Messschieber (die Benutzung der Kondensatoren hatte 
ich eh vor, weil die Werte dann stabiler sind), somit sollten die 
Messschieber nicht zur selben Zeit angehen und keine Phasengleichheit 
aufweisen (die werden über die Zeit eh wegdriften)
- immer nur einen ext. Interrupt aktivieren und sich so von einem zu 
anderen Messschieber durchhangeln (unschön, weil ich da bestimmt Werte 
verliere)
- oder nested interrupts, in dem ich das I-Bit in SW direkt nach 
betreten der ISR setze

Hermann E. schrieb:
> Ich hoffe meine Ausführung ist verständlich ....

Ja ich denk das mit den 2 bis 3 Dioden hab ich soweit verstanden. Man 
muss halt nur drauf achten, dass die Dioden auch wirklich die 0,7V 
erreichen. Wenn ich das aus deiner Beschreibung entnehme wärst du ja bei 
ca. 1-2mA der dann durch die Dioden fließt. Welche Dioden benutzt du da, 
die bei solchen Strömen schon 0,7 Volt aufbauen?
Hab ich das richtig verstanden, dass die Entladung der Kapazität dann 
über den Messschieber geschieht?

Ich will die Schieber mit nem LM317 versorgen, der so ziemlich genau 
1,55V liefert. Mir kam es nämlich immer so vor, dass die Schieber 
weniger "gewackelt" haben, wenn die Betriebsspannung schön hoch war.

Grüße Ole

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grüss dich !

War heute morgen zum Gleitschirmfliegen unterwegs (ja ja es gibt auch 
noch
andere Aktivitäten, war aber nix da das Wetter hier in Frankreich gerade 
am kippen ist) daher eine etwas verspätete Antwort.

Was die Dioden angeht sind dies stinknormale  1N4841, das Billigste vom 
Billigen, die ich habe sind aber schon über 10 Jahre alt liefern aber 
mit beschriebenem System sogar 1.54 V - besser geht's nicht. Im Grunde 
ist es einfach nur die normale I-U Kurve jeder x-beliebigen Si-diode die 
bei ca 0.7V (in Durchlassrichtung) leitend wird
Falls Du mit zwei Dioden nocht nicht die 2x0.7V hast kannst du noch 'ne 
Germanium diode zu den zwei in Serie schalten. Ge-Dioden fangen bei ca. 
0.2V an leitend zu werden, also 2x0.7+0.2V = 1.6, geht auch !
Ich hatte ursprünglich auch den LM317 vorgesehen, das Problem ist aber 
das dieser mit einer Mindstlast beansprucht werden muss um korrekt zu 
regeln (wenn ich mich recht erinnere mindestens 40mA von 100 max !).
Meine Heliostaten sollen mit Solarpanels betrieben werden da ist 
Energiesparen sowieso oberste Pflicht und ich geize daher mit jedem mA.

In der Tat, du hast meine Ausfühung richtig interpretiert, Das Entladen 
der
Elko's erfolgt über die Messschieber selbst, dadurch ist auch die 
Wartezeit definiert die für ein Rücksetzen notwendig ist.

Eigentlich wollte ich die Dateien meiner Platine hier anhängen, leider 
ist aber die Schaltplanzeichnung (eagle) so in die Länge gezogen das ich 
sie in 3 Bilder splitten müsste um noch lesbar zu sein. Dies ist dann 
komplett unübersichtlich Leider darf man (meines Wissens) keine eagle 
Dateien direkt hochladen.
Ich versuche mal 'ne Dummy mail an deinen Namen zu schicken. Falls du 
die mail kriegst und darauf antwortest schicke ich die die Eagle Dateien 
direkt mit Erklärung zu.

Gruss:  Hermann

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hermann E. schrieb:
> Leider darf man (meines Wissens) keine eagle Dateien direkt hochladen.

Eigentlich beschweren sich da nur die Nicht-Eagle-Nutzer, dass sie die 
Dateien dann nicht lesen können, was dem Forumsgedanken widerspricht. 
Wenn man parallel auch ein PDF hochlädt, ist für jeden was dabei ;-)

Gruß Matthias

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

wüsstest du wie ich eine Eagle Datei als .pdf exportieren könnte ?
Ein Screenshot hilft wie gesagt wegen der fehlenden Auflösung auch nicht 
weiter.
Falls ein Moderator in dieses Posting reinschaut: isses eigentlich 
verboten
(Urheber bzw Lizenzrechte ??) Eagle Files einzustellen ?

Hermann

Autor: Hermann E. (hermann_e)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab's gefunden und angehängt !

bin eine wenig in Eile, Erklärungen später.

Hermann

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zuerst mal die Eingangsbemerkung: Beim Abspeichern des Schaltplans hat 
mir Eagle die erste und zweite "Seite"
vertauscht. m.a.W. sollte die zweite Seite oben und die Erst unten sein.
Da ich mein Heliostatenprojekt später ins Internet stellen will nehmt 
mir bitte nicht übel wenn ich die Beschreibung in Englisch mache, 
2xschreiben ist dann doch zu viel:

Here we go: The supply voltage can be varied between 3 and 5.5V without 
any change in the behaviour of the circuitry.
The two non-inverting comparators have their switch points/hysteresis 
set to 0.5 and 1V - well centred with respect to the 0-1.5V of the 
caliper. The 10kohm resistors at the comparator output pin should be 
replaced by 1 or 2kohm if low power consumption is not an issue (steeper 
edges).
The outgoing signal is Nanded with the gate signal provided by the first 
4538N monostable multivibrator.
The gate signal is about 18-20ms long , about 20% longer than the data 
burst of the caliper (15ms).
The clock driving the following shift registers is blocked outside this 
gate period and inverted by the Nand IC1B .
The output  is fed directly into the following Nand IC1D together with 
the output of an AVR pin.
The AVR pin can either block the arrival of the caliper clock signal or 
- even more importantly - act as a clock itself
for the later readout of the data.
Provided the AVR pin is low, the clock signal with pass the Nand gate 
again and undergo a second inversion ending up in its original pulse 
train. This pulse train is fed into the following three 74HC164 shift 
registers. The data bits will be read into the shift register at the 
rising edge of the (caliper) clock signal provided that the B port of 
the first shift register is high what is ensured by the same gate signal 
as before - just as it should be.
After 24 clock pulses the data is stored in the 3 shift registers (24 
bit) and can now be read by the AVR using the AVR line mentioned above.
For the following discussion I define Q1 as the exit of the first 
multivibrator and Q2 being the exit of the second.

How does the AVR know that the data is new and ready ? Simply by 
interrogating Q1 of the first multivibrator. Q1 is high meaning new data 
will be ready "soon" ! How is "soon" defined ? Well, upon the falling 
edge of the first multivibrator the second mutivibrator is triggered and 
provides a second ca. 150ms long pulse meaning: "read me now" !
The Nand gate IC1C is there to prevent a re-triggering of the 
multivibrator since the 4538N is re-triggerable. Therefore the shift 
register will not accept new data (to suppress spurious clock/data 
peaks) as long as the 15+150ms hat functions are not elapsed. C1 and R2 
are there to prevent that IC1C sees any gap between the two hat 
functions which may occur as  Q1 falls before Q2 rises..
The two hat pulses are set by C4 and R4 (15ms) and C2+R3 for the 150ms 
gate signals respectively.
A word of warning: I intend to employ the device for outside use 
(-20-+40°C). The mentioned R/C pairs should therefore be stable in temp 
and time , essentially excluding the use of ceramic capacitors. Use 5% 
foil capacitors and metal-oxide resistors instead !
The resistors The values of R2,R4 and R4 are only roughly right, they 
should be selected to provide the 18/150ms - therefore the exclamation 
marks in their values. Use a scope to do so. .
To summarize: Q1 high tells the uC: new data ready soon, Q2 high means: 
read me now ! Checking Q2 on "Still being high" after reading ensures 
that the data read is really a new set of data which has been read 
correctly . Q1 can also be prolonged in case of a slow uC or feed into 
the interrupt pins of the uC to force an update of the "new data read" 
info. Q1 essentially ensures that the data is only read ones and that 
erroneous clock spikes are blocked.

Before I conclude  I'm want to reveal the last bits of information 
missing for the full understanding of the scheme:
! Mind D6 and D7 ! They are either/or, never use both !! Using D6 (no 
D7) means that the caliper is powered by the 3-5V of the board. D3+D5 
ensure a voltage drop of about 1.4 = 2x0.7V, enough to drive the caliper 
(they only suck about 18uA of current). If this is not enough add a 
Ge-Diode in series adding another voltage drop of 0.2V
!! Do not use R10 ! I put this one in as reminder for myself (for future 
development purposes), just leave it out.
Now: Using D7 instead of D6 means that the power will be provided by the 
uC. An AVR pin can provide about 20mA whereas the caliper/Diodes only 
pull about I=U/R = (4-1.4)V/10kOhm = 260uA -> No problem. Zeroing of the 
caliper simply means putting this AVR pin low for a while till the 
caliper supply voltage has collapsed.

Last not least: R8 + R32: Do not use them with calipers using a 6 Nibble 
(24Bit) format. They are only meaningful when using a caliper with a 
Sylvac protocol. A Sylvac protocol consists of 2*24 bit data words. The 
first 24 bits contain information that most of the people don't use, so 
letting the first 24 bits fly through the shift registers will only 
retain the ("useful") second 24Bit data word. These calipers have 
however the advantage that they can be zeroed and put into a fast mode. 
It's only in this case that the two resistors should be used. Since for 
this type of caliper the data should be read on the falling edge of the 
clock I've added the jumper option JP1 and JP2 to invert the clock 
signal once more.
Be however aware that the timing will be completely different (they are 
much faster). R4 and R3 (or the corresponding C's) take very different 
values in this case although the overall logic still holds.

A last word to the (rare) 7 Nibble format (Aldi format): Since this 
format is based on 28bits it would require an additional shift register 
to use this circuit idea.

Good luck:  Hermann

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Umschaltung zwischen (so vorhanden) Slow- und Fast-Mode habe ich 
noch nicht durchgeführt, steht aber auf dem Plan.

Die Pegelwandlung möchte ich über einen Komparator durchführen. Die 
Verzögerung von < 1 µs sollte eigentlich kein Problem darstellen.
Die Transistoren-Lösung hat aber durchaus auch ihren Charme...

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Siggi,

unsere Beiträge haben sich wohl gekreuzt, dadurch kann ich meine 
Englischfehler nicht mehr ausbügeln, hoffe die Erklärung ist aber 
dennoch halbwegs klar ...

Hermann

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch 'n letzter Beitrag, dann höhr' ich für heute auf: Die Info über den 
Stromverbrauch der Teile findet man hier:

http://www.davehylands.com/Machinist/Caliper-Batteries/

à la prochaine:  Hermann

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ole E. schrieb:
> habt ihr es eigentlich hin bekommen, denn Wert des Messschiebers zu
> Nullen oder den Mode umzuschalten

Das Nullen funktioniert, wie Hermann es schon angedeutet hat, nicht. Man 
könnte aber zum Nullen:
1. eine Leitung Leitung am Nullen-Taster (Zusatzpad) anlöten. Durch die 
Gehäuseöffnung kriegt man genau ein 6-poliges Flachbandkabel durch und 
hätte daher genug Leitungen zur Verfügung.
2. die Stromversorgung über einen µC-Pin steuern (hatte, glaube ich, 
schon irgendwer vorgeschlagen).
3. per Software den Wert des Nullenzeitpunkts im µC vom aktuellen Wert 
abziehen. Dies führt allerdings dazu, dass das Display dann ziemlichen 
Mist anzeigt.

Die Existenz eines "Fast-Mode" ist mir bisher nicht bekannt.


@Hermann: Du hast in deinem englischen Text bereits einen Messchieber 
mit "6 Nibble Format" erwähnt, auf den Du aber nicht weiter eingehst. 
Der mir vorliegende Schieber  scheint ja ein solcher zu sein. Was weißt 
Du außer dem bereits Erwähnten sonst noch über diese Klasse von 
Schiebern?

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe,

wie gesagt ist der Artikel:

http://www.settorezero.com/wordpress/protocolli-seriali-utilizzati-dai-calibri-digitali-analisi-del-protocollo-1x24/

derjenige der das Thema ausführlich behandelt. Falls dir die Sprache 
Dantes Probleme bereitet hier die Quintessenz:

Wenn du einen uint32_t (zb "uint32_t Myvar") definierst muß das erste 
Bit der Datenleitung in das "Nullste Bit" von Myvar eingeschrieben 
werden. (wenn du willst lass ich dir morgen den AVR Code-Schnipsel 
zukommen, bin gerade noch in der Arbeit und hab' meiun Programm nicht 
da)
Dann das zweite Bit in Myvar[1] und so weiter (die []-Schreibweise ist 
natürlich nur symolisch da Myvar kein Array ist).
Höhre beim 20-ten Bit (Myvar[19]) auf.
Bit 20 enthält das Vorzeichen (1= Negativ, Null Positiv). Die zu 
messende Distanz ist damit einfach als Binärzahl codiert (kein 2-er 
Komplement !) und kann mit iota einfach in ASCII (und damit mundgerecht 
zum Ansehen) umgewandelt werden. Myvar kannst du dann in einem signed 
(!) int16 abspeichern da 16 bit Zahlen bis ca. +/- 32k (dezimal) halten 
können.  der (150mm) Messchieber kommt ja nie über +/- 15000 hinaus. Im 
Falle einer negativen Zahl (Bit 20 = 1) die int16 Zahl dann natürlich 
dann mit -1 multiplizieren !

Es gibt kein Komma, mit anderen Worten ist die Zahl in Vielfachen von 
1/100 mm gegeben (15000/100) = 150mm = 15cm.

Bit 21  und 22 erhalten keine Daten (immer Null) während das letzte Bit 
(23) angibt ob mm oder inch (0 = mm, 1 = inch).
Bei "inch" ändert sich das Datenformat insgesamt, ist aber für uns 
glückliche Europäer (die Engländer zählen ja bekanntlich nicht dazu) 
kein Problem. Aus dem (Stromunterbrechungs-) Reset kommt der Messchieber 
sowieso immer nur in mm (Grundeinstellung) wieder hoch.
Hoffe das hilft dir weiter !

Last not least: Nullen. Deine Lösung hatte ich mir auch überlegt, gefiel 
mir aber nicht da ich dann noch mit einer weiteren 
Kabeldurchführung/Lötung rumhantieren muss (vom Anlöten der Drähte ganz 
zu schweigen). Ich habe vor - wie im obigen Artikel schön illustriert - 
eine kleine Buchse anzulöten und fertig !

Mein Board funktioniert sowohl mit dem Sylvac wie auch mit dem 6 Nibble 
Protokoll wie gesagt brauchts bei 7 Nibbles noch 'n Schieberegister mehr
um zu funktionieren.

Bonne chance:  Hermann

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, Hermann, Danke!
Mit der Sprache hatte ich in der Tat so manches Problem.

Gibt es vielleicht zweireihige Buchsen, die da reinpassen würden? Dann 
hätte man mehr Kontakte.

Der Stromunterbrechungs-Reset behagt mir nicht sonderlich (wenn auch 
sehr einfach) und das Nullen per Software hilft einem nicht gegen die 
Standby-Abschaltung. Dann ist nicht nur das Display tot, der Schieber 
überträgt dann auch keine Daten mehr. So gesehen wäre mehr Leitungen 
nicht verkehrt.

Autor: hermann_e (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein !

Der Schieber schaltet zum Power-Save nur das Display aus (zumindest in 
meinem Fall)
Die Daten kommen nach wie vor !

Grüsse:  Hermann

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch 'ne Frage: Hast Du 'ne 1.5V oder eine 3V Batterie ?
Meine Erfahrung ist die dass Messschieber mit 1.5V beim Abschalten keine 
Daten verlieren (hab' zumindest nie welche mit solchem Verhalten in der 
Hand gehabt) die mit 3V aber schon.

Du kannst das mit dem Oszi einfach testen(Selbstabschaltuing abwarten 
und sehen ob er noch sendet). Ein weiterer Test ist den Schieber auf zB. 
10mm zu stellen und warten bis er abschaltet. Dann auf ca 20mm 
verstellen
und wieder anschalten. Wenn er dann (ungefähr) 20mm anzeigt heisst das 
das er auch bei abgeschaltetem Display (Sleep mode) weitermisst und 
läuft.
Das die Schieber auch mit abgeschalteter Anzeige aktiv bleiben wird auch 
so in dem Artikel über den Stromverbrauch beschrieben.
Kannst du das Abschaltverhalten deines Schieber schildern (wenn 
getestet) ? Würd' mich interessieren !

Hasta la proxima vez:  hermann

Autor: Ole E. (olebowle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich mich recht entsinne, senden meine Messschieber nicht wenn 
man sie ausschaltet (auch wenn sie selbsttätig in den Standby-Modus 
gehen). Gibt es da überhaupt einen Unterschied zwischen Aus und Standby?
Ach und zum zweiten Test: Meine Schieber gehen automatisch an, wenn man 
sie bewegt.
Kann das aber leider bis nächstes WE nicht überprüfen, weil die gerade 
sonstwo sind.

Grüße Ole

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessant, ich denke das dein Messchieber nicht wirklich schläft, wie 
soll er denn sonst durch eine rein mechanische Veränderung (kein 
"elektrischer" Knopf gedrückt) aufwachen ? Dies impliziert natürlich 
nicht daß er auch sendet wenn er im "Power Safe" Modus ist.
Im Ganzen ist dieser Mode eh' ein Witz, das Display kostet Null an 
Energie,
ist in meinen Augen nur mit psychologischer Wirkung. Dies steht auch so 
in dem Artikel:
http://www.davehylands.com/Machinist/Caliper-Batteries/
den ich oben eingestellt hatte.

Waiting for more news:  Hermann

Autor: Babel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei welcher Gelegenheit eignet man sich 4 Sprachen an? Zweisprachig 
aufwachsen, noch eine in der Schule, und die 4.?

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zweisprachig aufwachsen (schwäbisch und Deutsch) Englisch in der Schule,
20 Jahre in Frankreich wohnen (+ französische Freundin), Italienisch zum 
Spass lernen (und gezielt Zusammenarbeit mit Italienern im Beruf 
organisieren), Spanier als Mitarbeiter haben und in einem 
internationalen Forschungszentrum arbeiten wo Englisch die offizielle 
Sprache ist.

Autor: Babel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut! Danke für die Auskunft.

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zero Blemo

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hermann E. schrieb:
> Noch 'ne Frage: Hast Du 'ne 1.5V oder eine 3V Batterie ?
> Meine Erfahrung ist die dass Messschieber mit 1.5V beim Abschalten keine
> Daten verlieren (hab' zumindest nie welche mit solchem Verhalten in der
> Hand gehabt) die mit 3V aber schon.
>
> Du kannst das mit dem Oszi einfach testen(Selbstabschaltuing abwarten
> und sehen ob er noch sendet). Ein weiterer Test ist den Schieber auf zB.
> 10mm zu stellen und warten bis er abschaltet. Dann auf ca 20mm
> verstellen
> und wieder anschalten. Wenn er dann (ungefähr) 20mm anzeigt heisst das
> das er auch bei abgeschaltetem Display (Sleep mode) weitermisst und
> läuft.
> Das die Schieber auch mit abgeschalteter Anzeige aktiv bleiben wird auch
> so in dem Artikel über den Stromverbrauch beschrieben.
> Kannst du das Abschaltverhalten deines Schieber schildern (wenn
> getestet) ? Würd' mich interessieren !

- Mein Schieber hat eine 1,5V-Batterie

- Sobald er das Display abschaltet, wird das Oszi-Bild tot. Nach dem 
Wiedereinschalten sind die Pakete wieder zu sehen.

- ich meine, wenn man ihn im abgeschalteten Zustand bewegt, schaltet er 
das Display und die Datensendung unmittelbar wieder ein. Er vergisst 
auch die Position nicht (meine Erinnerung, habe es jetzt nicht extra 
geprüft).
So gesehen liegt Dein Artikel vollkommen richtig.

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Siggi !

Muss' mal meinen Park an Schieblehren daraufhin überprüfen,
Ich geb' dann entsprechende Rückmeldung !

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der erste Test war niederschmetternd: In der Tat schaltet das Teil
nach wenigen Minuten nicht nur das Display sondern auch das Senden der 
Daten ab.
Für meine Nutzung ist das eher übel da es mich dazu zwingt weitere AVR 
Pins einzig und allein zum Wiederanschalten/am Laufen halten  zu 
vergeuden.
Mit 1 kohm kurzzeitig  zwischen "Nullungskontakt" zur Masse weckt das 
Teil wieder auf (ohne Positionsverlust), verlangt aber wie gesagt 
weitere Steuerleitungen. Ich vermute mal dass die in irgendeinem 
chinesischem Entwicklungslabor mitgekriegt haben dass ihre Schieber viel 
mehr verbraucht haben als Mitutoyo und Companie und die Reaktion jetzt 
Sparen allerorten heißt.
Falls ich morgen den Nerv habe werde ich noch meine ca 1 1/2 Jahre alten 
Schieber mit selbigen Protokoll daraufhin untersuchen.

Dosvidanja:  Hermann

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ich noch nicht ausprobiert habe, was aber möglicherweise 
funktionieren könnte: Den Kontakt dauerhaft geben. Mit dem Strom anlegen 
schaltet er sich ja immer ein. Mit etwas Glück geht er nach dem 
dauerhaften Brücken des Einschalters nicht mehr aus.

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für dein Update !

Vor ein paar Tagen habe ich genau mit der Art wie du geschrieben hast 
rumexperimentiert, is' aber nix dabei rausgekommen.
Ich befürchte es bleibt nur ein regelmässiges Aus- und wieder 
Einschalten ..

Saluti:  Hermann

Autor: Ole E. (olebowle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich doch recht erinnert: Meine Messschieber gehen sofort an, 
wenn die Schieber bewegt werden. Vielmehr ist es tatsächlich so, dass 
lediglich das Display ausgeschaltet und die Kommunikation nach außen 
eingestellt wird.

Ich habe mal ein paar Strommessungen durchgeführt (bei 1,55V):
On: 18,8µA
Off:22,5µA
Tastendruck: 47,3µA

Natürlich hängt der On-Verbrauch von der Anzahl der geschalteten 
Segmente ab. Der "hohe" Verbrauch während der Tastendrücke ist 
vermutlich auf Pull-Up Widerstände zurückzuführen.
Nach 4min schalten sich meine Messschieber "aus".
Im Grunde lässt sich sagen, dass das automatische Ausschalten mehr 
Probleme bereitet, als es Vorteile bringt (die ~4µA machen das Kraut 
auch nicht fett).

Grüße Ole

Autor: Dietrich L. (dietrichl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ole E. schrieb:
> On: 18,8µA
> Off:22,5µA

Sowas habe ich auch schon gemessen; das ist wohl Marketing-Verarschung: 
der Kunde meint, er schaltet das Ding ab. Und er wundert sich dann, dass 
nach Einschalten der Nullpunkt noch stimmt und denkt: was für ein 
hochwertiges Gerät, hat einen Absolutgeber! Der kostet doch sonst sehr 
viel mehr!
Und nach einem halben Jahr ist die Batterie leer...

Gruß Dietrich

Autor: Ole E. (olebowle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Werte für On und Off sind natürlich vertauscht. ;-)

Gruß Ole

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann dir nur zustimmen,
das Abschalten ist reine Augenwischerei !

Danke für die Testwerte, die liegen ja um 20 uA so wie
der oben von mir gennante Artikel auch sagt.
Der Reststrom den Du misst lässt beim Nullen auf einen 
Kurzschluß-"Widerstand" zu GND von  ca. R=U/I = [1.55V/(47-22)A]*10E6 = 
62kohm schliessen.

Mal testen ...

A bientôt:  Hermann

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.