Forum: Mikrocontroller und Digitale Elektronik Zum x-ten Mal: Quarzprobleme am AVR


von M. T. (dau45)


Lesenswert?

Ich habe eine Schaltung mit einem Atmega32 und 8 MHz quarz auf einem 
Steckbrett laufen gehabt. Nun wollte ich die Schaltung auf eine 
Lochrasterplatine übertragen - Ergebnis: Probleme.

- AVR hat gleiche Fuses wie auf dem Steckbrett, auch alle anderen 
Komponenten sind gleich.
- Zugriff per ISP ist möglich
- Testversuch: simples Programm, dass LED toogelt: läuft mit internem 
Takt, mit externem Quarz nicht. => Quarz ist Fehlerquelle

- Schaltung: 8 MHz Quarz zwischen XTAL1 und XTAL2 und dann jeweils mit 
22pF Kerko gegen GND (wie in jedem Tut und wie's auf dem Steckbrett auch 
geht).
- Alle Verbindungen mit Multimeter durchgemessen: alles i.O.
-Wenn ich die Spannung gegen GND messe an XTAL1 OV und an XTAL2 VCC 
(5V).

- Kerkos bereits testweise ersetzt
- anderen 8 MHz quarz hab ich nicht hier, deshalb kann ich seine 
Funktion nicht überorüfen.

Das Layout ist zwar nicht perfekt (da Lochraster) aber schlimmer als auf 
meinem Steckbrett ist es sicher nicht...


Sonstige Beschaltung: 100nF Kerko in VCC/GND; /RESET über 10k gegen VCC; 
AVCC/VCC an VCC, AGND/GND an GND, AREF über 100nF Kerko gegen GND. Alles 
wie auf dem Steckbrett...


Bin für Tipps sehr dankbar (wenn ich mit meinem Projekt fertig bin, muss 
ich hier mal ne Runde schmeißen für alle Forenmitglieder ;-) )

von Wilhelm F. (Gast)


Lesenswert?

Du könntest am Quarz mal einen hochohmigen Widerstand (Größenordnung 
100k bis 10M) parallel schalten. Könnte sein, daß er aus irgendeinem 
Grunde nicht anschwingt. Ein Parallelwiderstand hilft der Quarzschaltung 
bei Schaltungen mit Inverter beim Anschwingen. Der sollte im Controller 
aber auch integriert sein.

von holger (Gast)


Lesenswert?

>- Testversuch: simples Programm, dass LED toogelt: läuft mit internem
>Takt, mit externem Quarz nicht. => Quarz ist Fehlerquelle

Der Quarz ist nicht die Fehlerquelle.
Schliess ihn richtig an. 2x22pF gegen GND.
Kontrollieren ob Kondensatoren auch wirklich 22pF haben.
Kontrollieren ob die beiden 22pF auch an GND liegen.
Quarz muss natürlich an XTAL1 und XTAL2. Nachzählen
ob du die richtigen Pins benutzt. Kontrolle ob
Kurzschlüsse von XTAL1 oder XTAL2 gegen GND oder VCC.

So schwer ist das ja nun wirklich nicht;)

von M. T. (dau45)


Lesenswert?

Wilhelm Ferkes schrieb:
> Du könntest am Quarz mal einen hochohmigen Widerstand (Größenordnung
> 100k bis 10M) parallel schalten. Könnte sein, daß er aus irgendeinem
> Grunde nicht anschwingt. Ein Parallelwiderstand hilft der Quarzschaltung
> bei Schaltungen mit Inverter beim Anschwingen. Der sollte im Controller
> aber auch integriert sein.

Danke, habe es gerade getestet aber konnte keine Veränderung beobachten.

von M. T. (dau45)


Lesenswert?

holger schrieb:
> Der Quarz ist nicht die Fehlerquelle.

Wie kommst du zu dieser Erkenntnis?

holger schrieb:
> Schliess ihn richtig an. 2x22pF gegen GND.
> Kontrollieren ob Kondensatoren auch wirklich 22pF haben.
> Kontrollieren ob die beiden 22pF auch an GND liegen.
> Quarz muss natürlich an XTAL1 und XTAL2. Nachzählen
> ob du die richtigen Pins benutzt. Kontrolle ob
> Kurzschlüsse von XTAL1 oder XTAL2 gegen GND oder VCC.

