PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Binäre Uhr



LuZ
05.07.2008, 18:16
Hallo Leute,

wie der Titel schon sagt, möchte ich demnächst eine Binäre Uhr bauen. Dazu habe ich mir auch schon Gedanken gemacht...

Da dieses Projekt mein erstes Projekt ist, habe ich noch ein paar Fragen:
1) Ist der Schaltplan so funktionsfähig?
2) Kann ich diese LEDs
http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=A5331;GROUPID=3018;ARTICLE=6 1102;START=0;SORT=artnr;OFFSET=1000;SID=26@PLQF6wQ ARoAABtV4n08881ef3d33b9804164f7a720532a648a
beutzen und alle 16 stück direkt (ohne Transistor) nan die einzelnen PORTs vom Mega32 aus ansteuern.

Programmieren werde ich den uC in C.

vielen Dank schon mal für eure Hilfe

fhs
05.07.2008, 18:34
Hallo,

sicher eine Möglichkeit!

Ein paar Dinge kannst Du Dir für den Anfang (und speziell dieses Projekt) vereinfachen, da Du Dir einen Prozessor mit sehr viel I/O ausgesucht hast (fast etwas Overkill für Dein Projekt): Vermeide die Mehrfachbelegung der ISP-Pins! Du könntest PB0-PB3 für die Stunden nehmen, dann blieben MOSI/MISO/SCK frei.

Allerdings: Mit 4 Bits kannst Du nur die Stunden von 0-15 anzeigen! Willst Du nicht lieber 5 Bits für die Stunden wählen? Am besten nimmst Du auch PORTD, der bisher ja ungenutzt ist.

AVCC musst Du anschließen, denn der betreibt PORTA.

Die Reset-Beschaltung stimmt nicht, die 10k nach Vcc sind optional (=OK), aber Dein Taster muss nach GND.

Soweit beim schnellen Drüberschauen.

Viel Spaß und Erfolg!

Gruß

Fred

fhs
05.07.2008, 18:42
PS: Zu Deiner Frage
Kann ich diese LEDs
http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=A5331;GROUPID=3018;ARTICLE=6 1102;START=0;SORT=artnr;OFFSET=1000;SID=26@PLQF6wQ ARoAABtV4n08881ef3d33b9804164f7a720532a648a
beutzen und alle 16 stück direkt (ohne Transistor) nan die einzelnen PORTs vom Mega32 aus ansteuern.

Zwei Überlegungen dazu: Uf der LED ist 3,3V. Gehen wir mal von 5V (etwas zu hoch) am I/O-Pin aus. Also (5V-3,3V)/1000Ohm=1,7mA .
Das liegt ohne Zweifel unter dem Maximalwert von 40mA pro I/O-Pin. Allerdings darf der Gesamtstrom 200mA beim ATmega32 im DIL-Gehäuse nicht überschreiten. Vermutlich möchtest Du die LEDs etwas heller haben; du kannst also mal nachrechnen, wie klein die Serienwiderstände sein dürfen, um die Grenzwerte des ATmegas und die Grenzwerte der LED nicht zu überschreiten. Mit 4-5mA werden die LEDs sicher schon schön hell leuchten!

Gruß

Fred

SprinterSB
07.07.2008, 10:10
Helle/superhelle LEDs sind auch mit 1-1.5mA schon mächtig hell, und sind bei dunkelm Umgebungslicht dann schon fast unangenehm.

Bei der LED-Auswahl würde ich auf großen Öffnungswinkel achten (>80°), damit die LEDs aus allen Blickwinkeln etwa gleich hell erscheinen.

Die PullUps an den Tastern kannst sparen, es gibt ja interne PullUps an den Ports.

Die VCC würde ich etwas besser abpuffern, nen kleiner ELKO reicht.

