Hallo zusammen!
Ich habe ein Problem mit meiner Schaltung, vielleicht könnt ihr mir ja
weiterhelfen...
Ich habe an einen Mikrocontroller einen 10MHz Quarz angeschlossen, der
eigentlich für meinen Takt sorgen soll. Außerdem ist noch ein
Stepup-Spannungswandler mit der zugehörigen Schaltung auf der Platine,
um den uC über zwei Batterien mit einer konstanten Spannung von 5V zu
versorgen.
Um ihn zu testen habe ich ein kurzes Programm geschrieben, dass einfach
nur im 5-Sekunden-Takt eine LED an und aus schaltet, um zu sehen ob
alles funktioniert.
1 | #define F_CPU 10000000UL
|
2 | #include <avr/io.h>
|
3 | #include <util/delay.h>
|
4 |
|
5 | int main ()
|
6 | {
|
7 | DDRD |= (1<<PD0);
|
8 |
|
9 | while(1)
|
10 | {
|
11 | PORTD ^= (1<<PD0);
|
12 | _delay_ms(5000);
|
13 | }
|
14 | }
|
Wenn ich jetzt die Fuses im AtmelStudio folgendermassen einstelle:
-SUT_CKSEL auf "EXTOSC_8MHZ_XX_8KCK_65MS" (maximale "Aufwachzeit", >=
8MHz)
-CKDIV8 aus (also den Takt nicht teilen)
flackert die LED nur unregelmässig, mit etwa 5Hz. (Geschätzt, nicht
gemessen, aber auf jeden Fall viel zu schnell und zu unregelmässig.)
Wenn ich dagegen CKDIV8 einschalte und F_CPU auf 1250000 anpasse bekomme
ich einen sauberen Wechsel mit exakt 5s hin.
Kann jemand mir einen Tipp geben, woher dieses Flackern kommen kann?
Bis jetzt habe ich folgendes probiert:
->Die Platine auf Kurzschlüsse geprüft, und die komplette Platine mit
neuen Bauteilen komplett von vorne aufgebaut (Conrad war so freundlich,
mir gleich mehrere Platinen zu liefern ;))
->Den Takt über den Fuse "CLKOUT" am Pin B-1 nach aussen gegeben und
dort mit dem Oszi ausgemessen: ist bei den Fuses der Quarz ausgewählt
(ohne CLKDIV8) gibt der Pin auch sauber 9.999x MHz aus.
->Da ich EMV-Störungen als Quelle für das Flackern vermutet habe, habe
ich die Spule des Stepup-Wandlers herausgenommen und über zwei ca. 5cm
lange Kabel wieder verbunden. Auch wenn ich die Spule so von der Platine
"entfernt" habe bleibt das Flackern unverändert. Die Spannung am uC
bleibt davon unbeeindruckt bei 5V.
-> Meine Aktuelle Platine ist eine verkleinerte Version einer anderen
Platine, die tadellos funktioniert. (Gleicher Schaltplan, nur neues
Layout).
Kann es wirklich sein, dass ein anderer Aufbau so starke Störungen
hervorruft?
Woran könnte es sonst liegen, das die LED bei 10Mhz nur flackert, obwohl
der CLKOUT-Pin ein sauberes Signal liefert?
Sorry für den vielen Text, ich hoffe es ist alles drinnen, was von
Interesse ist.
Thomas
PS: Die Beschaltung des uC und die Spannungsversorgung hab ich
angehängt.