Alles natürlich schon geschehen.

holger schrieb:
> So schwer ist das ja nun wirklich nicht;)

Eigentlich sollte es das wirklich nicht sein...


Ich tendiere eigtl zum defekten Quarz... vll ist er beim einlöten ja 
gestorben oder beim abknipsen der Beinchen (habe gelesen, dass das 
passieren kann).

von holger (Gast)


Lesenswert?

>Ich tendiere eigtl zum defekten Quarz... vll ist er beim einlöten ja
>gestorben oder beim abknipsen der Beinchen (habe gelesen, dass das
>passieren kann).

Nö, eher nicht. Kaputt gehen Quarze wenn sie aus 1m hart auf
den Boden aufschlagen. Ist der mal runtergefallen?

von Andreas F. (aferber)


Lesenswert?

Marvin Thielking schrieb:
> Ich habe eine Schaltung mit einem Atmega32 und 8 MHz quarz auf einem
> Steckbrett laufen gehabt. Nun wollte ich die Schaltung auf eine
> Lochrasterplatine übertragen - Ergebnis: Probleme.
>
> - AVR hat gleiche Fuses wie auf dem Steckbrett, auch alle anderen
> Komponenten sind gleich.
> - Zugriff per ISP ist möglich

Wenn die Fuses auf externem Quarz standen und du ihn per ISP ansprechen 
konntest, dann hat der Quarz zumindest zu diesem Zeitpunkt auch 
geschwungen. Oder hast du ihn zum Programmieren wieder ins Steckbrett 
gepackt?

Andreas

von Wilhelm F. (Gast)


Lesenswert?

Sind deine Leitungsführungen an der Quarzschaltung niederohmig genug 
dimensioniert? Masse? Irgendwo bei 8 MHz ist ja die Grenze von 
Gleichstrom zu Wechselstrom ;-)

Oder hast du mal einen anderen (evtl. niederfrequenteren) Quarz, wenn 
kein Ersatz mit 8 MHz vorhanden?

von Wilhelm F. (Gast)


Lesenswert?

Defekte Quarze hatte ich übrigens noch nie. Einen Sturz aus 1 Meter 
sollten sie durchaus aushalten...

Merkwürdig erschien mir, daß ein XTAL-Anschluß auf Massepotential liegt, 
und der andere auf VCC. Daher kam mein Vorschlag für den 
Parallelwiderstand zum Anschwingen.

Du hast doch nicht etwa einen Modus für eine externe Taktquelle 
eingestellt?

von M. T. (dau45)


Lesenswert?

Andreas Ferber schrieb:
> Wenn die Fuses auf externem Quarz standen und du ihn per ISP ansprechen
> konntest, dann hat der Quarz zumindest zu diesem Zeitpunkt auch
> geschwungen. Oder hast du ihn zum Programmieren wieder ins Steckbrett
> gepackt?
>
> Andreas

Genau das verwundert mich auch, dass LED blinken geht nicht aber das 
programmieren... Ich habe gerade mal die Spannung an XTAL2 beim 
ISP-Zugriff gemessen - da geht die Spannung wischenzeitig runter und 
schwankt dann immer zwischen 5V und ~1V ein paar mal hin und her während 
des ISP-Zugriffs.

Wilhelm Ferkes schrieb:
> Sind deine Leitungsführungen an der Quarzschaltung niederohmig genug
> dimensioniert? Masse? Irgendwo bei 8 MHz ist ja die Grenze von
> Gleichstrom zu Wechselstrom ;-)

Naja schön sind sie nicht... aber habe mal mit dem Multimeter 
nachgemessen: zwischen AVR Pin und 22pF Kelko sinds 0,1 Ohm und zwischen 
dem anderen kelko Beinchen und dem GND des Netzgeräts sinds 1,2 Ohm. 
Macht das Probleme?

Wilhelm Ferkes schrieb:
> Oder hast du mal einen anderen (evtl. niederfrequenteren) Quarz, wenn
> kein Ersatz mit 8 MHz vorhanden?

einen 4 MHz hätt ich noch hier... könnte den mal einlöten...

Wilhelm Ferkes schrieb:
> Du hast doch nicht etwa einen Modus für eine externe Taktquelle
> eingestellt?

Low Fuses sind 0x7F und so gings aufm Steckbrett auch.

von Wilhelm F. (Gast)


Lesenswert?

