Hallo Zusammen, hat hier jemand konkrete Informationen, wie die Sekundenbruchteile in der Stoppuhr einer billigen Armbanduhr dekodiert werden? Die übliche Uhrenquarzfrequenz ist ja 2^15 Hz. Dies erlaubt zwar die korrekte Darstellung von Sekunden, aber nicht der 10tel und 100stel. Mein erster Ansatz wäre ein 7bit-Decoder, der 0..127 auf 0..99 abbildet. Das kommt mir aber fast zu komplex vor, für einen Uhrenbaustein. Mir fehlen die passenden Suchbegriffe. Ich freue mich auf Eure Tipps. Danke. Einen schönen 1. Advent! marcus
Beitrag #6494050 wurde von einem Moderator gelöscht.
Die klassische LCD Uhr verwendet ein 4-fach gemultiplextes LCD und erzeugt daher aus den 32768 Hz erst mal 8 Zeitfenster a 2.048ms für 64Hz Multiplexfrequenz. Es macht also keinen Sinn, Zahlen darzustellen die sich öfter als 64 x pro Sekunde andern. Ob sich die Stoppuhr-Hundertstel nun von einem Bild zum nächsten um 1 oder 2 erhöht werden muss, bestimmt die Uhr durch einen vorausberechnezen (weil konstant) Bresenham-DDA, der nicht so viele Schritte hat, KGV von 100 und 64 ist 1600, also 25. Wie diese 25 gezählt werden, vermutlich ein 5 bit Zähler, und wie daraus die +1 oder +2 werden, vermutlich bestimmt das ein Minterm-Gatternetz, aber das kann jeder Wristwatch-Chip Hersteller selber aussuchen. Es gibt ja nichtmal ein Datenblatt zum ersten LCD Uhr (ohne Stoppuhr), der Intel 5810A.
Marcus H. schrieb: > hat hier jemand konkrete Informationen, wie die > Sekundenbruchteile in der Stoppuhr einer billigen > Armbanduhr dekodiert werden? Ich nicht. > Die übliche Uhrenquarzfrequenz ist ja 2^15 Hz. Dies > erlaubt zwar die korrekte Darstellung von Sekunden, > aber nicht der 10tel und 100stel. Das stimmt zwar -- aber bleiben wir doch mal realistisch: 1^15Hz sind 32'768Hz. Würde man diese 32'768Hz durch 327 Teilen, dann kämen da 100.208Hz heraus -- die Hundertstessekunden wären also nur 9.979ms lang (statt 10.000ms). Teilt man durch 328, dann werden die Hundertstel 10.0098ms lang. Teilt man allerdings 32 mal durch 327 und 68 mal durch 328, dann hat man insgesamt 32*327 + 68*(327+1) = 32'700 + 68 Impulse gezählt -- das sind gerade 32768. Man hätte dann 32 Hundertstelsekunden, die 21µs zu lang sind, und 68 Hundertstelsekunden, die 9.8µs zu kurz sind. Wenn man die geschickt mischt, so dass immer ungefähr zwei zu kurze Intervalle auf ein zu langes folgen (--> Bresenham-Algorithmus), dann wird der Fehler nie größer als ungefähr 21µs -- was für eine manuelle Stoppuhr schon ziemlich spektaktulär ist. Das ist das mathematische Prinzip, das dem "fractional divider" und dem "dual modulus prescaler" zu Grunde liegt. Ich weiss nicht, OB die Uhren so arbeiten. Wenn ich es entwickeln müsste, würde ich es aber so machen.
MaWin schrieb: > Die klassische LCD Uhr verwendet ein 4-fach gemultiplextes LCD und > erzeugt daher aus den 32768 Hz erst mal 8 Zeitfenster a 2.048ms für 64Hz > Multiplexfrequenz. > Es macht also keinen Sinn, Zahlen darzustellen die sich öfter als 64 x > pro Sekunde andern. > Ob sich die Stoppuhr-Hundertstel nun von einem Bild zum nächsten um 1 > oder 2 erhöht werden muss, bestimmt die Uhr durch einen > vorausberechnezen (weil konstant) Bresenham-DDA, der nicht so viele > Schritte hat, KGV von 100 und 64 ist 1600, also 25. Wie diese 25 gezählt > werden, vermutlich ein 5 bit Zähler, und wie daraus die +1 oder +2 > werden, vermutlich bestimmt das ein Minterm-Gatternetz, aber das kann > jeder Wristwatch-Chip Hersteller selber aussuchen. Und hier sind wir am Kern meiner Frage: wie setzt man die Aufgabe mit minimalem Aufwand, mit den verfügbaren Prozessen in Chip um. Der von Dir beschriebene Ansatz ist für sich gesehen von relativ niedrigem Aufwand. Allerdings wird ein zweiter Zähler gebraucht. Der von mir vorgeschlagene Ansatz benötigt nur Logik, welche direkt die sowieso notwendigen Teilerstufen ausliest. Danke für die Erinnerung, dass das Multiplexing ggf. einen Einfluss auf die Umsetzung hat. Beim u.s. Projekt hat der Kunde damals nur eine Sekunde als Auflösung gefordert. Bei der Umsetzung habe ich mich mit dem Stoppuhralgorithmus auch an das Displaytiming rangehängt. http://harerod.de/applications_ger.html#allTimer > Es gibt ja nichtmal ein Datenblatt zum ersten LCD Uhr (ohne Stoppuhr), > der Intel 5810A. Danke für diesen Suchbegriff! https://www.computerhistory.org/siliconengine/digital-watch-is-first-system-on-chip-integrated-circuit/ -> ich habe gerade auf gut Glück das Buch von Weaver bestellt.
Egon D. schrieb: > Marcus H. schrieb: > >> hat hier jemand konkrete Informationen, wie die >> Sekundenbruchteile in der Stoppuhr einer billigen >> Armbanduhr dekodiert werden? > > Ich nicht. Diese Aussage gefällt mir. ... ... > Ich weiss nicht, OB die Uhren so arbeiten. Wenn ich es > entwickeln müsste, würde ich es aber so machen. Danke für die Erläuterung. Wenn ich keine Info über tatsächliche Chips bekomme, könnte ich meine Neugier stillen, indem ich versuche die beiden Ansätze mit einem ASIC-Designwerkzeug nachzubauen. Das wäre dann allerdings ein wenig unterhalb meiner üblichen Arbeitszone. :) Meine Frage ist übrigens aus einem 30..40 Jahre alten Erinnerungsfragment entstanden, das durch einen Nachlass, den ich gerade verwalte, aufgetaucht ist: Ein Onkel meiner Großmutter war Uhrmacher und Elektroniker. An seiner Werkstattwand hing eine Quarz-LED-Uhr, deren komplette Elektronik diskret als Transistorlogik auf Lochraster gefädelt war. Beim Nachdenken über dieses Projekt ist mir das Problem mit den Nachkommastellen eingefallen.
Marcus H. schrieb: > Der von Dir beschriebene Ansatz ist für sich gesehen von relativ > niedrigem Aufwand. Allerdings wird ein zweiter Zähler gebraucht. Nein, das machen die bits des normalen Zählers, hier von 64Hz bis 4Hz, die in 0.00 0.02 0.03 0.05 0.06 0.08 0.10 0.11 0.13 0.14 0.16 0.17 0.19 0.20 0.22 0.23 ----- 0.25 decodiert werden (und dann wiederholend bis 0.5, 0.75 und 1) Und das nicht per ROM, sondern minimiertem Gatterwerk..
Marcus H. schrieb: > Egon D. schrieb: >> Marcus H. schrieb: >> >>> hat hier jemand konkrete Informationen, wie die >>> Sekundenbruchteile in der Stoppuhr einer billigen >>> Armbanduhr dekodiert werden? >> >> Ich nicht. > Diese Aussage gefällt mir. :-) > Meine Frage ist übrigens aus einem 30..40 Jahre alten > Erinnerungsfragment entstanden, das durch einen Nachlass, > den ich gerade verwalte, aufgetaucht ist: Ein Onkel > meiner Großmutter war Uhrmacher und Elektroniker. An > seiner Werkstattwand hing eine Quarz-LED-Uhr, deren > komplette Elektronik diskret als Transistorlogik auf > Lochraster gefädelt war. Beim Nachdenken über dieses > Projekt ist mir das Problem mit den Nachkommastellen > eingefallen. Ich habe nochmal ein wenig gerechnet: Wenn man die 32'768Hz erstmal durch 5.12 teilen könnte, kämen gerade 6'400Hz heraus, und wie man daraus korrekte Hundertstelsekunden gewinnen kann, ist hoffentlich offensichtlich. Dankenswerterweise KANN man näherungsweise durch 5.12 teilen: Nichtganzzahlige Teilerfaktoren sind mit Teilern möglich, die in ihren Rückführungen wiederum Teiler enthalten; außerdem braucht man eine einfache Mimik aus Gattern und Flipflops für die Impulsunterdrückung. Die notwenigen Faktoren kann man mittels Kettenbruchentwicklung ausrechnen; dazu gibt es Veröffentlichungen aus den 80ern des vorigen Jahrhunderts. Für Teilerfaktor 5.12 braucht man die Faktoren 5, 8 und 3, denn 5+1/(8+1/3) = 5+1/(25/3) = 5+3/25 = 5+12/100 = 5.12 Die erzeugte Pulsfolge ist dieselbe wie bei der wechselnden Teilung durch 327 bzw. 328, nur sind die erforderlichen Faktoren viel kleiner. Ich weiss nicht, OB es tatsächlich so gemacht wurde -- ich würde es aber so machen, gerade in einer Eigenbau-Uhr.
Egon D. schrieb: > Würde man diese 32'768Hz durch 327 Teilen, dann kämen da > 100.208Hz heraus -- die Hundertstessekunden wären also nur > 9.979ms lang (statt 10.000ms). Stört doch niemanden. 100x 9.979ms sind 0.998s. Dann setzt man eben wieder auf die nächste Sekunde, resettet den Hunderstelzähler und gut ist. Ich möchte sowieso mal sehen wie jemand per Hand auf 1/100s stoppt.
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.