Hallo, ich würde gerne eine Uhr mit dem ATtiny45 (+ USB + Pufferbatterie) aufbauen. Momentan gibt es zwei Varianten die ich mir vorstellen könnte. 1. Verwendung des internen Quarzoszillator. Mit PLL wird ein Systemtakt von 16.5Mhz erzeugt wegen USB (AVRUSB). Hier ist schon das erste Problem. Ist der Systemtakt genau genug, um die Abweichungen per Software ausgleichen zu können. Die Normalbetriebsspannung ist 5V. Wenn die Spannungsversorgung abgeschaltet wird, weil z.B. USB nicht mehr benötigt wird, soll die Uhr ganz normal mit einer 3V Batterie weiter laufen. Systemtakt wird soweit wie möglich gesenkt. Durch den PLL hat man den Vorteil, dass der ATtiny45 die meiste Zeit im Idle-Sleep-Mode verbringen kann, anstelle im Active-Mode. Auch hier ist wahrscheinlich das Problem der Frequenzungenauigkeit des internen Quarzoszillator. 2. Verwendungen eines externen 12Mhz Quarz. Verhalten genau wie oben. Jedoch sehe ich den Vorteil, dass die Uhr genauer ist, aber im Batteriemode muss der ATtiny45 trotzdem im Active-Mode weiterlaufen (bei verminderter Frequenz), da kein PLL für den Timer zur Verfügung steht. Also hier kein Sleep Mode Hier stellt sich also die Frage, wie würdet ihr es machen und welche Variante ist sparsamer. Mit welchen Stromverbrauch rechnet ihr, ist unter 100uA realistisch. Beim PLL muss man auch bedenken, dass der bei 64Mhz ist. Danke!
http://www.atmel.com/dyn/resources/prod_documents/6056S.pdf Ist echt gut erklärt vieleicht hilft es dir.
> 1. Verwendung des internen Quarzoszillator.
Den es nicht gibt.
Was es gibt ist ein internes Schatzeisen, das günstigenfalls etwa eine
Viertelstunde pro Tag falsch geht.
Was soll die Uhr machen, abgesehen vom Zeit zählen und intern
verstecken? Denn ein externer 32KHz Quarz mit maximalen Taktteiler
reicht für Uhrzeit aus und lebt von leichtesten Luftzug.
Das ist eigentlich nur ein Modul für meinem VDR, der den PC zur richtigen Zeit für eine Aufnahme aufweckt. Prinzipiell genügt also ein Counter, die Uhr ist in diesem Fall overhead. Beim ATtiny habe ich aber das Problem dass ich kein externes 32KHz Quarz anschließen kann, da der keine TOSC Eingänge hat. Und wie schon gesagt, die 12 oder 16.5Mhz brauche ich für USB. @smokingslim: Danke für die Info, aber der ATtiny hat leider keinen internen RTC.
Für den USB ist der interne R/C nicht ganau genug, über PLL schon gar nicht. Da muß auf jeden Fall ein Quarz dran, bzw. ein externer Quarzoszillator, da der Tiny keine XTAL-Anschlüsse sondern nur einen externen Clockeingang hat. Über einen internen Teiler kann man die Quarzfrequenz dann auf eine Sekunde herunterteilen. Das wird dann auch recht genau.
Stefan Schiekofer wrote: > Das ist eigentlich nur ein Modul für meinem VDR, der den PC zur > richtigen Zeit für eine Aufnahme aufweckt. Nen noch umständlicheren Weg dürfte es kaum geben. Jeder PC hat ne CMOS-Uhr mit Alarmfunktion: http://www.hubertus-sandmann.homepage.t-online.de/vdr_wakeup.htm Peter
Anscheinend kann der interne Quarzoszillator verwendet werden für USB: http://www.obdev.at/products/avrusb/easylogger.html Aber ich denke für eine Uhr ist der zu ungenau. Also komme ich wohl um einen externen Quarzoszillator nicht rum. Aber wie schauffe ich es dann den ATtiny45 mit einer Batterie zu betreiben, ohne dass sie gleich nach 14 Tagen leer ist.
@peda Ich kenne den RTC Alarm, aber das funktioniert bei den modernen Mainboards nicht mehr. Also muss was externes her.
> Anscheinend kann der interne Quarzoszillator verwendet werden für USB:
Was es nicht gibt das kann auch nicht verwendet werden. ES GIBT KEINEN
INTERNEN QUARZ.
Hi, ich würde das wie folgt angehen: 1. Uhrenbaustein von Maxim oder Dallas z.B. DS1374 hat I2C und Alarm Man muss halt eine Uhr mit Alarm heraussuchen. 2. da der VDR mit Linux läuft ist eine Ansteuerung des I2C busses kein Problem, wenn das Board ohnehin schon einen besitzt (dann kann man die Uhr aus dem VDR selbst programmieren) 3. diese Uhrenbausteine laufen meist mit einer Lithium Zelle mehrere Jahre 4. Wenn Du dann noch unbedingt über USB die Uhrzeit von einem anderen Rechner aus programmieren willst, kannst Du immer noch einen Atmel an diesen Bus klemmen und die Uhr direkt ansteuern. Ich würde also z.b. DS1374 nehmen, und dann wenn der VDR eingeschaltet ist die Alarmuhrzeit programmieren. Jetzt schaltet man den Rechner aus und die Uhr läuft über die BAtterie weiter und weckt den Rechner zur passenden Zeit. Falls das MAinboard keinen I2C-Bus besitzt, kann man ja über einen Atmel über USB, seriell o.ä. die Uhr programmieren. Gruß Sven
Normalerweise macht man das beim VDR mit nvram wakeup oder ACPI wakeup. Hast du einen Rechner erwischt, bei das partout nicht möglich ist?
Korrekt, mein Mainboard unterstützt keinen RTC Alarm, das programmiert werden kann. Deswegen hätte ich ja gerne eine externe Lösung. Verwende auch nicht mehr Linux, sondern inzwischen Win. Trotzdem danke für die guten Ideen!!
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.