>und zwischen dem anderen kelko Beinchen und dem GND des Netzgeräts
>sinds 1,2 Ohm. Macht das Probleme?

1 Ohm, das können auch die Leitungen des Ohmmeters und die 
Kontaktübergänge sein.

Für genauere Aussagen, brauchte man ein 4-adriges Milliohmmeter.

Die Masse sollte jedenfalls massiv ausgelegt sein, und nicht mit einem 
10 cm langen Draht mit 0,4 mm Querschnitt.

von holger (Gast)


Lesenswert?

@ Wilhelm
>Defekte Quarze hatte ich übrigens noch nie. Einen Sturz aus 1 Meter
>sollten sie durchaus aushalten...

Ich schon. Wenn ein Quarz aus 1m auf einen Steinboden knallt dann kanns 
das
schon gewesen sein.

> Sind deine Leitungsführungen an der Quarzschaltung niederohmig genug
> dimensioniert?

Der wird selbst mit 10 Ohm Leitungswiderstand noch schwingen;)

von Andreas F. (aferber)


Lesenswert?

Wilhelm Ferkes schrieb:
>>und zwischen dem anderen kelko Beinchen und dem GND des Netzgeräts
>>sinds 1,2 Ohm. Macht das Probleme?
> 1 Ohm, das können auch die Leitungen des Ohmmeters und die
> Kontaktübergänge sein.

Die wären aber bei der Messung zwischen Controller und Kerko im 
wesentlichen dieselben ;-)

Andreas

von Wilhelm F. (Gast)


Lesenswert?

holger schrieb:

>Der wird selbst mit 10 Ohm Leitungswiderstand noch schwingen;)

Du vergißt den Blindwiderstand.

Ja, kann tatsächlich sein, das sowas sogar noch geht. Mich machen die 
Potentiale an XTAL1 und XTAL2 etwas stutzig. Die sollten sich bei 1/2 
VCC einpendeln, wenn was schwingt.

Irgendwie scheint die Oszillatorschaltung mit dem Quarz nicht richtig 
konfiguriert.

Andreas Ferber schrieb:

>Die wären aber bei der Messung zwischen Controller und Kerko
>im wesentlichen dieselben ;-)

Ja, schon recht. Aber bei praktischen Aufbauten und Messungen gibt es 
immer Überraschungen.

von M. T. (dau45)


Lesenswert?

So, habe den 4 MHz Quarz eingelötet und mit dem gehts... Habe dann den 
8er mal auf dem Steckbrett getestet und er scheint wirklich defekt zu 
sein!

Zu den Leitungswiderständen: Wie gesagt: Die Platine soll niemand von 
unten sehen ;-)

von Wilhelm F. (Gast)


Lesenswert?

Marvin Thielking schrieb:

>So, habe den 4 MHz Quarz eingelötet und mit dem gehts...

Damit ist aber nicht gesagt, daß der 8-er wirklich defekt ist. Höhere HF 
hat immer höhere Ansprüche an den Aufbau.

Und, kann man mit 4 MHz auch ordentlich arbeiten, oder muß auf jeden 
Fall Ersatz besorgt werden?

von holger (Gast)


Lesenswert?

>>Der wird selbst mit 10 Ohm Leitungswiderstand noch schwingen;)

>Du vergißt den Blindwiderstand.

Schau dir mal ein paar Oscillatorschaltungen mit Quarz
an. Da wird teilweise empfohlen einen Serienwiderstand 220 - 1k
am Ausgang des Oscillators zu benutzen um den Quarz nicht
zu übersteuern.

>Damit ist aber nicht gesagt, daß der 8-er wirklich defekt ist. Höhere HF
>hat immer höhere Ansprüche an den Aufbau.

8MHz sind noch nicht wirklich HF;) Wenn der 8MHz nicht schwingt
könnte die Lastkapazität zu hoch sein (Aufbau). Vieleicht einfach
mal die 22pF rausnehmen. Defekter Quarz ist aber wahrscheinlicher.

von Wilhelm F. (Gast)


Lesenswert?

holger schrieb:

>Schau dir mal ein paar Oscillatorschaltungen mit Quarz
>an. Da wird teilweise empfohlen einen Serienwiderstand 220 - 1k
>am Ausgang des Oscillators zu benutzen um den Quarz nicht
>zu übersteuern.

