Okay, es ist die einmillionsteundeine Digitaluhr mit 7-Segmentanzeigen... Nachdem vor ein paar Wochen eine Mikrocontroller realisierte Uhr mit 7-Segmentanzeigen nachgefragt wurde (und das dann sogar durchaus ein längerer Thread geworden ist) habe ich doch tatsächlich nach (wirklich) ein paar Jahrzehnten eine 7-Segment Uhr gebaut (bisher war es eine BCD-Uhr mit dem alten ATtiny2313). In dem dortigen Thread hatte ich eine Uhr mittels ATmega und gemultiplexter Anzeige (und Transistoren als Stromtreiber) auf Steckbrett aufgebaut gehabt und dachte mir, nachdem die Preise für PCB-Fertigung ins Bodenlose gefallen waren ich mache mal wirklich ein aufgebaute Uhr und diese dann (so als meinen eigenen Anreiz) so preiswert wie möglich. Die erste Überlegung war, das mit meinem "Billigliebling" PFS154 zu machen, aber hier ging mir der Speicher für die Funktionen, die die Uhr können sollte aus. Den nächstgünstigen (billigen) Controller mit dem ich umgehen kann war dann ein STM8S003 für 29 Cent bei www.lcsc.com (Stand 22.01.2025). Anstelle von Transistoren als Stromtreiber habe ich dann den Anzeigentreiber TM1637 (16 Cent, Stand 22.01.2025) gewählt, der dann auch praktischerweise die Tastenanschlüsse gleich mit übernimmt (und es somit keiner 24 Transistoren bedarf). Die Uhr ist 6-stellig, wobei eine 0.36" große 4-fach Anzeige die Stunden und Minuten darstellt, eine kleiner 0.28" große 2-fach Anzeige die Sekunden. Die Uhr wurde nicht nach klassischer Methode durch das Hochzählen der Sekunden bis Überlauf von 59 nach 60 bei Erhöhung der Minuten, Überlauf der Minuten erhöht die Stunden, realsisiert, sondern sie lehnt sich an die C-Bibliothek time.h an bei der Uhrzeiten mittels Datumsstempel realisiert und manipuliert werden können. So kommt hier denn auch meine, für Mikrocontroller abgespeckte Source, my_time.c / my_time.h zum Einsatz, die genau für den Einsatz in Mikrocontrollern entwickelt ist. Dies macht dann auch möglich, dass die Uhr nicht nur die Uhrzeit, sondern auch das Datum anzeigen kann. Wenn man dann schon dabei ist, habe ich die Funktionen für ein Auslesen eines DS18B20 Temperatursensors mit implementiert, so dass auch eine Temperaturanzeige gegeben ist. In der Schaltung ist auch ein Ausgang für einen Lautsprecher vorhanden, der aber bei der derzeitigen Softwareversion noch keine Rolle spielt. Vielleicht mag ja der eine oder andere die Uhr um einen Wecker oder eine Stopuhr mit Signalton erweitern ?!? Die Software ist ein reines Makefile-Projekt unter Linux und ein einfaches absetzen von make im Stammverzeichnis sollte das Projekt compilieren (sofern ein SDCC-Compiler systemweit verfügbar ist). Ein kurzes (und sehr schlechtes, amateurhaftes) Video der Uhr gibt es hier: https://www.youtube.com/shorts/3bqEEjXbZb8 Für denjenigen, der die Uhr tatsächlich nachbauen möchte sind im Zip-Archiv die Gerberfiles enthalten, welches direkt zu JLCPCB geschickt werden kann um sich hieraus eine Platine fertigen zu lassen. Die Platinengröße ist ca. 50x50 mm groß. Sollte es wirklich jemand interessieren und sich bei JLCPCB die Platinen fertigen lassen wollen, den Platz für die erlaubten 100x100 mm jedoch ausnutzen wollten kann man das ebenfalls hier angehängte Sprint-Layout stm8_uhr_only.lay6 um seine eigenen Schaltungen erweitern. :-) :-) :-) viel Spaß beim Nörgeln und beim Negativbewerten, Gruß, JJ
Ralph S. schrieb: > Okay, es ist die einmillionsteundeine Digitaluhr mit > 7-Segmentanzeigen... > :-) :-) :-) viel Spaß beim Nörgeln und beim Negativbewerten, Uhren kann man nie genug haben, noch vor digitalen Multimetern und Labornetzteilen:-) Du hast das Projekt schön vorgestellt, es gibt keinen Grund für Negativbewertungen. Ich frage mich nur woher der Tick (schönes Wortspiel) für Uhren herkommt?
Beitrag #7815621 wurde vom Autor gelöscht.
... kaum gepostet und dann gleich den ersten Fehler entdeckt: Nicht in der Software, sondern in der Beschreibung. Ich habe hier die Beschreibung für my_time gepostet, die für GCC-basierende Compiler funktioniert. In Ermangelung dessen, dass SDCC keine Strukturen als Funktionsargumente bearbeiten kann und auch keine Strukturen zurückliefern kann, funktioniert die SDCC-Variante von my_date über globale Strukturvariable... sorry. Michael schrieb: > Ralph S. schrieb: >> STM8S003 > Hat ST den nicht abgekündigt? Na ja, wie soll ich sagen: zuerst war der von ST als "not recommended for new designs" gesetzt, aber nach einer gewissen Zeit stand auf deren Homepage für Marketing Status als "active": https://www.st.com/en/microcontrollers-microprocessors/stm8s-series/products.html Zudem hat www.lcsc.com 290890 Stück "in stock" wobei ich dann hier davon ausgehe, dass die zumindest bei denen noch (und nicht nur bei denen) eine zeitlang verfügbar sein werden. Bei der letzten Bestellung dort, habe ich mir "sicherheitshalaber" noch einmal 20 Stück mitbestellt, sodass zumindest für meinen Privatbedarf hier der Vorrat bestimmt gedeckt ist.
Jörg R. schrieb: > Ich frage mich nur woher der Tick (schönes Wortspiel) für Uhren > herkommt? :-) ich weiß gar nicht ob es diesen Tick gibt. Ich für meinen Teil mag Uhren eigentlich so gar nicht, weil sie mir jedesmal irgendeinen Termin zu einer bestimmten Uhrzeit vorgeben. Seit jeher weigere ich von daher, eine Armbanduhr zu tragen (und ich hasse Armbanduhren an mir regelrecht ... :-) meine Frau hingegen hat davon unzählige Uhren, allerdings ist das für sie wohl auch eher eine Art Schmuck). Wenn schon Uhren, dann irgendwie welche, die anderst sind: In meiner Bastelecke "tickt" (wie oben erwähnt) eine BCD-Uhr (bei der viele den Kopf schütteln und meinen, dass man da doch keine Uhrzeit ablesen kann) und in meinem Wohnzimmer steht über meinem Dampfradio Loewe Opta Meteor eine Nixie-Uhr (herrlich schön im Dunklen beim Fernsehgucken abzulesen).
Michael schrieb: >> STM8S003 > Hat ST den nicht abgekündigt? Macht nichts, der CH32V003 dürfte ein Ersatz sein, afaik pinkompatibel, nur einen anderen Compiler und ein anderes Programmierinterface brauchts.
Ralph S. schrieb: > Status als "active" Gut zu hören. Ist ein netter kleiner Controller. Harald K. schrieb: > CH32V003 Schickes Ding. Sogar das DB sieht da sehr vollständig aus. Wenn es dann irgendwann mal EU Distris dafür gibt und das Verständniss was über die pure Bauteillieferung hinaus alles an Nachweispflichten und Regularien im professionellem Verkehr zu erfüllen ist, könnten wir die mal näher ins Auge fassen.
Michael schrieb: > Wenn es dann irgendwann mal EU Distris dafür gibt und das Verständniss > was über die pure Bauteillieferung hinaus alles an Nachweispflichten und > Regularien im professionellem Verkehr zu erfüllen ist Arbeitest Du in irgendeiner Behörde? Das tut mir leid.
Harald K. schrieb: > Arbeitest Du in irgendeiner Behörde? Das tut mir leid. Nö, nur ein einem Bereich in dem auch DU darauf bestehen würdest das man zu jedem Zeitpunkt genau weiß was man wo aus welcher Quelle verbaut hat und das jede kleine Bauteiländerung zu einem äußerst kostenintensiven Rezertifizierungsprozess führt, weil nur so der hohe Standard erhalten werden kann. Oder bist Du noch nie geflogen, warst medizinischen Maschinen ausgeliefert, hast Dein Leben automatischen Bremssystemen, Türsteuerungen und vielem anderen mehr anvertraut? Arbeitest Du in einer Hinterhofbastelklitsche die Blinkeherzchen für Tankstellen herstellt? Das tut mir leid.
Michael schrieb: > Wenn es dann irgendwann mal EU Distris dafür gibt Gibt's doch schon, Industrie Qualität! also echt jetzt :) Ich wollte nur mal kucken, was das eigentlich ist. Also den muss ich wirklich nicht kennen.
Michael schrieb: > Oder bist Du noch nie geflogen, warst medizinischen Maschinen > ausgeliefert, hast Dein Leben automatischen Bremssystemen, > Türsteuerungen und vielem anderen mehr anvertraut? Viele, die dieses Forum frequentieren, tun dies, weil sie ein Hobby haben. Ich würde mir vielmehr ernsthafte Sorgen machen, wenn Personen, die die von Dir indirekt angegesprochenen Dinge entwickeln, sich hier Ratschläge holen würden.
Harald K. schrieb: > Ich würde mir vielmehr ernsthafte Sorgen machen, wenn Personen, die die > von Dir indirekt angegesprochenen Dinge entwickeln, sich hier Ratschläge > holen würden. hm, da würde ich mir keine Sorgen machen! Hier gibt es Mitglieder, die sind schon "hochgut" und von denen kann man sich auch Ratschläge holen, die für sicherheitsrelevante Systeme gelten. Wohlbemerkt Ratschläge! Ergebnisse sind immer zu testen und in Langzeitversuchen zu evaluieren. Nur, weil die von dir angesprochenen Personen auf ihrem Gebiet hohe Verantwortung tragen (und ich gehe davon aus, dass sie dieser auch gerecht werden), heißt das nicht, dass diese unfehlbar sind oder niemals irgendwelche Probleme habe (und sei es, dass sie einen Einstieg für etwas neues benötigen). Durch viel lesen hier, kommt man bisweilen auf Problemlösungsideen, die man zuvor nicht hatte.
... und, um "Zoff" evtl. zu vermeiden: Chips wie Padauk PFS154, CH32V003 oder Puya PY32f030 etc. sind sicherlich nicht dafür gemacht um in sicherheitsrelevanten Dingen oder in Hochrisikogerätschaften eingesetzt zu werden. Aber in "Spielzeugen" und Billiggerätschaften wie Uhren oder Raumthermometer etc. haben sie schon ihren Sinn. Bspw. bin ich für einen ehemaligen Auszubildenden (der im Rollstuhl sitzt) und dessen Vater am Werkeln, eine (für mich riesige) Modelleisenbahn mit Elektronik zu unterstützen. Hier ist das Problem, dass hierfür insgesamt 108 Weichen anzufahren sind. Der ursprüngliche Gedanke war, alles über Schieberegister zu machen. Hier sind dann zum einen 3 Steuerleitungen von Nöten und die wären von einem Modul zum nächsten verbunden gewesen. Irgendwie kein guter Ansatz. Also: nächste Idee! Proprietärer unidirektionaler OneWire-Bus (PWM) der an einen PFS154 Controller geht und der 2 kaskadierte Schieberegister anfährt. PFS154 liest 8 I/O Pins ein (als Deviceadresse) und reagiert dann entsprechend, wenn er auf dem Bus seine Adresse "sieht". Am Eingang des PFS154 wird noch ein Schmitt-Trigger verbaut, damit die Leitung relativ störunempfindlich wird (funktioniert jetzt mit ca. 20 Meter länge). Wenn hier der Chip nicht zertifiziert ist, schaltet im schlimmsten Fall eine Weiche nicht und eine Modelllok entgleist oder fährt auf eine andere auf. Hmmm, nicht schön, aber davon geht dann die Welt nicht unter. Ich glaube es gibt tausende von Anwendungen dieser Art, bei der billigste Controller eine Rolle spielen können. Und (so als Schlußwort): es ist egal, ob der Controller mit 8, 16 oder 32-Bit werkelt, hauptsache er ist seiner Problemstellung gewachsen.
Harald K. schrieb: > Michael schrieb: >>> STM8S003 >> Hat ST den nicht abgekündigt? > > Macht nichts, der CH32V003 dürfte ein Ersatz sein, ... Auch der N76S003 (mit 8051-Kern) sollte als Ersatz verwendbar sein.
Peter S. schrieb: > Auch der N76S003 (mit 8051-Kern) sollte als Ersatz verwendbar sein. Schmunzeln muß: Warum wollt ihr mir den STM8 "wegnehmen" und einen Ersatz dafür bringen? Den STM8 gibt es noch (und wahrscheinlich noch lange günstig). All den "Ersatztypen" ist gemein: ich darf/muß dann wieder eine andere Toolchain lernen / ans laufen bekommen. Ich weiß noch, wie lange das mit dem PFS154 gedauert hat, bis ich mit dem einigermaßen vernünftig etwas anfangen konnte. Einen CH32V003 habe ich bspw. hier und von Zeit zu Zeit versuche ich mich da mit mäßigem Erfolg an der Toolchain mit MounRiver... bei der riscv-gnu-toolchain scheue ich mich noch, die mehr als 6 GB downzuloaden und mir die Toolchain zu übersetzen (und ein Binary habe ich keines gefunden). Hier immerhin: Upload in den CH32V003 bekomme ich sogar mittels Bootloader hin. Puya habe ich hier liegen (aber noch nicht angefasst) und mit Nuvoton bin ich am Fremdeln. MCS-51 würde zwar von der Toolchain her super zum SDCC passen, aber irgendwie will das hier nicht so recht. Von daher: es gibt so irre viele günstige bis billige Controller in der Fassung: AVR (eher schon teuer), STM32, STM8 und Padauk. :-) ich brauche für so etwas einfaches wie die Uhr hier nicht wochenlange Versuche bis ich eine neue Familie im Griff habe (by the way: im Griff heißt für mich: Programmieren ohne IDE ... schön zu Fuß mittels Editor und makefile) Aaaaaber: ich würde mich wirklich sehr über ausführliche "Geting started" Tutorials für die bisher genannten Controller freuen, wenn so ein Tutorial sich auf die Toolchain (nicht eine IDE) und dann auf Linux beziehen würde. Irgendwie finde ich da nichts wirklich "gescheites" im Netz: Alle schreiben von allen ab.
Ralph S. schrieb: > Einen CH32V003 habe ich bspw. hier und von Zeit zu Zeit versuche ich > mich da mit mäßigem Erfolg an der Toolchain mit MounRiver.. Es gibt eine deutlich schlankere Alternative: https://github.com/cnlohr/ch32v003fun
Harald K. schrieb: > Es gibt eine deutlich schlankere Alternative: > > https://github.com/cnlohr/ch32v003fun grrrrr .... das kenne ich natürlich, aaaaaaaber: das gesamte Framework CH32V003FUN setzt einen bereits im System lauffähigen riscv-Compiler vorraus! Zudem (weil ich ja garantiert kein Platformio machen möchte) hat das ein sehr umfangreiches Makefile (bzw. ch32v003fun.mk welches ins Makefile inkludiert ist). Sollte ich das also wirklich mal machen (und irgendwie habe ich den Chip abgeschrieben) muß ich mir seeeeehr viel Zeit nehmen, weil meine PC-Hardware wirklich steinalt ist und ein compilierender Sourcen (6,3 GByte) garantiert ewig dauern wird (abgesehen von sicherlich genügend nicht installierter Abhängigkeiten). Ich habe hier ein extrem abgespecktes Slackware-Linux (und arbeite damit sogar in einer Live-Version) damit ich noch gut damit werkeln kann (gerne auch in der Konsole). Ob dein Fun-Framework wirklich schlanker ist als MounRiver kann sich erst dann zeigen, wenn der Compiler für CH32V003FUN installiert ist. :-) :-) :-) :-) aber du kannst gerne den Source der Uhr hier nehmen, auf einen CH32V003 portieren und das Ergebnis dann mal zeigen. Würde mich wirklich interessieren.
Ralph S. schrieb: > das gesamte Framework CH32V003FUN setzt einen bereits im System > lauffähigen riscv-Compiler vorraus! Na gut, wenn die Rahmenbedingungen so ... besonders sind, wie bei Dir, dann kann ich Dein Magengrimmen nachvollziehen. Wie bekommst Du dann aber den doch auch recht fetten Brocken des "mounriver studio" zum laufen? Wenn man, wie ich, sich nicht zu fein ist, Windows zu verwenden, ist das gcc-Paket, das man bei "sysprogs" herunterladen kann, 22 MByte groß ...
Harald K. schrieb: > Na gut, wenn die Rahmenbedingungen so ... besonders sind, wie bei Dir, > dann kann ich Dein Magengrimmen nachvollziehen. Okay, wenn ich wollte (aber darauf programmiere ich nicht) ... hätte ich auch noch einen Win11 PC (okay okay nicht fein) mit i7 12. Generation und 32 GB RAM (und dort auf einer anderen Bootpartition ein Ubuntu). :-) der Rechner wird jedoch für anderes genutzt. Ich habe mir schon überlegt gehabt, dort noch eine Bootpartition einzurichten um dann dort das Kompilieren vorzunehmen. Allerdings werd ich auch so nicht wirklich warm mit der Toolchain. Harald K. schrieb: > Wie bekommst Du dann aber den doch auch recht fetten Brocken des > "mounriver studio" zum laufen? Da hatte ich irgendwo ein Binary gefunden und ausprobiert und oh wunder (zu meiner Überraschung) funktionierte das. Allerdings wie gesagt sehe ich für mich den Sinn (außer meinem Spieltrieb) nicht, zwingend diesen Chip zu verwenden. Mit STM32 kenne ich wenigsten ein klein wenig aus und die Toolchain mit den von mir verwendeten Sourcen funktioniert so zur Zufriedenheit (ich verwende libopencm3) und die kleinen STM32F gibts ja mittlerweile auch schon ab 60 cent. Einen STM32C habe ich hier liegen (den proklamiert ST als Ersatz für 8-Bit Systeme) und für den muß ich mir einiges umbasteln und umbiegen (vom STM32G) und damit bin ich dann auch noch etwas beschäftigt. :-) außerdem muß es auch mal mit meinem kleinen Terminaldisplay weitergehen... und das habe ich auf einem STM32F030 angefangen
Ralph S. schrieb: > ... und mit Nuvoton > bin ich am Fremdeln. MCS-51 würde zwar von der Toolchain her super zum > SDCC passen, ... Dann könntest Du Dir für die nächste Uhr auch mal die Controller von STC aus China anschauen, z.B. STC8G1K08. Diese verfügen über eine sehr einfaches I2C-Peripheral, das man auch zur Ansteuerung des TM1637 "missbrauchen" kann.
Harald K. schrieb: > Ich würde mir vielmehr ernsthafte Sorgen machen, wenn Personen, die die > von Dir indirekt angegesprochenen Dinge entwickeln, sich hier Ratschläge > holen würden. Ich bin Profi. Selbst die Putzkraft hier im Büro könnte etwas sagen das mich auf die richtige Idee bringt. Und da mc.net sich noch einen Rest Fachkompetenz bewahrt hat, gegen erheblichen Widerstand der YT Fraktion und eher fragwürdigen 'Strömungen' ziehe ich durchaus Nutzen aus mc.net und gebe von zeit zu zeit auch was zurück. Zumal ich ja mit keinem Wort die WCH MCU schlecht gemacht habe. Nur beschäftige ich mich ca. 180Std jeden Monat mit Elektronik Entwicklung und allem was rundherum zu bewegen ist bis man von der Idee zu einem zertifizierten Produkt kommt. Ich bin einfach nicht gewillt mich mit Dingen zu beschäftigen die nirgendwohin führen weil es bereits an den grundsätzlichen Dingen fehlt. Und bei uns ist es auch ziemlich egal ob eine MCU 30Cent oder 3€ kostet. Ich verfolge aber durchaus mit Interesse was die Hobby Fraktion so mit den China MCUs macht. All das hat keinerlei Einfluss auf meine professionelle Handlungsweise. Ich befolge die notwendigen Regeln meines Marktes und kann zugleich links und rechts des Weges schauen. Toll oder?
Michael schrieb: > Ich befolge die notwendigen Regeln meines Marktes und kann zugleich > links und rechts des Weges schauen. Klingt unglaubwürdig, also der Teil nach "und".
Harald K. schrieb: > Klingt unglaubwürdig Das ist hart. Dabei ist mir die fachlich Meinung irgendwelcher Leute die mit irgendwas völlig anderem ihre Brötchen verdienen so überaus wichtig 😂
Michael schrieb: > Ich verfolge aber durchaus mit Interesse was die Hobby Fraktion so mit > den China MCUs macht. > All das hat keinerlei Einfluss auf meine professionelle Handlungsweise. > Ich befolge die notwendigen Regeln meines Marktes und kann zugleich > links und rechts des Weges schauen. > Toll oder? genau so ... muß es sein! Und das ist gut (oder auch toll) ! Harald K. schrieb: > Klingt unglaubwürdig, also der Teil nach "und". Wieso ist das unglaubwürdig? Dienstlich darf ich nur Dinge verbauen, die zertifiziert sind. Privat interessiert mich das dann nur am Rande!
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.