Für den Zeitabgleich ist ein Funkuhr-Modul ganz nett. Auch wenn Du jetzt noch keins dranbauen willst, kannst Du schon ein Anschluss dafür vorsehen: VCC, GND und 1-2 normale I/O-Ports reichen dazu.

MeckPommER
07.07.2008, 10:25
Neben dem kleinen Elko würde ich dem 7805T noch eine Schutzdiode spendieren, die paar Cent sollten immer übrig sein.
Was die LEDs angeht, so vielleicht auch mal nach Low Current LEDs schauen.
Softwareseitig vielleicht auch mal an Dimmbarkeit der LEDs denken, geregelt über einen LDR ... man kann auch aus kleinen Projekten einen Elefanten machen, z.B. mit RTC-Modul, Gold-Caps für den Stromausfall usw ... :-)

Bin schon gespannt auf Bilder der fertigen Uhr!

Viel Erfolg und Gruß MeckPommER

Jaecko
07.07.2008, 10:33
Ich hab bei meiner Binäruhr die SLH-LEDs (ebenfalls Reichelt) verwendet; Wenn die Uhr irgendwo weiter weg steht, sind die ganz ok. Für "Schreibtischbetrieb" aber doch eher ungeeignet; schaut man direkt von vorne drauf, blendets ziemlich; sieht man seitlich drauf, dann sieht man kaum was.

Bei der Trinary-Clock hab ich dann diffuse LEDs verwendet, da wars dann schon besser.

LuZ
07.07.2008, 19:22
Danke für die zahlreichen und hilfreichen Antworten.

Die Uhr später mit einem Funkuhr-Modul zu erweitern ist ein sehr guter Vorschlag und ich werde ihn auf jeden Fall im Hinterkopf behalten.

Einen LDR werde ich schon gleich mit einbauen, die Idee dazu hatte ich gestern schon. Wie könnte ich die LEDs am besten dimmen, per PWM?!

Zum Glück habe ich ab Mittwoch Ferien, dann habe ich mehr Zeit.

fhs
07.07.2008, 19:26
Hallo LuZ,


... Wie könnte ich die LEDs am besten dimmen, per PWM?!


Klar: s.a. https://www.roboternetz.de/phpBB2/viewtopic.php?t=41572

Schöne Ferien!

Gruß

Fred

LuZ
09.07.2008, 11:59
@MeckPommER

...dem 7805T noch eine Schutzdiode spendieren, die paar Cent sollten immer übrig sein...
Was für eine Diode meinst du genau mit Schutzdiode? Eine Zehner Diode (5V) oder einfach ne Standart Diode?


LEDs per PWM zu dimmen, klappt super, hab ich grade getestet, das ist kein Problem.

Was für einen LDR würdet ihr mir empfehlen?

fhs
09.07.2008, 13:26
Hi,


...Was für eine Diode meinst du genau mit Schutzdiode? Eine Zehner Diode (5V) oder einfach ne Standart Diode?

Bin zwar nicht MeckPommER, versuche aber trotzdem mal eine Erklärung.
1. Prinzipiell könntest Du den 7805 mit einer auf der Eingangsseite in Serie geschalteten Diode (in Frage käme z.B. eine Gleichrichterdiode mit entsprechender Stromfestigkeit, wenn Du die 0,7V "verlieren" kannst) gegen Verpolung schützen.
2. Als Schutz bietet sich ferner bei großen Kondensatoren auf der Ausgangsseite des 7805 auch noch eine Diode von Ein- (Kathode der Diode) zum Ausgang des Reglers (Anode der Diode) an. Falls es jetzt zu einem eingangsseitigen Kurzschluss kommt, fließt der Strom aus dem "dicken" Kondensator nicht mehr über den Regler, der dadurch zerstört werden könnte, sondern durch die Diode. Die Datenblätter sagen mehr dazu, z. B. Figure 1 hier (http://www.futurlec.com/Linear/7805T.shtml).
3. Der LDR-Typ sollte keine Rolle spielen. Der preisgünstigste und leicht erhältlichste wäre meine Wahl!

Viele Grüße

Fred

LuZ
11.07.2008, 13:39
So, danke noch mal für die Hilfestellung.

Ich habe jetzt mal den Schaltplan verbessert.
1) Ich werde die internen Pull-up Widerstände für die Taster verwenden.
2) Dioden zum Schutz hinzugefügt
3) Keine Port Doppelbelegung (ISP)
4) Spannungsteiler/LDR eingefügt. Da bin ich mir noch nicht so ganz sicher ob das so geht. Ich werde diesen http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A54;GROUPID=3045;ARTICLE=475 12;START=0;SORT=artnr;OFFSET=16;SID=26OqSsl6wQARoA AH@dQWI260eb60b8ce3af98ba4b807641967462 Fotowiderstand benutzen. Sein Widerstand sollte bei Zimmerbeleuchtung (ca 1000 lux) nicht unter 1k fallen, soweit ich das dem Datenblatt entnommen habe.

