22 Pikofarad vs. 16 Megahertz

Ich kam mir vorhin gerade ein bisschen verarscht vor und weiß aber nicht so recht, ob die Schuld bei mir oder jemand anderem liegt.

Und alles begann bei der Lehrbuch-Dokumentation vom ATmega328, wo doch klar und deutlich steht, dass man einen 16 MHz Oszillator mit 2 Kondensatoren mit je 22 Pikofarad gegen Ground verbinden soll …


Auch YouTuber behaupten das und zeigen Videos, wo es bei ihnen genau so funktioniert. Also dachte ich mir schon vor Wochen:

Das bau’ ich mir auch schnell nach.

Und was passierte bei mir dann: Gar nichts. Der Chip startete einfach nicht mehr.
Noch ärgerlicher war die Tatsache, dass ich blind auf diesen Aufbau vertraut hatte und auch gleich so auf einer Platine verlötet hatte.

Bei der Fehlersuche dachte ich nach unzähligen Nachmessungen, ich hätte ein Bauteil beschädigt, obwohl ich nicht herausfinden konnte, welches es war.

Also wanderte das gescheiterte Projekt in die Schublade.

Als ich heute mein Steckbrett bemühte und erneut einen ATmega328 mit einem externen Oszillator zu betreiben, passierte wieder das gleiche:
nämlich NICHTS - der Chip startete einfach nicht.

Hier konnte ich schnell alle Bauteile auswechseln, und siehe da, es geschah wieder nichts.

Wenn ich jedoch den Chip in ein UNO Board einbaute, funktionierte dieser einwandfrei und das darauf laufende Blink-Progrämmchen ließ die LED an Pin 13 brav zirpen.

Jetzt wurde ich skeptisch und begann mal spaßhalber am Steckbrett beide 22-pF-Kondensatoren zu entfernen, wieder hinzuzufügen und dann das ganze nochmals mit und ohne Oszillator.

Und kurzfristig startete der Chip, fror aber nach wenigen Sekunden wieder ein.

Hmm … nochmals auf das Bild im Beispiel geblickt …

Dort war der Oszillator ganz knapp beim Chip verbaut. Ich hatte allerdings sowohl am Breadboard als auch auf der Platine den Oszillator ans andere Ende der Struktur verfrachtet und mit Litzen eine Leitung dort hin verlegt.

OK … kann es vielleicht sein, dass das Signal des Taktgebers vielleicht gestört wird?

dachte ich mir, und versetzte am Breadboard sowohl Oszillator als auch die Kondensatoren zum Chip hin.

Und siehe dar … alles funktionierte so wie eigentlich erwartet.

Fazit: Wo gehobelt wird, fallen Späne

Schon etwas ärgerlich, dass man Stunden nach Fehlern in Bauteilen sucht, bis man merkt, dass die Verkabelung das Problem ist.

Für meine Platine habe ich mich nun allerdings entschieden, dass der ATmega328 nun mit seinem internen 8 MHz Quarz betrieben wird und gar keinen Oszillator brauchen soll. Grund dafür war, dass ich den Chipsockel am Rand eingebaut hatte und den Oszillator nur mit Litzen “auf Distanz” verbinden konnte. Also weg damit.

Mein Glaube an Dokus und Tutorials ist also wiederhergestellt und nebenbei weiß ich nun, dass Taktfrequenzen offenbar sehr leicht “zu stören” sind, wenn man sie über längere Leitungen schickt. (Eigentlich eh logisch, wenn man drüber nachdenkt.)

Nachtrag: Kondensator-Messung

Ich hatte recht lange meine 22pF Kondensatoren in Verdacht, denn mein liebes Messgerät, meldete diese bei 3 von 4 Messungen als “unbekanntes Bauteil”.
Und das wiederholte sich bei allen 10 Stück der Teile, die ich auf Lager hatte. Der Grund dafür war aber eher, dass das Messgerät diese kleinen Kapazitäten einfach nicht mehr richtig messen konnte.

Im Nachhinein stellte ich fest, dass bei größeren Kapazitäten (30pF - 40pF) immer mehr Messungen positiv abliefen, und so ab 70pF immer alles gut ging.

Schlimmer wurde es bei kleinerem Fassungsvermögen, obwohl das Gerät bis zu 10 pF hätte messen können sollen.

Tja, man lernt eben jeden Tag was dazu.

Arduino Breadboard


Wenn sich eine triviale Erkenntnis mit Dummheit in der Interpretation paart, dann gibt es in der Regel Kollateralschäden in der Anwendung.
frei zitiert nach A. Van der Bellen
... also dann paaren wir mal eine komplexe Erkenntnis mit Klugheit in der Interpretation!