Ja, sogar noch größer. Der sollte im Controller aber schon integriert 
sein.

von Frank B. (frank501)


Lesenswert?

Wilhelm Ferkes schrieb:
> Und, kann man mit 4 MHz auch ordentlich arbeiten, oder muß auf jeden
> Fall Ersatz besorgt werden?

Auch mit 4MhZ kann man ordentlich arbeiten, wenn man die defines passend 
setzt und sich der Tatsache bewusst ist, daß die Timer dann langsamer 
laufen.
Wenn man nicht gerade viel Rechenleistung benötigt, kann man mit dem 
Takt auch noch weiter runter gehen, aber das ist dann von der jeweiligen 
Anwendung abhängig.

Und wenn Du nicht auf einen Quarz angewiesen bist, also den UART niocht 
benötigst, brauchst Du nicht mal den Quarz und kannst den internen 
RC-Oszillator verwenden.

Frank

von Ulrich P. (uprinz)


Lesenswert?

Marvin Thielking schrieb:
> Andreas Ferber schrieb:
>> Wenn die Fuses auf externem Quarz standen und du ihn per ISP ansprechen
>> konntest, dann hat der Quarz zumindest zu diesem Zeitpunkt auch
>> geschwungen. Oder hast du ihn zum Programmieren wieder ins Steckbrett
>> gepackt?
>>
>> Andreas
>
> Genau das verwundert mich auch, dass LED blinken geht nicht aber das
> programmieren... Ich habe gerade mal die Spannung an XTAL2 beim
> ISP-Zugriff gemessen - da geht die Spannung wischenzeitig runter und
> schwankt dann immer zwischen 5V und ~1V ein paar mal hin und her während
> des ISP-Zugriffs.

...
Dann ist es definitiv nicht der Quarz!
Das Programmieren bedingt, dass die CPU mit Takt versorgt wird. Der 
Programmer versorgt die CPU nicht mit einem Takt. Mein Bauchgefühlt 
sagt mir, dass Du irgendwas mit dem Reset-Pin nicht korrekt gemacht 
hast. Der Programmer toggelt über den Reset die CPU in den 
Programmiermodus und hält den Reset auch. Wenn also die Schaltung in 
diesem Fall ohne Programmer nicht funktioniert, dann ist es der Reset.

Es gibt aber noch eine Option. Habe jetzt nicht nachgesehen, welchen 
exakten AVR Du hast, aber wenn Du eine Toggle-LED in Software 
programmiert hast und die bei 8MHz schön blinkt, dann schau bitte noch 
mal genau die Fuses an. Zum einen kann es durchaus sein, dass der Chip 
Doch auf interne Clock steht, zum Anderen gibt es AVRs, die eine Fuse 
für ClkDiv8 haben, dann würde die Schltung nut mit 1MHz laufen. Es 
blinkt also deutlich langsamer. Und dann kann man über das OscCal Byte 
die interne Clock auch noch trimmen. Und das geht je nach Laune des 
Chips sehr weit runter.
Übertrieben gesagt könnte der Chip auf der internen Clock durchaus 
laufen, aber die LED blinkt nur noch 2mal am Tag.

Ich würde ja fast vorschlagen, Du hängst einfach mal ein Bild von beiden 
Seiten deiner Platine hier an und nene Screenshot vom Programmer.

Mach Dir nix draus, es gibt so Tage da geht nix, dabei ist der Fehler 
doch so offensichtlich. Aber man denkt in zu festen Bahnen und kann ihn 
deswegen einfach nicht finden.

Gruß, Ulrich

von Blackbird (Gast)


Lesenswert?

Die 22pf Kondensatoren sind nur Richtwerte. Irgendwo im Datenblatt steht 
auch die Berechnung, C-Werte abhängig vom Quarztyp (Oberton, Grundton, 
...) und der Frequenz.
Mir ist es schon passiert, daß ich beim Wechsel von 12MHz auf 16Mhz 
andere (kleinere Werte, 18pF) nehmen mußte weil der neue Quarz nicht 
schwingen wollte. Ein 16384kHz-Quarz dagegen hat es auch bei 33pF getan.

Die Spannungsmessung an den XTAL-Pins sagt nichts aus. betrachten mit 
dem Oszilloskop schon mehr, aber die Amplituden sind sehr klein.

Blackbird

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
Noch kein Account? Hier anmelden.