Entschuldigt, wenn mein Schaltplan etwas unübersichtlich ist, ich arbeite zum ersten mal mit Eagle 5.

Mir fällt grad noch das mit dem Vorwiderständen für die LEDs ein. Ich glaub da nehme ich 390 Ohm (5V-3,3V)/390 = 4,4mA bei 16 LEDs wären das ca. 70mA < 200mA Gesamtstrom. Das hab ich jetzt im Schaltplan noch nicht geändert.

fhs
11.07.2008, 15:13
Hi,

Vcc und AVcc sowie Aref haben noch ein paar dicke Probleme; Du hast Dir wohl aufgrund der unübersichtlichen Darstellung mit dem Schaltplan-Editor selbst ein Beinchen gestellt. In der Anlage mal eine auf die Schnelle geänderte Version. Besser als ein RC-Glied an Avcc (mit z.B. 47Ohm und 100nF) eignet sich der Vorschlag aus dem Datenblatt: LC-Glied mit 10μH und 100nf. Was Du mit Aref machst, hängt von Deiner Software-Auswahl für Aref zusammen; siehe ausführliche Diskussion hier (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=384134).

Hier ein Beispiel zur Dimensionierung des LDR-Spannungsteilers: http://www.kpsec.freeuk.com/vdivider.htm . Für Deinen LDR also:
R= Wurzel(70*1000*2*1000000)Ohm~37000Ohm~36kOhm

Die Stecker-Beschaltung und Nummerierung der Pins habe ich nicht überprüft.

Es sieht so aus, als ob Du weiter bei einer 12-Stunden-Uhr bleiben willst? Für 24 Stunden brauchst Du 5 Bits für die Stundenanzeige!

Viele Grüße

Fred

LuZ
11.07.2008, 17:11
Das mit der 12-Stunden-Uhr ist gewollt, weil ich finde, dass es besser aussieht (siehe oben binaere_uhr.JPG) Mittlerweile bin ich allerdings am überlegen, ob ich nicht doch noch auf 24-Stunden aufrüste, denn dann könnte ich links eine 5. LED hinbauen und rechts den LDR... aber das kann man ja auch noch nachträglich ändern.

Ich hab den Schaltplan jetzt etwas übersichtlicher gestaltet. Der ICSP müsste so stimmen.

Da der LDR nicht kleiner als 1kOhm werden sollte, habe ich an AREF einen entsprechenden Spannungsteiler gebaut, damit ich eine möglichst große Auflösung erhalte.

fhs
11.07.2008, 17:27
Hallo LuZ,


Ich hab den Schaltplan jetzt etwas übersichtlicher gestaltet...
Ja, ist gelungen!


Da der LDR nicht kleiner als 1kOhm werden sollte ....
Der LDR sollte laut Datenblatt bei Beleuchtung kaum unter 70kOhm gehen; spiel das doch erst einmal auf einem Steckbrett mit realistischen Beleuchtungswerten durch, ehe Du dich auf Festwiderstände festlegst.

