Hallo,
ich wollte eine Uhr mit einem AtTiny13 bauen.
Ich will nur wissen ob die 1kB ausreichen - alles andere such ich
selber.
Möchte jetzt gerne die Hardware zusammen löten. Deshalb frag ich...
Ich hab mir vor ein paar Tagen eine 7-Segment anzeige aus Leds gebaut -
es sind 6 Ziffern verbunden über ein Schieberegister - insgesamt belegt
es 13 + 2 Stellen (Punkte) an dem Schieberegister.
Mir bleiben also noch 2 Pins übrig für die Taster mit denen ich die Uhr
einstellen möchte.
Geht das ganze so? Reicht dafür ein AtTiny13?
Vielen dank!
Fradi
Also das Schieberegister belegt 3 Pins an den AtTiny13. Dann bleiben
noch 2 Pins für meine einstell Taster. Reichen dafür die Ressourcen des
AtTiny13 aus? Brauc ich dafür einen externen Quarz?
Woher möchtest Du denn die Uhrzeit holen?
Für einen Quartz hast Du keine Pins mehr und der interne RC-Oszillator
ist viel zu ungenau für eine Uhr!
Eine externe RTC kannst Du auch nicht anschliessen, wg. Pin-Mangel,
ausser mit wildester MPX-Pin-Mehrfachnutzung.
Vom Speicherplatz 1KB ist das kein Problem,
Dir fehlen schlicht IO-Pins...
Nimm den nächst-grösseren, z.B. ATTINY-24.
Ohne externen Quarz ist dein Takt nicht stabil.
Eine Uhr ohne stabilen Takt ist eher witzlos.
Die Ressourcen sollten ausreichen.
Der Ansatz, dafür einen ATtiny13 zu benutzen, ist b'scheuert.
Hallo,
klar geht das:
statt der Taster einen DCF77-Empfänger und man dann sogar noch einen Pin
frei. Und das Datum gibt es umsonst dazu (nochmal 6 Anzeigen +
Schieberegister).
Paßt in einen Attiny13.
Gerd
Nicht alles was irgendwie geht ist auch sinnvoll.
Zu zeigen, dass es geht, reicht eine theoretische Betrachtung.
Es auch praktisch zu machen und Ports extern zu erweitern, die man auch
mehr oder weniger kostenlos on chip dazu bekommen kann ist irgendwie
bizarr.
Die DCFF Idee ist ziemlich gut, würde ich sagen. Dann braucht man auch
nicht wirklich mehr pins.
Alternative wäre noch beide Taster mittels Widerständen, an einen
einzelnen ADC Pin anzuschließen und somit den Pin für den Takt zu haben.
Die 1kb werden jedenfalls reichen da das echt ein simples Programm wird.
Hi
So ganz kann ich deinen Wunsch nicht verstehen. Anzeige mit LED separat
aufgebaut, dazu noch externe Bauteile und dann (aus Platzgründen?) einen
ATiny13? Dabei gibt es durchaus preiswerte Controller mit ausreichend
IO. Aber du wirst schon wissen, was du willst.
Gruß oldmax.
Jim Beam schrieb:> Für einen Quartz hast Du keine Pins mehr
TXCO an CLKIN
Fredi K. schrieb:> Also das Schieberegister belegt 3 Pins an den AtTiny13. Dann bleiben> noch 2 Pins für meine einstell Taster.
Die Tasten kann man an die Digit-Anschlüsse hängen und zusammen mit dem
Multiplex abfragen.
Fredi K. schrieb:> das Schieberegister belegt 3 Pins
Bei den richtigen Schieberegistern kann man das LATCH-Signal über einen
RC-Tiefpass aus dem CLK-Signal erzeugen.
S. R. schrieb:> ist b'scheuert
Ja, wahrscheinlich. Aber manchmal auch reizvoll.
Ich habe mal eine Uhr mit ATTiny13A, DCF und analoger (PWM) Ausgabe
gemacht. Die läuft seit ein paar Jahren zufriedenstellend. Voraussetzung
ist allerdings einigermaßen guter DCF Empfang (da ohne Quarz).
Der Plan ist in http://stefanfrings.de/mikrocontroller_buch/index.html
Band 3. Während ich dieses Buch schrieb, fand ich heraus, dass der ELV
Verlag die gleiche Idee schon früher hatte, allerdings mit viel höherem
technischen Aufwand. Den Bausatz gibt es inzwischen leider nicht mehr zu
kaufen.
Jedenfalls kann ich mir durchaus vorstellen, die analoge Ausgabe meiner
ATtiny13A Uhr durch eine digitale mit Schieberegister zu ersetzen. Aber
eigentlich liegt es in so einem Fall doch nahe, lieber gleich einen
größeren µC mit Quarz und genug Pins zu benutzen. Es sei denn, der Weg
ist das Ziel.
Wie wäre eine binäre Anzeige mit Neopixeln? Das würde ohne
Schieberegister gehen.
Jim Beam schrieb:> Dir fehlen schlicht IO-Pins...
2 Pins für den Quarz, dann bleiben noch 3 Pins für das SPI, sollte
gehen.
An 2 SPI-Pins kann man noch 2 Tasten über Widerständen anschließen, die
man zwischen den Ausgaben einliest.
Man kann auch SCK und DIN über ein RC-Glied zusammen legen. Die Länge
des SCK-Pulses legt dann fest, ob man 0 oder 1 einschiebt.
Uber den dann freien Pin kann man mehrere Tasten über Widerstände und
den ADC einlesen:
Beitrag "Tastenmatrix auslesen über nur 2 Leitungen"
In C kann es knapp werden mit den 1kB Flash.
Hier mal ein Beispiel in Assembler:
Beitrag "DCF77-Uhr mit ATTINY12"
Peter D. schrieb:> 2 Pins für den Quarz, dann bleiben noch 3 Pins für das SPI, sollte> gehen.
Wobei mir gerade auffällt, dass der TINY13 garkeinen externen Quarz
unterstützt...
Oder gibt es neuere Varianten, die das können?
Dann bleibt nur externe RTC z.B. über I2C oder DCF.
Es bleibt aber dabei, dass es Unfug ist hier einen Tiny13 einzuplanen...
Lediglich rein-akademisch interessant, was man so alles tricksen kann um
IO mehrfach zu nutzen.
Also unabhängig davon, ob das geht, macht es nur ganz wenig Sinn. Das
ist eine rein sportliche Übung, nichts praktisches.
Ein größerer µC mit mehr Pins kann die Anzeige mit wenigen externen
Bauteilen direkt ansprechen. Wenn ich das mit externen Bauteilen
erledigen muß, nur damit das mit einen Tiny13 geht, dann ist das mehr
Aufwand und es wird auch nicht kleiner oder billiger.
Was mit einem Tiny13 gehen würde:
- Uhrzeit mittels DCF-77 holen
- Uhrzeit ausgeben mittels Morse-Code
Fredi K. schrieb:> ich wollte eine Uhr mit einem AtTiny13 bauen.
Warum ausgerechnet mit dieser Gurke? Das ist eigentlich nicht, wofür der
mal gedacht war.
> Ich will nur wissen ob die 1kB ausreichen
Das schon. Aber wohl nicht für jemanden, der so fragt wie du...
> Ich hab mir vor ein paar Tagen eine 7-Segment anzeige aus Leds gebaut -> es sind 6 Ziffern verbunden über ein Schieberegister
Das ist immerhin ein sinnvoller Ansatz. Erweitere den einfach auf die
Abfrage der Taster und alles wird gut. (Tip: man braucht dazu natürlich
die passenden Schieberegister, seriell-in, parallel-out ist gut für die
LEDs, für die Taster brauchst du aber sozusagen "das Gegenteil". Die
kannst du dann aber in eine serielle Kette mit den LED-Teilen hängen und
auch das Latch-Signal für beide verwenden. D.h.: zwei Sachen fast zum
Preis von einer, du brauchst nur einen einzigen Pin mehr, um den
seriellen Output der SR-Kette wieder in den µC zu bekommen.
c-hater schrieb:> Preis von einer, du brauchst nur einen einzigen Pin mehr, um den> seriellen Output der SR-Kette wieder in den µC zu bekommen.
Ergänzend: natürlich könnte man darüber auch den Output eines
DCF77-Moduls in den µC bekommen. Allerdings: schnell geswitchte LEDs und
DCF77-Empfang passen erfahrungsgemäß nicht sehr gut zusammen...
Jim Beam schrieb:> Wobei mir gerade auffällt, dass der TINY13 garkeinen externen Quarz> unterstützt...
Stimmt, es muß schon ein ATtiny25 sein oder besser gleich ein ATtiny24.
Moin,
aus praktischen Gründen würde ich einen Tiny85 nehmen (8kB), der ist
auch kaum größer.
RTC und Display über I2C-Bus anschließen, dann bleiben sogar noch Pins
für die Taster übrig.
>Wobei mir gerade auffällt, dass der TINY13 garkeinen externen Quarz>unterstützt...
Das nicht, aber external-clock-fähig ist er ("CKLI" an Pin 2).
Ich halte das Vorhaben durchaus für realisierbar und das sogar ohne
allzu dramatische Verrenkungen:
Pin 1: reset
Pin 2: external clock (Quarzoszillator)
Pin 3: Widerstandsnetzwerk mit Tastern (einlesen via ADC)
Pin 4: GND
Pin 5: display clock
Pin 6: display data
Pin 7: display latch
Pin 8: VCC
Trickst man das display latch noch weg, kann man sogar noch ein
DCF-Modul an diesen Pin hängen.
So würde ich es versuchen.
Ben B. schrieb:> Wenn man das Ding mit DCF-77 laufen lassen möchte, dann braucht es> keinen externen Takt.
Naja.
Man will ja auch Zeiten überbrücken, in denen man keinen DCF-Empfang
hat.
>Wenn man das Ding mit DCF-77 laufen lassen möchte, dann braucht es>keinen externen Takt.
Nein, wenn man jederzeit fehlerfreien DCF-Empfang hat, der z. B. auch
durch die hochfrequente Ansteuerung des Displays kein bisschen
beeinträchtigt wird, dann nicht.
Jim Beam schrieb:> Man will ja auch Zeiten überbrücken, in denen man keinen DCF-Empfang> hat.
Wenn es nur Minuten wären, würde der interne Oszillator zwar ein wenig
Abweichung bringen, das ist aber i.A. zu verschmerzen.
Leider muss ich in letzter Zeit feststellen, dass der Sender auch mal
für länger weg ist. Und das relativ oft, zuletzt gesehen am 17.11., am
5.11., 22.10. usw. Und gerade eben ...
https://www.dcf77logs.de/logs
Christian S. schrieb:> Mit einem AT90S2313 oder dem Tiny2313 würdest Du Dir leichter tun.
..
> Beitrag "Zeitumstellung beobachtet mit DCF77 Uhr von Ulrich Radig mit Codeerweiterungen"
Wie die Zeit vergeht. Im Anhang der Schaltplan einer AT90S2313 Uhr, die
meine Azubis früher auf Lochraster aufbauen durften.
Mein Großvater hatte sich mal eine Uhr mit großen Anzeigen gewünscht.
Dieser wurde statt den Stelleingängen ein DCF77-Empfänger angeschraubt.
Das Ganze in ein Gehäuse, mit roter Filterscheibe vorne dran. Steht
mittlerweile bei uns im Wohnzimmer.
Mit DCF77-Code sind das geschätzte 350 Maschinenbefehle.
Ich hatte auch noch eine Variante mit Quarz im Büro an der Wand hängen.
Den Quarz habe ich mit einem auf passende Länge abgeschnittenen Draht an
einem Bein gezogenen. ;)
Mittlerweile würde ich einen ECS-TXO-2520 als Taktgenerator nehmen. 2ppm
für unter 2€uro. Wenn die Zeitumstellung wegfällt, ist das wohl lange
gut genug für zu Hause.
Stefanus F. schrieb:> Wie ich schon weiter oben schrieb: R/C Oszillator + DCF-77 setzt guten> Empfang voraus. Mehr als 20 Minuten ohne Empfang würde ich nicht haben> wollen.
In dem Fall ist ein Quarz oder externen Oszillator unumgänglich.
Meine Beispiele sind nicht auf schlechten Empfang zurückzuführen,
sondern auf eine Unterbrechung beim Sender. Schlechter Empfang kann noch
hinzukommen, z.B. bei Gewittern.
Das was T. Behrends auf der Webseite in der Nähe von Bremen mitschreibt,
sehe ich hier in Süddeutschland zumindest in meinen (seltenen)
Mitschnitten genau so - also hat die Sendeseite die Störung.
LostInMusic schrieb:> Ich halte das Vorhaben durchaus für realisierbar und das sogar ohne> allzu dramatische Verrenkungen:>> Pin 1: reset> Pin 2: external clock (Quarzoszillator)> Pin 3: Widerstandsnetzwerk mit Tastern (einlesen via ADC)> Pin 4: GND> Pin 5: display clock> Pin 6: display data> Pin 7: display latch> Pin 8: VCC>> Trickst man das display latch noch weg, kann man sogar noch ein> DCF-Modul an diesen Pin hängen.
Man kann das DCF-Signal auch als "3. Taster" über Pin 3 einspeisen.
talentloser Spaten schrieb:> Man kann das DCF-Signal auch als "3. Taster" über Pin 3 einspeisen.
Um es NOCH WEITER zu treiben, man kann auch
DCF + TASTE1 + TASTE2 über ein Widerstandsnetz an DATA vom Shifter
hängen.
Zwischendurch wird DATA halt auf ADC-Eingang geschaltet und DCF/TASTEN
eingelesen, bei Bedarf wieder auf Ausgang um den Shifter zu bedienen.
Dann sind schon 2 PINS am TINY13 frei...
ERGÄNZUNG
======
Um es NOCH WEITER zu treiben, man kann auch
DCF + TASTE1 + TASTE2 über ein Widerstandsnetz an DATA vom Shifter
hängen.
Zwischendurch wird DATA halt auf ADC-Eingang geschaltet und DCF/TASTEN
eingelesen, bei Bedarf wieder auf Ausgang um den Shifter zu bedienen.
Dann sind schon 2 PINS am TINY13 frei...
======
Immer noch viel-zu-viele Ports...
LATCH kann man durch etwas RC-Hühnerfutter ersetzen:
Wenn so-und-so-lange kein CLOCK mehr kommt wird auto-gelatcht.
Habe ich wg. Pinmangel schonmal gemacht.
DCF+TASTE1+TASTE2 über R-Netz sind nur 8 Zustände, die per ADC simpel
beherrschbar sind.
Nun sind schon 3 Pins am TINY13 frei...
>Man kann das DCF-Signal auch als "3. Taster" über Pin 3 einspeisen.
Ja, mit einem Transistor zur Entkopplung des (meist sehr hochohmigen)
Ausgangs des DCF-Moduls. Das brächte aber wieder ca. drei Bauteile mehr
auf die Platine. Außerdem: Was macht man dann mit dem freien Pin? ;-)
Ich denke, die Frage ist hier nicht, ob man die Aufgabe mit einem
ATtiny13 prinzipiell lösen kann (denn die Antwort darauf ist klar: Mit
genügend I/O-Schieberegistern versorgt kann er es definitiv), sondern
mit welcher Außenbeschaltung man den besten Aufwand-zu-Nutzen-Tradeoff
erreichen kann.
(An einen freien Pin könnte man aber tatsächlich noch etwas Sinnvolles
anschließen: Einen Lautsprecher für eine Weckfunktion.)
LostInMusic schrieb:> (An einen freien Pin könnte man aber tatsächlich noch etwas Sinnvolles> anschließen: Einen Lautsprecher für eine Weckfunktion.)
Ja, aber bitte nicht bei nem Gerät mit nur zwei Knöpfen >_>
Das ist nicht mehr des 21sten jahrhunderts würdig.
Alex G. schrieb:> Ja, aber bitte nicht bei nem Gerät mit nur zwei Knöpfen >_>> Das ist nicht mehr des 21sten jahrhunderts würdig.
Du meinst, es darf nur ein Knopf sein, mit "lange drücken", "kurz
drücken", "zweimal kurz tippen" und "morsen"? :-D
S. R. schrieb:> Alex G. schrieb:>> Ja, aber bitte nicht bei nem Gerät mit nur zwei Knöpfen >_>>> Das ist nicht mehr des 21sten jahrhunderts würdig.>> Du meinst, es darf nur ein Knopf sein, mit "lange drücken", "kurz> drücken", "zweimal kurz tippen" und "morsen"? :-D
Genaugenommen braucht so eine Uhr gar keinen Stellknopf.
Nach dem Einschalten steht die Uhrzeit auf, sagen wir, komfortablen
08:15h. D.h. jeden Tag gibt es die benutzerfreundliche Chance, die Zeit
korrekt zu stellen. Hier offenbart sich auch ein weiterer Vorteil eines
12h-Laufwerks...
Hallo!
Eine LED-Uhr wird ja sicherlich aus dem Netz versorgt.
Die 50 Hz sind (langzeit)stabil genug für eine Uhr.
Da ist ein AtTiny13 mit internem Takt mehr als ausreichend.
Macht man seit Jahrzenten so.
Route 6. schrieb:> Macht man seit Jahrzenten so.
Ja, war früher ganz brauchbar. Aber im Februar und März dieses Jahres
sind dann all die mit einer solchen bis zu 6 Minuten zu spät gekommen.
Und zeitgemäß ist es auch nicht mehr, selbst wenn möglicherweise die
Umstellerei im Frühjahr und Herbst wegfallen wird.
Darum sagte er "langfristig". Diese sozusagen verzögerten Sinuswellen
wurden dann anschließend nachgeholt.
Weshalb manch einer dann erneut die Uhren in die andere Richtung stellen
musste.