Hallo geschätztes Forum, diese DCF Uhr tastet das DCF-Signal mit einem Samplingverfahren ab. Die Impulslängenbestimmung wird nicht durch eine Zeitmessung realisiert. Störimpulse, wenn sie nicht zu extrem sind, beeinflussen die Uhrzeitberechnung kaum. Ein fehlerhafter 100ms Impuls wird weitestgehend unterdrückt, die letzten 100ms des 200ms langen "HIGH"-Impuls sind entscheidend. Kurz nach Programmstart wird die Phasenlage des internen Timers mit dem DCF-Impuls synchronisiert. Die Phase, wird später auch korrigiert (wegen Quarzungenauigkeit), aber nur sehr vorsichtig und behutsam. Der "Turbomodus" versucht, kurz nach Programmstart, die Zeit und das Datum zu errechnen. Der Empfang des kompletten DCF-Protokolls ist nicht zwingend erforderlich. Nach ca. 25s vor Minutenende könnte theoretisch schon das Datum errechnet werden. Durch einen Jumper lässt sich das DCF-Ausgangssignal des DCF-Empfängers anpassen, denn manche DCF-Module geben ihr Signal invertiert wieder. Ach ein interner Pull-UP-Widerstand am DCF-Engangspin lässt sich aktivieren, ist aber mit Vorsicht zu genießen, denn manche DCF-Module besitzen einen sehr hohen Ausgangswiderstand (einige 100k). Kurz nach Programmstart muss die gelbe LED im Sekundentakt kurzzeitig aufleuchten (100..200ms DCF-Eingangssignal). Blinkt sie nicht... Fehler suchen ;-) Die Belegung der PINs lassen sich relativ einfach im Programmcode (ini) ändern. Sonnenaufgang und Sonnenuntergangszeiten sind in einer Tabelle hinterlegt. Eine LED-Variante möchte ich später noch zur Verfügung stellen. Der Programmcode ist nicht sehr optimal gestaltet, ich bitte um Verzeihung, für Hinweise und Kritiken bin ich sehr danbar. Bernhard
... die LED Variante... Kurz nach Programmstart wird die JUMPER-Konfiguration angezeigt: "c0---0" keine DCF-Signal Invertierung "c0---1" DCF-Signal Invertierung (ev. nötig bei Reichelt DCF-Modulen" Anschließend wird der interne DCF-Zeiger angezeigt: z.B. "----12" Bei Minutenende springt er wieder auf "----00", oder das DCF-Protokoll wurde korrekt empfangen und es wird die Uhrzeit dargestellt. Bernhard
Moin liebes Forum, bin totaler Assembler-Anfänger, aber schon länger auf der Suche nach einer prozessorgesteuerten DCF77-Uhr. Habe mir die Software v. Bernhard mal angeschaut u. wenig davon verstanden. Gestern auf meinem Versuchsboard zusammengesteckt, funktionierte auf Anhieb. Anbei ein Foto des Versuchaufbaus. Gruß, fredl
@alle Nicht alle DCF-Module arbeiten so, wie man es gerne hätte. Bei einigen Conrad-DCF-Modulen ist mir aufgefallen, dass die Impulslängen nicht ganz stimmen. Der 100ms lange Impuls ist teilweise 120ms lang und der 200ms ist 220ms lang. Im Vergleich zwischen Conrad und Reichelt, gibt es bei den Impulslängen doch einige Unterschiede, bei den Reichelt-DCF-Modulen sind sie etwas kürzer. Mich hatte es nur gewundert, dass bei einigen DCF-Modulen die Uhren den DCF-Code nicht entschhlüsseln konnten, weil der LOW-Impuls zu lang ist und als HIGH Impuls gedeutet wird. @fredl Ich danke Dir Bernhard
Diese Version kommt besser mit den nicht ganz so optimalen Impulslängen zurecht. Im Oszibild ist ein DCF-HIGH-Impuls(gelb) und die Samling-Aktivität(blau) an einem Reichelt-Modull dargestellt. Bernhard
Die verbesserte LED-Variante. Der Ausgang für die blaue LED kann für einen Oszi genutzt werden, um sich Sampling "A" und Sampling "B" im Zusammenhang mit dem DCF-Eingangssignal anzuschauen. Bernhard
...ein kleines Beispiel, um die Taktfrequenz mit Hilfe des DCF-Signals zu bestimmen: Beitrag "DCF DCF77 Quarzfrequenz Oszillatorfrequenz Taktfrequenz bestimmen ATmega8 Assembler" Bernhard
@Bernhard: Kleiner Tipp: Den Jumper kannst Du Dir sparen, wenn Du nicht die DCF-Pulse als High und Low, sondern nur die Pegeländerungen in entsprechend breiten Fenstern (70..130ms und 170..230ms und 1500-1600ms) abtastest. Dann ist es völlig egal, ob das Modul das DCF-Signal invertiert oder korrekt ausgibt. Ausserdem sollten bei der LED-Version die Digit-Anoden über Treibertransistoren angesteuert werden, um unterschiedliche Helligkeiten bei "1" und "8" zu vermeiden. 51Ohm als Segmentwiderstände halte ich für etwas klein. Edit: AREF bitte nur mit 10n...100n beschalten. Ein 1µF-Elko ist beim Umschalten der Referenz eher hinderlich, da er die Referenzquelle stark belastet und das Umschalten unnötig lange dauert.
@Knut > Kleiner Tipp: Den Jumper kannst Du Dir sparen, wenn Du nicht die > DCF-Pulse als High und Low, sondern nur die Pegeländerungen in > entsprechend breiten Fenstern (70..130ms und 170..230ms und 1500-1600ms) > abtastest. Dann ist es völlig egal, ob das Modul das DCF-Signal > invertiert oder korrekt ausgibt. An diese Möglichkeit dachte ich auch schon, hatte nur etwas bedenken. Ursprünglich sollte das Programm bei Programmstart in einen Lernmodus springen und ermitteln, ob das DCF-Signal vom Empfänger invertiert ist. Aber, die Empfangsbedingungen können bei Prorammstart u.U. so schlecht sein, dass eine falsche Entscheidung zur Invertierung gefällt wird. Ich denke mal darüber nach, wie der Auto-Invertiermodus implementiert werden kann. > Ausserdem sollten bei der LED-Version die Digit-Anoden über > Treibertransistoren angesteuert werden, um unterschiedliche Helligkeiten > bei "1" und "8" zu vermeiden. 51Ohm als Segmentwiderstände halte ich für > etwas klein. In dieser "Sparversion" verzichtete ich bewußt auf diverse Treiber (z.B. FET oder Transistorn). Wenig Hardware, das war das Motto. Aber Du hast Recht, man erkennt einen leichten Helligkeitsunterschied. > AREF bitte nur mit 10n...100n beschalten. Ein 1µF-Elko ist beim > Umschalten der Referenz eher hinderlich, da er die Referenzquelle stark > belastet und das Umschalten unnötig lange dauert. Korrekt, wenn die Referenz permanent umgeschaltet wird, sollte der Wert der Kapazität nicht zu hoch gewählt werden. Trotzdem, bei jeder Umschaltung der Referenz sollte eine angemessene Wartezeit eingelegt werden, bis sich die Spannung am REF-PIN beruhigt hat. Bernhard
Bernhard S. schrieb: > Ursprünglich sollte das Programm bei Programmstart in einen Lernmodus > springen und ermitteln, ob das DCF-Signal vom Empfänger invertiert ist. Muss es nicht. Wenn Du Dich an die vorgegebenen Fensterbreiten hältst, rastet das Programm nach einigen sauberen Pulsen von ganz allein auf das Protokoll ein. Die Pulse, die nicht in die Fensterbreiten passen (Rauschen zum Beispiel) werden ignoriert bzw. herausgesiebt. Auf die Weise werden auch nicht ganz korrekt lange Pulse sicher erkannt und das eingesetzte Modul spielt keine Rolle.
@alle Diese Programmversion untersucht jetzt das Ausgangssignal des angeschlossenen DCF-Moduls und schaltet automatisch in die entsprechende Betriebsart (invertiert / nicht invertiert) um. Die Voreinstellung im Programmcode ist der Automatikmodus. Die Betriebsart wird anschließend im EEPROM gespeichert, und beim nächsten Programmstart als "Starthilfe" verwendet. Die Betriebsart wird intern nur automatisch umgeschaltet, solange noch kein gültiges DCF-Protokoll empfangen wurde. Ist die DCF-Uhr erfolgreich gestellt, lässt das Programm kein Betriebsartenumschaltung mehr zu. Mehrere interne Uhren sind vorhanden: - DCF-Uhr (relativ genau +/- 10ms) - Quarz-Uhr (nur Quarzgenauigkeit, ohne Einfluß der DCF-Uhr) - 50Hz/100Hz Netzfrequenz-Uhr (nur Netzgenauigkeit) - Betriebsstunden-Uhr Der eingebaute "Turbomodus" erlaubt eine Auswertung des DCF-Protokolls, auch wenn es nicht komplett empfangen wurde, somit synchronisiert sich die Uhr relativ schnell bei Programmstart und bei DCF-Empfangsstörungen. Eine LED-Variante stelle ich noch zur Verfügung. Bernhard
Eine "MINI" - Version. Es werden nur noch 3 LEDs angesteuert. Dieser Programmcode könnte als Grundlage für andere Projekte dienen. Bernhard
Die LED-Version. Bei Bedarf kann folgendes genutzt werden: - automatischer DCF-Modul-Erkennung (invertiert/nicht invertiert) - Störunterdrückung. Die 7-Segmentanzeigen werden solange dunkelgetastet, bis das DCF-Signal erfolgreich empfangen wurde. (Bei Programmstart und in den Morgenstunden) - Helligkeitssteuerung - Stunden-Klick - Kurz nach Programmstart, wenn die Uhr noch nicht synchronisiert wurde, wird der Error-Code kurzzeitig angezeigt. Mit relativ wenig Aufwand kann die Anschlussbelegung umprogrammiert werden. Mit etws Glück steht nach Programmstart, durch den "Turbo-Modus", die DCF-Zeit nach ca. 50s zur Verfügung. Bernhard
@ Bernhard: Habe deine neue Software der LED-Variante eingespielt, funktioniert einwandfrei. Autom. Umschaltung zwischen invertiertem u. nicht invertiertem Ausgangssignal funktioniert auch. Lediglich die Datumsanzeige habe ich auf 2x p. Min. reduziert. Zur Diskussion um die Segmentwiderstände: 51 Ohm sind m. E. OK! (5,0 V Betriebspannung minus rd. 2,0 V Schwellspg. des LED-Segments, ./. 51 Ohm, mach rd. 58 mA Segmentstrom. Lt. Datenblatt sind 40 mA erlaubt. Dies bezieht sich aber auf Dauerbelastung (DC). Im Pulsbetrieb (beim Multiplexen folgen nach jedem Puls fünf gleichlange Pausen) kann der Strom gut 5 mal so hoch sein wie bei DC, ohne den Ausgangs-FET zu stark zu quälen. Einen Helligkeitsunterschied (bei 2 zu 7 eingeschalteten Segmenten) konnte ich nicht erkennen. Der würde durch den Spannungsabfall des Kanalwiderstandes des FET im Portausgang enstehen. Mit einem zusätzlichen Treibertransistor würde man dann diesen Fehler aber nur nach "außen" verlegen. Beseitigen könnte man diesen Fehler nur, wenn man die Segmentwiderstände durch eine Konstantstromquelle ersetzt. Alles in Allem hat mich gerade die minimale Außenbeschaltung d. Controllers fasziniert! fredl
@ Bernhard: hab die Uhr nachgebaut ( mit Transistoren für die gemeinsamen Anoden ) und es funktionierte vom Anfang an ohne Probleme. Das DCF77-Modul wurde aus eine alte Funkuhr ( 1€ am Flohmarkt ) rausgeschnitten. Läuft und Synchronisiert sogar im Keller ! Beim Synchronisieren erscheint ab und zu die Meldung E-0-20 oder E-1-18. Was ist das ? Grüße tesseract
Bernhard S. schrieb: > Diese Programmversion untersucht jetzt das Ausgangssignal des > angeschlossenen DCF-Moduls und schaltet automatisch in die entsprechende > Betriebsart (invertiert / nicht invertiert) um. > > Die Voreinstellung im Programmcode ist der Automatikmodus. > > Die Betriebsart wird anschließend im EEPROM gespeichert, und beim > nächsten Programmstart als "Starthilfe" verwendet. > > Die Betriebsart wird intern nur automatisch umgeschaltet, solange noch > kein gültiges DCF-Protokoll empfangen wurde. Ist die DCF-Uhr erfolgreich > gestellt, lässt das Programm kein Betriebsartenumschaltung mehr zu. Warum so kompliziert? Es ist doch gar nicht nötig, zwischen invertiertem und nichtinvertiertem Signal zu unterscheiden. Die absoluten Pegel spielen doch keine Rolle. Du bekommst in jedem Fall Flankenwechsel. Und diese liegen im Bereich von 100 und 200ms beziehungsweise 900 und 800ms und 1900 oder 1800ms in der 59.Sekunde. Diese Flankenwechsel erkennst Du durch Dein Sampling welches auch die Störungen filtert, und die ordnest Du in die entsprechenden Pulsauswertefenster ein. Ein 10ms "Fenster-Timer" würde beispielsweise Werte von 10+-3, 20+-3, 80+-3, 90+-3, 180+-3 oder 190+-3 zurückgeben, die alle in ein Byte passen. Damit hast Du Deine Bitlängen und alles ist gut. Nix Betriebsart und geht immer.
@ Bernhard: wie oft synchronisiert sich die Uhr ? 1x / Tag ; 1x / Stunde ; 1x / Minute ? tesseract
@tesseract >Beim Synchronisieren erscheint ab und zu die Meldung E-0-20 oder E-1-18. >Was ist das ? Das sind die Error-Codes (s. Programmcode) z.B. Paritätsproblem. Diese werden aber nur kurz nach Programmstart angezeigt, bis zur ersten Synchronisation der Uhr. >wie oft synchronisiert sich die Uhr ? Im Idealfall 1 x pro Minute (wenn das DCF-Protokoll fehlerfrei empfangen wurde, grüne LED leuchtet ständig) @Knut >Warum so kompliziert? Es ist doch gar nicht nötig, zwischen invertiertem >und nichtinvertiertem Signal zu unterscheiden. Die absoluten Pegel >spielen doch keine Rolle. Du bekommst in jedem Fall Flankenwechsel. Es ist nicht kompliziert. Es gibt mehrere Lösungsvarianten, für ein Samplingverfahren (keine Zeitmessung), das ist eine mögliche Variante. Vielleicht stellst Du mal eine weitere Lösungsvariante vor, würde dann gern mal das Pro und Contra mit Dir fachlich diskutieren? Das Problem war, die erste Flanke des Sekundenimpulses zu finden. Der interne DCF-Timer wird phasengenau auf diese Flanke hin synchronisiert mit einer Genauigkeit von einigen ms und feinfühlig nachjustiert. Hat den Vorteil, dass die DCF-Uhr relativ genau geht, auch wenn mal der Minutenimpuls unsauber empfangen wurde. Bernhard
Tess Eract (tesseract), hallo Tess Eract (tesseract) möchte gerne nach deiner layoutvorlage die uhr von bernhard nachbauen, wäre es möglich das layout von dir zu bekommen? vielen dank! matze
@matze, kein Problem, kannst bekommen. Ein Problem hab ich nur, das Layout wurde bei der Arbeit erstellt und bis am 07.01.2013 bin ich in Urlaub. Wenn du noch etwas warten kannst, werde ich es am 7-ten Januar uploaden. Du musst dir aber VQE14 Anzeigen besorgen ( gibt's bei e**y.de genug) oder für andere 7 Segment-Anzeigen dein eigenes Board zeichnen. grüße tesseract
guten morgen Tess Eract , danke für deine antwort! .....das wäre super!!! ....klar kann ich noch warten! ....schöne weihnachtstage noch! matze
Ich habe die Uhr auch nachgebaut, allerdings zum Betreiben von größeren LED-Anzeigen BCD zu 7-Segment Decoder dazwischengeschaltet. Ich beschäftige mich allerdings erst seit 4 Tagen mit AVR, habe daher so gut wie keine Ahnung von der Programmierung. Wer kann mir helfen? Ich würde gerne die führende Null in der Zeit von 0:00 bis 09:59:59 unterdrücken. Wie macht man das in dem Programm? Ich habe folgendes probiert: DIGIT_5: LDS temp1,(adr_LED_BYTE_5) rcall BALKEN if temp1,(adr_LED_BYTE_5) > 0 then sbi PORT_DIG_6,PIN_DIG_6 else cbi PORT_DIG_6,PIN_DIG_6 ret Funktioniert aber irgendwie nicht. Wie macht man das richtig?
@Jens
>if temp1,(adr_LED_BYTE_5) > 0 then
In der Assemblerwelt gibt es leider kein "if".
Im Datenblatt des Atmega8 findest Du den kompletten Befehlssatz, z.B.
"tst", "cp", "cpi"
Die Anzeige der Uhrzeit wird im Unterprogramm
"LED_ZEIT_ANZEIGEN:"
aufbereitet. Hier könnte das linke Digit gesondert aufbereitet und
angepasst werden.
Bsp:
LDS temp,(adr_LED_BYTE_5) ; aus SRAM in Register laden
cpi temp, xxx ; Registerinhalt vergleichen
breq Sprungmarke_xyz ; wenn gleich, dann springe nach xyz
Bernhard
@matze, anbei die Layouts für die Uhr / Anzeige. Grüße tesseract
Ich möchte gerne die Uhr "ASSEMBLER_20121020_OK" nachbauen, aber mit einem atmega 16 und 8 Mhz Quarz, ist dies möglich, was muss ich ändern Danke im voraus Sepp
@Sepp
> ... atmega 16 und 8 Mhz Quarz....was muss ich ändern
Ist unproblematisch. Die Warteschleifen müssten auf 8 MHz angepasst
werden und vorallem der Timer, denn er muss gegenüber 16MHz doppelt so
schnell einen Timerinterrupt auslösen.
Bernhard
Hallo! Wie werden beim atmega 16 die Fuse bits im Ponyprog gesetzt. Stimmen die fuse bits für 8 Mhz, und wie für 16 Mhz mfg Sepp
Ja die Einstellungen stimmen, kannst auch bei 16MHz genau so lassen
Moment hier muss auch JTAG demarkiert werden ????? PC Ausgänge ? Beitrag "Hilfe und Tipps bei der Fehlersuche"
Habe die Uhr "ASSEMBLER_20121020_OK" nachgebaut, funktioniert einwandfrei. Wollte dann die Uhr mit Atmega 16 und 16 Mhz nachbauen. Habe die .include "m8def.inc" in .include "m16def.inc" geändert. Darauf bringt mir das Atmelstudio beim compailieren folgende Fehlermeldung C:\atmel_programe\dcf77\atmega16\DCF77_ini.asm(297): error: Relative branch out of reach C:\atmel_programe\dcf77\atmega16\DCF77_ini.asm(301): error: Relative branch out of reach C:\atmel_programe\dcf77\atmega16\DCF77_ini.asm(390): error: Relative branch out of reach C:\atmel_programe\dcf77\atmega16\DCF77_ini.asm(401): error: Relative branch out of reach C:\atmel_programe\dcf77\atmega16\DCF77_ini.asm(404): error: Relative branch out of reach C:\atmel_programe\dcf77\atmega16\DCF77_SONSTIGES.asm(5): error: Undefined symbol: WDCE habe dann in der ini Datei die include Reihenfolge geändert .include "DCF77_TIMER.asm" .include "DCF77_SONSTIGES.asm" .include "DCF77_EXTINTERRUPT.asm" .include "DCF77_DCF.asm" .include "DCF77_LCD_ini.asm" .include "DCF77_LCD.asm" .include "DCF77_EEPROM.asm" ;.include "DCF77_08MHZwait.asm" .include "DCF77_16MHZwait.asm" .include "DCF77_LCD_KURZ.asm" und in der Datei DCF77_SONSTIGES.asm ldi TEMP,(1<<WDCE)|(1<<WDE) in ldi TEMP,(1<<WDTOE)|(1<<WDE) geändert. Die Ur funktioniert aber nicht, es blinkt nur die grüne LED "DCF gültig im 2 Hz Takt. mfg Sepp
@Sepp den Programmcode kann nicht immer 1:1 für einen anderen µC verwendet werden. Er muss Stück für Stück angepasst werden, z.B. SRAM-Belegung, Interrupt-Vektoren, Timer-Register usw. Ist nicht immer ganz einfach. Bernhard
@alle hier sind verschiedene Varianten veröffentlicht, wie per PC das DCF-Signal decodiert werden kann (mit und ohne weiteren µC): Beitrag "Ein VB6-Programm dekodiert das DCF77-Signal. Das kommt von einem Mikrocontroller/avrasm über COM1" Bernhard
Habe die LED-Variante der Uhr mit 20mm hohen 7-Segment Displays gebaut, welche über invertierende PNP Transistoren angesteuert werden. Daher waren kleine Änderungen der Software nötig: cbi / sbi an den entsprechenden Stellen bei der Digit-Ausgabe vertauschen. Für die Platinen (CPU & Display) habe ich je ein einseitiges Eagle-Layout erstellt, das keinerlei Drahtbrücken auf der Bestückungsseite aufweist. Die Uhr läuft bei mir mit ASSEMBLER_2012_09_24_3 und den besagten Änderungen optimal. Gruß Thomas
Hallo! Leider gibt es heute kaum noch Bausätze für Funkuhren zu kaufen - im Gegensatz zu früher. Wäre es an dieser Stelle möglich, dass mir jemand eine Platine und einen programmierten Controller veräussert?!
Hallo tonevi, leider bin ich erst seit kurzer Zeit mit der Programmierung von ATMEL Prozessoren befasst,deshalb habe ich noch einige Probleme, die vorgeschlagene Änderung des Programms, cbi und sbi zu tauschen. Gibt es die Möglichkeit, mir die brennfertige hex-Datei zukommen zu lassen. Die Variante mit den 20mm LED würde ich gern aufbauen, zumal nur einseitige Platinen verwendet werden. Würde mich sehr freuen. gemoe
Hallo gemoe, ich hatte diese Uhr auch als eines meiner Übungs-/Lernprojekte zum Einstieg in die ATMEL-Programmierung benutzt. In der Zwischenzeit habe ich die CPU Platine nocheinmal etwas vereinfacht und übersichtlicher gestaltet. Die Treibertransistoren sind entfallen, und man kann einen ELV DCF-Empfänger gleich in die CPU-Platine einlöten. Zu finden unter: http://www.nord-com.net/thomas.neveling/ Dort befindet sich auch eine brennfertige HEX-Datei (in BASCOM erstellt). Ich habe hierzu auch noch ein entsprechendes Pendant in Assembler mit gleicher Funktion. Die ursprüngliche Uhr habe ich nicht mehr in Betrieb, aber die lauffähige Assembler-Firmware hierzu ist beigefügt. Falls man meine hier im Forum vorzufindende Version nachbaut, sollte man die Segmentwiderstände von 100 Ohm auf z.B. 180 Ohm vergrößern. Hierdurch verringern sich Empfangsstörungen, die durch das LED-Multiplexen entstehen. - tonevi -
Hallo tonevi, recht herzlichen Dank für die schnelle Antwort und die Hilfe. Habe die vorgeschlagenen Möglichkeiten erstmal kurz in Augenschein genommen,bleibt also bloß, reinknieen und probieren. Es wird aber paar Tage dauern, ich melde mich auf alle Fälle. Nochmals danke und bis bald gemoe
Eine aktuelle LCD-Version.... kleinen Bug entfernt und eine Variante, wie ein DCF-Modul mit 2 Adern betrieben werden kann. Bernhard
LED Update 2016 - am Testausgang (LED blau) bessere Messung möglich (Phasenlage, Samplng-A-B) - weniger SRAM - erkennt schneller invertierende DCF-Module - erstaunlicherweise lief die 8MHz Version auch ohne Quarz
:
Bearbeitet durch User
Bernhard S. schrieb: > und eine Variante, wie ein DCF-Modul mit 2 Adern betrieben werden kann. > Gefällt mir! Gruß - Abdul
Saubere Sache! Werde es in das von Falk Brunner konstruierte FrameDisplay einbauen. Beitrag "Brauche Uhr/Zähler/Generator mit Frameanzeige und 100stel Sekunden, RS232 Anschluß" 9 20mm LED-Displays wollen was zum Anzeigen haben!
>Saubere Sache!
Danke
Bedenke bitte, diese DCF-Uhr arbeitet mit einer Genauigkeit
von +/- 20 ms, da das DCF Signal nur alle 10 ms abgetastet wird.
Auch die preiserten DCF-Module liefern kein exaktes DCF-Signal,
der 1 Sekunden Impuls jittert gern mal mal um ca. 3 ms.
Hallo Bernhard, hast Du vielleicht statt der 8MHz Variante dort auch die 16MHz hochgeladen? Die Dateien sind identisch mit denen in der 2016-16MHz.zip und auch das HEX-File darin scheint nur mit 16MHz zu funktionieren. Könntest Du bitte noch die korrekten Files für die 8MHz-Version hochladen? Ansonsten wie immer vielen Dank für diese geniale Arbeit! Bernhard S. schrieb: > LED Update 2016 > > - am Testausgang (LED blau) bessere Messung möglich > (Phasenlage, Samplng-A-B) > - weniger SRAM > - erkennt schneller invertierende DCF-Module > - erstaunlicherweise lief die 8MHz Version auch ohne Quarz
hallo bernhard habe mir die artikel zum thema angesehen. hätte dazu 'ne frage. kann man die mini-version des atmega 8 als empfängerstütze verwenden? hatte schon mehrmals dcf-bausteine die ihr geld fast nicht wert waren. kann man deine minivariante zur impulsformung verwenden? also schlechter dcf-empfangsimpuls in den atmega 8 rein...und an einen anderen pin ordentlich geformten dcf-impuls raus - zur weiterverarbeitung??? z.b. abgriff bei einer vorhanden led am atmega?
Hallo Ulrich,
>kann man deine minivariante zur impulsformung verwenden?
Schöne Idee :-)
Theoretisch ja, wenn die Software auf diesen speziellen Fall angepasst
wird.
Das "LCD Update 2016" könntest Du dafür verenden.
Kleiner Nachteil, die Ausgangsimpulse stehen nicht zeitgleich zur
Verfügung (ca. 200ms verzögert), da erst der DCF-Impuls empfangen und
ausgewertet werden muss.
Bernhard
:
Bearbeitet durch User
hallo bernhard habe gerade den "LCD Update 2016" runtergeladen. ich wollte mir für diesen zweck evtl. eine kl. eagleleiterplatte malen um so etwas bei bedarf mit wenig materialaufwand zu realisieren... und einer uhrenschaltung bei bedarf hinzufügen. ich habe derzeit eine gr. funkuhr mit 100mm anzeigen am laufen welche sehr schlecht synchronisiert... da kleinere uhren derselben schaltung tadellos funktionieren schieb ich's mal auf den empfänger und den standort der uhr. woran könnte den bei deinen lcd-update der dcf-impulsausgang angeschlossen werden? schönen sonntag ulli
Hallo Berhard , Sehr Schöne Arbeit.Ich habe den ELV DCF77-Empfänger mit einen 10K Widerstand an +5V und DCF-Signal.Geht wunderbar.Zeit nach ca. 2-3 Min. von meinen Standort(Bastelzimmer-nicht ganz freie Sicht). Version:2016_8MHz Möchte jetz das ganze auf große SA23 Anzeigen ummünzen und die Datumanzeige deaktivieren. MfG-Martin H. /Bayreuth
Habe ich bereits getan. Anzeigen 100mm,Gehäuse ist ca. 50x50cm. Inklusive Helligkeitsregelung mit Fototransistor.
hallo jens, gibt es unterlagen für deine Uhr? ...Schaltplan, ....file zum nachbauen??? vielen dank matze
matze schrieb: > hallo jens, > > gibt es unterlagen für deine Uhr? > ...Schaltplan, ....file zum nachbauen??? > > vielen dank > matze Beitrag "Re: DCF / DCF77 UHR - LCD LED Samplingverfahren ATmega8 ASSEMBLER"
hallo jens, ich meinte deinen sekundenring mit den leds den gibt es in dem beitrag leider nicht oder habe was nicht gelesen in dem beitrag? vielen dank matze
Hallo geschätztes Forum, ich habe Bernhard`s Uhr in etwas anderer Form nachgebaut. Bernhard bat mich, das Ganze im Forum öffentlich zu machen. Na dann Bitteschön. Ist noch nicht die finale Version. Einige Bauteile dienen erst mal nur als Platzhalter. Wollte etwas anderes ausprobieren und mit dem Beitrag eine Anregung in Richtung einer anderen Anzeigemöglichkeit geben. Die Software funktioniert auf Anhieb. Das DCF-Modul habe ich aus einem alten Wecker ausgelötet, wurde von der Software erkannt und spielt. Viele Grüße, Andreas Frenzel
Andreas Frenzel schrieb: > grrrrr Bild vergessen Hallo Andreas, welche Displays (Bezeichnung) hast Du da verwendet?
guten morgen Andreas, gibt es deinen Schaltplan auch mit weisem Hintergrund? matze
@ Andreas, noch was vergessen, wie funktioniert die heizspannungserzeugung der vfds mit ic8 und wie gross sind die widerstände? wie gross ist die eingangsspannung von ic8? vielen dank matze
Hallo Matze, dein Fragen, betreffend zum Bild, wenn ich es nicht vergesse am Wochenende. Wenn du unter dem Bild die blaue Schrift anklickst, geht das Bild mit einer Lupenfunktion auf. Zur Heizung kurz gesagt: Nein. Als ich anfing das Zeug auf dem Steckbrett zusammen zu stecke, hatte ich nur eine Röhre in Betrieb, DIG0. Da sieht man am schnellsten was passiert, weil die ja ständig hochzählt. Dann habe ich die nächste Röhre dazu gesteckt. Und immer so weiter. Dabei ist mir aufgefallen das IC8 selber zur Heizung wird, was ehr kontraproduktiv ist. Ich denke mal, 6 Heizungen parallel und dann noch bei dieser Art der Beschaltung des 317 die geforderte Differenzspannung von min 5V zwischen Eingang und Ausgang sind suboptimal. Funktionieren sollte das ganze so: R11 und R12 stellen die Spannung ein. Wenn der Spannungsabfall an R14 auf Grund von zu viel Strom 0,7V übersteigt, wird der Transistor leitend und IC8 gegen Masse gezogen und niemand muss sterben. So war der Plan, funktioniert nur so nicht. Werde am Wochenende mal versuche die 6 Röhren in 2 Gruppen zu teilen. Dann je 3 Röhren in Reihe und dann die beiden Gruppen parallel. Ich hatte ja geschrieben, dass ein paar Bauteile erst mal nur als Platzhalter dienen und dies nicht die finale Version ist. Erst mal nur Anregung. Habe nie im Leben damit gerechnet dass da was kommt. Platzhalter deshalb: zum einen wirklich als Platzhalter, das entsprechende Teil wird später, wenn ich es habe und die tatsächliche Größe kenne ersetzt. Und zum andern weil ich es schon fertig gebracht habe, ganze Leiterplatten ohne Stromversorgung zu ätzen. Deshalb als Gedankenstütze als erstes mal so ein Dreibeiner irgendwo hingepappt. Viele Grüße Andreas Frenzel
@ Andreas vielen dank für deine schnelle antwort!!! bin schon älter mit nicht so guten augen und da ist die Zeichnung nicht so gut lesbar. ..sind die widerstandsbezeichnungen nicht 4stellig? schwer zu lesen, im layoutprogramm ist es leicht, ...einfach anklicken.... falls du ein layout machen solltest machst du es öffentlich??? vielen vielen dank matze
@Andreas sorry was vergessen. warum machst du nicht zur strombegrenzung einen widerstand vor dem lm317 und ziehst bei überstrom über den transi nicht adj nach gnd? wozu ist die Diode im heizkreis da? schliesen nicht die Heizungen deinen Spannungsteiler nicht kurz? matze
Andreas Frenzel schrieb: > Werde am Wochenende mal versuche die 6 Röhren in 2 Gruppen zu teilen. > Dann je 3 Röhren in Reihe und dann die beiden Gruppen parallel Du kannst alle Röhren auch parallel mit Wechselspannung heizen und dir dazu einen kleinen (Ringkern)übertrager wickeln, der von zwei Transistoren im Gegentakt angetrieben wird. Geeignete Kerne findest du z.B. in ausgebrannten Energiesparlampen. Stabilisierte Versorgungsspannungen hast du ja, wodurch sich die Schaltung und Berechnung des Wandlers für die Heizung auf ein Minimum reduziert. Sonst nimmt man eben z.B einen TL494. Allenfalls muss man bei Funkuhren darauf achten, dass man mit der Schaltfrequenz nicht den Empfang stört. Aber das betrifft einen evtl. vorhandenen Wandler für die hohen Spannungen genau so.
Ich habe eine Frage zu den Fuse-Bits: wenn ich den atmega8 mit dem 16 MHz - Quarz betreibe: Müssen dann die FUSE-Bits High: 0xC9 und Low: 0xEF sein ?
matze schrieb: > guten morgen Andreas, > > gibt es deinen Schaltplan auch mit weisem Hintergrund? > Bitteschön... Irfanview z.B. kann das ganz einfach über "invertieren aller Farbkanäle".
:
Bearbeitet durch User
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.