Aref solltest Du trotzdem noch entkoppeln (100nF direkt am Pin nach GND); sonst sehe ich kein Problem mehr.

Viele Grüße

Fred

LuZ
11.07.2008, 18:11
jo prima,
dann werd ich gleich mal alles bestellen...
...den LDR werde ich auf jeden Fall vorher testen.
Danke noch mal für die Hilfe!

LuZ
18.07.2008, 10:21
Hallo,

nachdem am Mittwoch die Teile geliefert wurden, habe ich die Uhr gestern zusammengelötet.
Als ich mir die Lieferung angesehen habe, musste ich feststellen, dass ich aus versehen einen 14-Poligen Wannenstecker bestellt habe. Glücklicherweise ließen sich die äußeren Pins wegdrücken und alles war wieder im Lot.
Außerdem habe ich einen weiteren "Funktions-Taster" angelötet. Und eine 5. LED für eine 24-Stunden-Anzeige.

Heute werd ich das ganze mal Programmieren.

Ist es bei euch eigentlich auch so, dass eine Schaltung bei dem ersten Test meistens nicht Funktioniert und irgendein kleiner Fehler beim Löten passiert ist?

Was das Gehäuse angeht, so war ich anfangs ziemlich unzufrieden, weil ich nichts passendes gefunden habe. Meine Mutter hatte allerdings eine geniale Idee und eine alte Uhr im Keller... seht selbst.

