Guten Abend, ich bastel im Moment an einer Uhr mit 6x 17 Segment Nixie Anzeigen, das Projekt soll mein Einstieg in den AVR werden also seit bitte gnädig ;-) Um was gehts? Die 6 Anzeigen werden per Schieberegister angesteuert, (Multiplexen geht auf die Lebensdauer) Herzstück ist ein Atmega32. Der bekommt zusätzlich Daten von einem Temperatur/Feuchtigkeitssensor, (SHT25, über I2C) es gibt einen IR-Empfänger (der bei Tastendruck auf die Fernbedienung die Anzeigen für ein paar Minuten aktiviert) sowie einen Empfänger für das DCF77 Signal. Ist kein DCF77 Empfänger vorhanden soll der AVR seinen Takt aus einem 10MHz Quarzofen (OCXO) der hier noch rumliegt bekommen, dieser wird per HighSide Schalter eingeschaltet. Warum? Der Quarzofen verbraucht ständig ~1,5W, für den Dauerbetrieb ist mir das zu viel. Die Idee ist nun den OCXO an den XTAL1 des AVRs zu legen als externer Oszillator, bei DCF77 Empfang wird der Quarz der eingebauten RTC (Q3) verwendet und der OCXO abgeschaltet. Ich weiß nur eben nicht wie der AVR reagiert wenn plötzlich im Betrieb der Takt vom Oszillator fehlt, vermutlich bleibt er einfach hängen? Man könnte vielleicht auf den internen Oszillator schalten nur arbeitet der sicher mit einer anderen Frequenz, das wird denke ich genauso Probleme bereiten. Wenn das alles nichts hilft teile ich die 10MHz auf 1Hz runter und lege die auf einen Portpin, dann darf der Atmega32 einfach mitzählen. So richtig sauber ist die Lösung denke ich aber nicht. Habt ihr bessere Ideen? Danke! Gruß Jan
Uhrenmann schrieb: > Quarz der eingebauten RTC (Q3) > verwendet und der OCXO abgeschaltet. Ich weiß nur eben nicht wie der AVR > reagiert wenn plötzlich im Betrieb der Takt vom Oszillator fehlt, > vermutlich bleibt er einfach hängen? So isses. Nimm was anderes als AVR, bei modernen µC kann man normalerweise die Taktquelle im laufenden Betrieb ändern. Bei AVR geht das IIRC nur über die Fuses.
Q3 in Kombination mit DCF reicht doch völlig; einmal am Tag DCF auswerten, den Gangunterschied berechnen und das dann als Gangkorrektur für den Q3 einfließen lassen. Der OCXO ist hier unnötig, da gibt es sicher bessere Anwendungsfelder, oder eben einen Platz in der Glasvitrine.
Wow, das ging ja schnell. Vielen Dank! Ich wollte den AVR verwenden weil es da viel Beispielcode gibt, zum Einstieg nicht verkehrt bin aber natürlich auch für andere Controller offen. Kannst Du mir einen gängigen uC empfehlen? Gruß Jan
>Q3 in Kombination mit DCF reicht doch völlig; einmal am Tag DCF >auswerten, den Gangunterschied berechnen und das dann als Gangkorrektur >für den Q3 einfließen lassen. > Der OCXO ist hier unnötig, da gibt es sicher bessere Anwendungsfelder, >oder eben einen Platz in der Glasvitrine. Der OCXO ist nur dafür gedacht wenn der DCF77 Empfänger nicht vorhanden ist oder am Standort kein Signal hat. (Wobei die meisten Funkuhren sogar in meinem Keller Empfang haben) Sonst reicht der Uhrenquarz von der internen RTC sicherlich. Es geht eher um die Faszination des Bauteils, der liegt auch schon viel zu lange ungenutzt rum. ;-) Gruß Jan
Uhrenmann schrieb: > Die Idee ist nun den OCXO an den XTAL1 des AVRs zu legen als externer > Oszillator, bei DCF77 Empfang wird der Quarz der eingebauten RTC (Q3) > verwendet und der OCXO abgeschaltet. Verfrachte den OCXO dahin, wo er gehört und kauf' einen Uhrenquarz für ein paar Cent.
Nun denn. Beim ATmega32 lässt sich die Quelle des Systemtaktes nicht per Software umschalten. Es bliebe also nur, ihn auf 'externer Takt' einzustellen und per zusätzlicher Hardware zwischen zwei externen Oszillatoren, einer davon der OCXO, umzuschalten. Oder eben, wie Sie bereits schrieben, das OCXO-Signal, auch per zusätzlicher Hardware, soweit herunterzuteilen, dass der ATmega32 es zählen kann.
OK, wenn die Idee wirklich nicht gut ist bleibt der OCXO wo er ist oder kommt mal in einen Frequenzzähler. Ist es nicht praktischer komplett auf die RTC zu verzichten und einen einigermaßen vernünftigen Oszilator (TCXO z.B.) an den Takteingang des AVR zu hängen?
Dies nun halte ich weitgehend für Geschmackssache, da gibt es mehrere Möglichkeiten. Und die RTC-Modul-Fraktion wird sicher gleich ein Ebay-Angebot, 3 Stück für einsfuffzig oder so ähnlich, vorschlagen, Genauigkeit 1 oder 2 ppm - nun ja, sogar Reichelt bietet etwas, wenn auch für 2.75 EUR.
Uhrenmann schrieb: > OK, wenn die Idee wirklich nicht gut ist bleibt der OCXO wo er ist oder > kommt mal in einen Frequenzzähler. > Ist es nicht praktischer komplett auf die RTC zu verzichten und einen > einigermaßen vernünftigen Oszilator (TCXO z.B.) an den Takteingang des > AVR zu hängen? Nein. Eine RTC läuft mit einer CR2032 Zelle mindestens 5 Jahre. Ich habe in einem anderen Thread (Beitrag "Re: Interne Uhr Microcontroller") einen DS3231 erwähnt, der in einem ganzen Jahr maximal eine Minute falsch geht. Die Kurzzeitstabilität reicht immer aus, um einen kurzzeitigen DCF77-Ausfall abzufangen, selbst einen Monat ohne Empfang wirst Du in der Regel kaum bemerken. In dem CHip steckt einiges an Know-How - das musst Du erstmal selber implementieren können. Dein AVR braucht auch einfach viel mehr Energie - es ist halt alte 5V-Technik. Ja, es gibt auch etwas modernere AVRs, aber Du hast Dir zielsicher eine alte Kamelle ausgesucht. Eine für diesen Anwendungsfall geeignetere Architektur wäre z.B. MSP430 - der kann auch seine Taktquelle z.B. dynamisch und glitchfrei umschalten und hat noch andere nette Gimmicks. Auch nicht schlecht sind die Teile von Energy Micro, jetzt SiLabs. fchk
Nur am Rande, es fällt mir gerade im Schaltplan auf: AVcc nicht anzuschließen ist eine schlechte Idee.
Ich weiß, die 8 Bit AVRs sind überholt, mein Gedanke war wie gesagt leichter Einstieg weil es tausende Projekte mit diesen Controllern gibt. Vermutlich ist es aber sowieso besser gleich mit modernen Bauteilen zu starten. Den MSP430 schaue ich mir auf jeden Fall an, der scheint ja eine USB Schnittelle zum Programmieren zu haben was ziemlich praktisch wäre. Der Preis für eine externe RTC wäre mir auch erstmal egal, ist ja ein reines Hobbyprojekt ohne Kostendruck. Ich denke so werde ich das dann realisieren, MSP430 + externen RTC Baustein. Nochmals vielen Dank für Eure/Ihre Tipps! Gruß Jan
Zwar bedauere ich, einen zukünftigen AVR8-Mitstreiter verloren zu haben, wünsche aber trotzdem viel Spaß & Erfolg!
Uhrenmann schrieb: > Um was gehts? Die 6 Anzeigen werden per Schieberegister angesteuert, > (Multiplexen geht auf die Lebensdauer) Was meinst du? Was haben Lebensdauer und Multiplexen zusammen? Man kann so und so machen, je nachdem. Beides legitim. Uhrenmann schrieb: > Ist kein DCF77 Empfänger vorhanden > soll der AVR seinen Takt aus einem 10MHz Quarzofen (OCXO) der hier noch > rumliegt bekommen, dieser wird per HighSide Schalter eingeschaltet. > Warum? Der Quarzofen verbraucht ständig ~1,5W, für den Dauerbetrieb ist > mir das zu viel. > > Die Idee ist nun den OCXO an den XTAL1 des AVRs zu legen als externer > Oszillator, bei DCF77 Empfang wird der Quarz der eingebauten RTC (Q3) > verwendet und der OCXO abgeschaltet. Ich glaube, ATmega32 ist hier weniger bequem als etwas aus der Reihe 88-168-328 oder auch 324-644-1284. Die haben Prescaler für F_CPU, im Programm umschaltbar. So kannst du kritische Sachen schnell machen und was nicht so schnell sein muß, langsamer. Z.B. mit 20 MHz Wichtiges und dann mit 20000000/256=78125 Hz etwas Unwichtiges. Außerdem: wozu externe Oscillator? Hier reicht einfache Quarz und 2 Kondensatoren. Viel stromsparender. Uhrenmann schrieb: > das > Projekt soll mein Einstieg in den AVR werden Ist dein Vorhaben nicht zu kompliziert für Einstieg? Du willst ja alles und sofort: externe Frequenzen umschalten, dann noch Timer 2 asynchron für Uhr... Versuche mal zuerst etwas einfacher machen. Es gibt genug Quellen für Fehler. Wenn du alles gleich machst, findest du sie einfach ne.
:
Bearbeitet durch User
Die neuen Attinys können problemlos die Takquelle umschalten. Da die auch nur einen Pin für Reset und Programmieren brauchen, bleiben dir noch 17 andere (20 Pins, zweimal Versorgung, einmal Prog/Reset). Vielleicht reicht das ja (Habs jetzt nicht nachgezählt in deinem Schaltplan).
>Zwar bedauere ich, einen zukünftigen AVR8-Mitstreiter verloren zu haben, >wünsche aber trotzdem viel Spaß & Erfolg! Vielen Dank, werde ich sicher haben. (Zumindest Spaß) >Was meinst du? Was haben Lebensdauer und Multiplexen zusammen? >Man kann so und so machen, je nachdem. Beides legitim. Die Röhren dürfen laut Telefunken zwar gemultiplext werden, ich meine aber gelesen zu haben das das häufigere Zünden mit (vorallem) höherem Strom auf die Lebensdauer bei der Art von Anzeige geht. Die Teile sind mittlerweile recht teuer und schlecht verfügbar, ich möchte es also nicht riskieren. Ein paar 74HC595 + Transistoren gibt es für wenige Euro sodass man sich da keine Gedanken machen muss. Datenblatt für interessierte. Die gab es wohl nur kurz weil dann LED Anzeigen einfacher und günstiger wurden: http://www.jogis-roehrenbude.de/Roehren-Geschichtliches/Nixie/ZM1350/ZM1350.pdf
>Außerdem: wozu externe Oscillator? Hier reicht einfache Quarz und 2 >Kondensatoren. Viel stromsparender. Das wird so gemacht nachdem ich jetzt einen extra Chip für die RTC geplant habe. >Ist dein Vorhaben nicht zu kompliziert für Einstieg? Du willst ja alles >und sofort: externe Frequenzen umschalten, dann noch Timer 2 asynchron >für Uhr... Versuche mal zuerst etwas einfacher machen. Es gibt genug >Quellen für Fehler. Wenn du alles gleich machst, findest du sie einfach >ne. Die Idee ist es langsam aufzubauen. Schritt 1 wäre "nur" die Anzeigen per Schieberegister bedienen (+ Timeout damit sie nicht ständig leuchten) und die RTC. DCF77, Temperatur, Fernbedienung (...) kann man später noch bei Bedarf erweitern, die Leiterplatte lasse ich aber machen sodass ich die ganzen Bauteile schon im Layout vorgesehen habe. Zu viel für den Start?
Uhrenmann schrieb: > Die Idee ist es langsam aufzubauen. Schritt 1 wäre "nur" die Anzeigen > per Schieberegister bedienen (+ Timeout damit sie nicht ständig > leuchten) und die RTC. DCF77, Temperatur, Fernbedienung (...) kann man > später noch bei Bedarf erweitern, die Leiterplatte lasse ich aber machen > sodass ich die ganzen Bauteile schon im Layout vorgesehen habe. > Zu viel für den Start? Problem ist so: natürlich brauchst du eine Leiterplatte, um guten GND und VCC zu haben und überhaupt, so ist es bequemer und sicherer, als mit dünnem Draht und Stecker. Aber nach deinen ersten Schritten wirst du mit Garantie kleine Veränderungen auf der Platte wünschen, die dann nicht so einfach zu machen sind. Besser wäre es, schrittweise Prototypen zu machen. Ich würde doch lieber multiplexieren. Freie Pins hast du ja genug. DU brauchst dann 7 oder 8 Pin für Segmente und 6 Pin für Zeichen (evtl mit Transistoren verstärkt). Du brauchst sowieso Systemtakt (für Tasten usw), so kannst du auch Anzeige in Timer-ISR bedienen. Schieberegister bringen hier nichts: du muß sowieso die Ziffer ständig erneuern. Nur mehr Leiter auf der Platte und mehr Platz. Auch mehr Widerstände.
:
Bearbeitet durch User
Maxim B. schrieb: > Schieberegister bringen hier nichts: du muß sowieso die Ziffer ständig > erneuern. Nur mehr Leiter auf der Platte und mehr Platz. Auch mehr > Widerstände. Gerade Schieberegister machen das Layout sehr einfach, man plaziert es direkt an der Röhre. Auch kann Multiplexen leicht den DCF-77 Emfpang stören, daher sind Schieberegister unproblematischer. Widerstände braucht man genau einen je Röhre. Es gibt auch Schieberegister für hohe Spannung, z.B. HV5522 von Microchip, die Röhren direkt treiben können.
:
Bearbeitet durch User
S. Landolt schrieb: > Nur am Rande, es fällt mir gerade im Schaltplan auf: AVcc nicht > anzuschließen ist eine schlechte Idee. Und auch bitte den im Moment noch unbeschalteten zweiten GND Anschluss. Für die Uhr reicht es doch völlig, den schon vorgesehenen 32,768kHz Quarz zu benutzen und meinetwegen mit DCF77 zu synchronisieren. Der Rest des MC kann auch mit dem internen RC Oszillator laufen, das ist dann völlig egal.
:
Bearbeitet durch User
Uhrenmann schrieb: > Es geht eher um die Faszination des Bauteils, > der liegt auch schon viel zu lange ungenutzt rum. ;-) Dann laß ihn weiter rum liegen. Nimm ein 32kHz Uhrenquarz an Timer 2. Der reicht dicke, um DCF-77 Fehler zu überbrücken. Wenn Du Lust hast, kannst Du mit DCF-77 einen Korrekturwert ermitteln lassen und im EEPROM abspeichern. Dann ist der Uhrenquarz auf wenige Sekunden / Jahr stabil.
Peter D. schrieb: > Auch kann Multiplexen leicht den DCF-77 Emfpang > stören, daher sind Schieberegister unproblematischer. Einmal hatte ich so ein Problem, mit Vakuum-Fluoreszenzdisplay und Kurzwellenempfänger. Aber ich glaube, das lag eher in unsauberer Schaltung: ich sollte dV/dT begrenzen.
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.