LuZ
18.07.2008, 15:11
Ich habe den uC grade ausversehen ohne Batterie programmiert. Nachdem der Vorgang abgeschlossen war, kam die Meldung, dass ein Fehler beim Schreiben aufgetreten ist jetzt wird er von PonyProg2000 nicht mehr erkannt und das Programm wird auch nicht ausgeführt. Ist der Mega32 jetzt defekt oder hat kann das auch einen anderen Grund haben :-(
Ich habe ihn schon ein paar Mal erfolgreich programmiert => es muss am uC liegen, denn am ISP kann es nicht liegen, weil ich den danach an einer anderen Schaltung getestet habe. Leider habe ich momentan keinen zweiten Mega 32 zum testen.
Vielleicht kann man den uC irgendwie "wiederherstellen"...?

mfg

fhs
18.07.2008, 15:18
Hallo,

"Nicht-Programmierbarkeit" ist meist durch falsche Fuse-Einstellungen bedingt. Kann Deine Programmier-Software die Fuses auslesen, oder klappt auch das nicht?

Gruß

Fred

LuZ
18.07.2008, 15:27
Leider liegt es daran nicht, das hab ich schon getestet. Wenn ich die Fuses lese, kommt die Meldung, dass der uC nicht gefunden wird. Und neueinstellen der Fuses geht auch nicht.

mfg LuZ

fhs
18.07.2008, 17:18
Hallo LuZ,

kannst Du Deine Programmiersoftware dazu zwingen, einen bestimmten AVR zu programmieren, den Du der Software vorgibst, selbst wenn die Chip-ID falsch sein sollte? Das könnte ein Ausweg sein...

MfG

Fred

SprinterSB
18.07.2008, 20:15
Wenn derµC ohne Spannung programmiert wird, fliesst ein Strom von den ISP-Pins über die internen Clamp-Dioden nach VCC und weiter zu C8 (falsch eingezeichnet), der dann leer ist. Es gibt also kurz einen recht hohen Strom, was möglicherweise die Clamp-Dioden frittiert. Möglicherweise sind die dauerleitend geworden?

LuZ
22.07.2008, 17:22
So der Atmega funktioniert dank Fred wieder :D. Meine Selbst-Test-Funktion für die LEDs und Taster funktioniert prima. Leider bekomme ich den 16bit Timer1 nicht in Gang :(

Bis jetzt sieht mein code so aus:


#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <util/delay.h>

//...

#define B_OPT !(PIN_BUT & (1<<PIN_OPT))
#define B_STD !(PIN_BUT & (1<<PIN_STD))
#define B_MIN !(PIN_BUT & (1<<PIN_MIN))
#define B_SEK !(PIN_BUT & (1<<PIN_SEK))

//...

//Zeit-Variablen
unsigned char std;
unsigned char min;
unsigned char sek;

//Timer-Interrupt
ISR(TIMER1_COMPA_vect)
{
sek = sek+1;
if( sek == 60 )
{
sek = 0;
min = min+1;
if( min == 60 )
{
min = 0;
std = std+1;
if( std == 24 )
{
std = 0;
}
}
}
}

//...

void InitTimer()
{
TCCR1B |= (1<<CS12) | (1<<WGM12);//Prescaler = 256; CTC-Mode
OCR1AH = 0x7A; // 8MHz/256 = 31250 <= wert nach 1 Sek.
OCR1AL = 0x12; // "
TIMSK |= (1<<OCIE1A);

std = 0;
min = 0;
sek = 0;
sei(); //Interrupts aktivieren
}

//...

int main(void)
{
Init();
SelfTest();
InitTimer();
while(1)
{
//Uhrzeit anzeigen
PORT_SEK = sek;
PORT_MIN = min;
PORT_STD = std;

//Uhr stellen
if( B_SEK )
{
_delay_ms(100);
sek = sek+1;
if( sek == 60 )
sek = 0;
}
if( B_MIN )
{
_delay_ms(100);
min = min+1;
if( min == 60 )
min = 0;
}
if( B_STD )
{
_delay_ms(100);
std = std+1;
if( std == 24 )
std = 0;
}
}

return 0;
}


Das Einstellen der Uhrzeit über die Taster funktioniert einwandfrei. Leider Funktioniert der Timer nicht. Eigentlich wollte ich das jede sekunde ein Interrupt kommt und dann die Variablen entsprechend erhöht werden.
Was hab ich falsch gemacht beim Timer? Vielleicht habe ich ja das Datenblatt falsch verstanden...

Gruß Luz

fhs
22.07.2008, 18:06
Hallo LuZ,

den Timer hast Du schon richtig programmiert, aber es gibt zwei andere Probleme mit Deinem Code: 1. Die Zeitvariablen müssen "volatile" sein, da Du auf sie innerhalb der ISR und aus anderen Programmteilen zugreifst.
2. Ich schlage vor, du änderst Deine Initialisierung so:

OCR1A = 0x7A12; // 8MHz/256 = 31250 <= wert nach 1 Sek.
TCCR1B |= (1<<CS12) | (1<<WGM12);//Prescaler = 256; CTC-Mode
(also erst OCR1A [von mir vereinfacht] setzen, dann TC1 starten: das hat aber nur beim ersten Durchlauf eine echte Relevanz).

BTW: Benutzt Du das AVRStudio? Falls ja, simulier doch einfach Deinen Code!

Gruß

Fred

SprinterSB
23.07.2008, 00:11
a) schon mal was von "volatile" gehört?
b) OCR1A kannst als 16-Bit-Register verwenden, also OCR1A = ...

zB


OCR1A = (uint16_t) ((uint32_t) F_CPU / PRESCALE / INTERRUPTS_PER_SECOND-1);


Das erspart Dir auch den Rechenfehler (der richtige Wert ist 0x7a11)

LuZ
23.07.2008, 15:32
Danke, mit "volatile" funktioniert es. Davon hab ich aber vorher noch nichts gehört, weil ich globale Variablen bis jetzt auch ohne volatile fehlerfrei benutzen konnte.

Warum muss ich OCR1A noch -1 rechnen?

Gruß Luz

SprinterSB
23.07.2008, 18:48
Schau einfach mal ins Handbuch zu Timer1/Modes of Operation/CTC-Mode. Da ist auch eine Formel.

LuZ
30.07.2008, 18:17
So meine Binäre Uhr tickt jetzt fleißig, die Helligkeit wird automatisch geändert und man kann die Uhrzeit einstellen. Jetzt werde ich noch Animationen hinzufügen, die dann jede halbe/volle Stunde ablaufen und dass sie Nachts in einem bestimmten Zeitraum nicht leuchtet.

Außerdem betreibe ich die Uhr jetzt über ein 9V-AC Netzgerät, weil ich dann keine Batterien wechseln muss. Weil es ein AC Netzgerät ist habe ich noch einen Brückengleichrichter dazugelötet. Funktioniert prima.

Gruß Luz

fhs
31.07.2008, 08:15
Hallo LuZ,

da hast Du ja schnelle Fortschritte mit diesem Projekt gemacht! Zeigst Du uns ein Video oder Bilder? Ich hoffe, Du hast auch einen Regler-IC oder wenigstens eine Zener-Diode für die Erzeugung der Versorgungsspannung des Prozessors im Netzteil. Die LEDs brauchen natürlich keine stabilisierte Spannung.

Viele Grüße

Fred

LuZ
31.07.2008, 12:47
Hallo,

ich glaube ich habe mich etwas falsch ausgedrückt als ich geschrieben habe, dass
ich die Uhr jetzt über ein 9V-AC Netzgerät betreibe.
Ich habe mal den Schaltplan aktualisiert, so wie die Uhr jetzt tatsächlich aufgebaut ist. Ich hoffe da ist es verständlicher, was ich gemacht habe.

Wie ihr am Schaltplan sehen könnt, habe ich den Brückengleichrichter aus Dioden gebaut und kein fertiges Bauteil genommen. Das liegt daran, dass ich keinen Gleichrichter daheim habe und improvisieren musste.
Der 10uF Elko hat zum Glätten nicht ausgereicht, darum habe ich noch einen 100uF hinzugelötet. Nicht dass ihr euch wundert.

Gruß Luz

P.S.: Videos und Bilder kommen noch. Ich will die Uhr nur vorher noch softwaretechnisch etwas verbessern.

SprinterSB
31.07.2008, 13:13
Wozu brauchst Du eigentlich die Kondensatoren über den Gleichrichter-Dioden?

LuZ
31.07.2008, 14:39
@SprinterSB: Das hab ich hier http://www.elektronik-kompendium.de/sites/slt/0201071.htm gelesen, dass man das machen kann um Spannungsspitzen zu verhindern.

ebendt
07.08.2008, 23:45
Jetzt könntest du noch ein 100Hz Signal hinter dem Gleichrichter auskoppeln und als Takt für die Uhr verwenden. Wenn ich mir die billigen Radiowecker ansehe ist die recht genau. (http://www.mikrocontroller.net/topic/69366).

fhs
08.08.2008, 05:39
Hallo,

Jetzt könntest du noch ein 100Hz Signal hinter dem Gleichrichter auskoppeln und als Takt für die Uhr verwenden.
wird das auch heute wirklich noch so bei kommerziellen Radioweckern gemacht?
Ich erinnere mich, vor etwa 12 Jahren in einem Labor eine uralte Präzisionspumpe benutzen zu müssen, die von einem Synchronmotor angetrieben war. Damals habe ich beim Stromversorger angerufen, da ich mir Sorgen um die Stabilität der Netzspannung (und damit um die Fördergenauigkeit der Pumpe) machte. Die Zahlen weiß ich nicht mehr, aber die Netzfrequenz wird (im Mittel) tatsächlich sehr genau eingehalten.

Viele Grüße

Fred

ebendt
09.08.2008, 08:45
Morgen

Ich habe lange keinen Wecker mehr zerlegt :Haue ,daher kann ich es nicht genau sagen. Mein letztes Projekt war die Ansteuerung einer alten Bahnhofsuhr aus einer Uhrenanlage. Dafür habe ich ein 32Khz Quarz verwendet. Die Abweichung ohne weitere Kalibrierung betrug ca. 1 Sekunde in drei Tagen. Für mich war das akzeptabel. Für ein kommerzielles Produkt ist das sicher nicht hinnehmbar. Da Abgleichen Kosten verursacht, wird das mit Sicherheit vermieden. Und wenn mein Takt mit der Stromversorgung kommt ... Für deine (kurz) laufende Pumpe sieht das natürlich ganz anders aus. Ich verwende die 100 Hz gerne, da sie einfach verfügbar sind.

Gruß
Heiko

LuZ
20.08.2008, 22:42
Tach,
habe ich das richtig verstanden, dass meine Uhr mit den 100Hz genauer arbeiten würde als mit einem Timer des µC?? Werde mal einen Versuch starten, wie groß momentan die Abweichung ist.

fhs
21.08.2008, 07:32
Hi,

wenn Du den Quarzoszillator kalibrierst, geht es damit auch recht genau. Mit Netz-Synchronisation bekommst Du vermutlich eine bessere Langzeitstabilität, aber u.U. wird die Kurzzeitstabilität zu wünschen übrig lassen. Wie sieht es denn bisher mit der Laufgenauigkeit Deiner Uhr aus?
Die höchste Stabilität wirst Du mit einem 32,768kHz Quarz erreichen (s.a. http://atmel.com/dyn/resources/prod_documents/doc8002.pdf ).

MfG

Fred

ebendt
21.08.2008, 20:35
Google mal nach Netzfrequenz und Ganggenauigkeit oder auch Synchronuhr. Da findet sich Erstaunliches. Die ganzen billigen Zeitschaltuhren sind Synchronuhren. Ich fand auch den folgenden Link:http://www.ucte.org Interessant finde ich die Frequenzanzeige - den Rest nicht.

LuZ
30.08.2008, 15:38
So ich hab jetzt mal einen Test gemacht und festgestellt, das die Uhr ungefähr jeden Tag eine Sekunde schneller geht. Das ist mir dann doch ein bisschen ungenau.
Darum hab ich mich entschieden einen 32,768kHz Quarz einzubauen. Im Datenblatt des AtMega32 steht auf S.32 folgendes:
"For AVR microcontrollers with Timer/Counter Oscillator pins (TOSC1 and TOSC2), the crystal is connected directly between the pins. No external capacitors are needed. The Oscillator is optimized for use with a 32.768 kHz watch crystal. Applying an external clock source to TOSC1 is
not recommended."
Ist es tatsächlich so einfach, dass ich nur einen 32,768kHz Quarz zwischen TOSC1 und TOSC2 bauen muss (Und die Taster woanders hin...)?? Dann muss ich sicher noch die Fuses entsprechend verändern, nur da bin ich aus dem Datenblatt irgendwie nicht schlau geworden :( also wäre nett, wenn ihr mir das erklären könntet.

mfg LuZ

ebendt
31.08.2008, 10:13
Ich verstehe das so, daß du die CKSEL (3:0) fuses “1001”setzen mußt. (Abschnitt 8.5) CKSEL0 in Verbindung mit den beiden SUT Fuses bestimmen nur die Zeit bis der µC seine Arbeit aufnehemn kann. Wenn er erstmal läuft hat das keine weitere Bewandnis mehr. Mit pogramierter CKOPT Fuse schaltest du die beiden Kondensatoren zu, so daß du dir die externen Kapazitäten sparen kannst.

fhs
31.08.2008, 10:39
Hallo LuZ,


..., dass ich nur einen 32,768kHz Quarz zwischen TOSC1 und TOSC2 bauen muss? ...
eigene Erfahrung habe ich damit nicht. Aber es gibt eine AppNote zu diesem Thema (http://www.atmel.com/dyn/resources/prod_documents/DOC1259.PDF).

Viele Grüße

Fred