Forum: Mikrocontroller und Digitale Elektronik Quarz Problem, mal wieder ;-)


von Willi (Gast)


Lesenswert?

Hi,

ich hab da mal ein Problem ;-)

Und zwar wollte ich an meinem µC ein BaudratenQuarz hängen, Fuses 
eingestellt und der Klassiker... Es funktioniert nichts mehr, na gut.. 
Kein neues Problem! Allerdings habe ich bisher immer den Fehler gefunden 
und konnte daraus lernen. Entweder hab ich heute einen schlechten Tag 
oder irgendwas stimmt nicht...
So anschließen wollte ich einen 18,423MHz Quarz an einen Atmega328p mit 
22pF Kondesatoren. Fuses habe ich auf CKSEL 3,2,1,0 (0,1,1,0) und SUT 
1,0 (0,1) also laut Datenblatt slowly rising power 14CK +65ms.
Wie gesagt, brauche gerade jemanden der mich auf den Fehler drauf 
stößt!!!

Achso, ich hatte einen Zeitbasierten Test programmiert mit LED blinks... 
Es blinkt nichts!

DANKE
(ich hoffe ihr habt alle informationen die ihr braucht)

von S. Landolt (Gast)


Lesenswert?

Keine Ahnung, ob es daran liegt, aber
> CKSEL 3,2,1,0 (0,1,1,0)
ist für einen Ceramic Resonator.

von Georg G. (df2au)


Lesenswert?

Betriebsspannung?

von Georg G. (df2au)


Lesenswert?

S. Landolt schrieb:
> ist für einen Ceramic Resonator.

Nach meiner Tabelle nicht. Da ist es Ext Full-Swing Crystal.

von S. Landolt (Gast)


Lesenswert?

an Georg G.:

Table 9-6 auf den Seiten 31/32?

von Georg G. (df2au)


Lesenswert?

CKSEL 3..1 sagt Full-swing Crystal. Die Tabelle ist für die Startup 
Zeiten und meint

These options are intended for use with ceramic resonators and will 
ensure frequency stability
at start-up. They can also be used with crystals when not operating 
close to the maximum frequency
of the device, and if frequency stability at start-up is not important 
for the application.

Es ist also nicht explizit verboten, kann aber zu Problemen mit der 
Frequenz während des Hochlaufs führen. Besser wäre CKSEL0 auf 1.
Also kein Genickbruch, aber auch nicht sehr gesund. Nur etwas für 
Bastler.

Siehe auch
http://www.engbedded.com/fusecalc/

: Bearbeitet durch User
von S. Landolt (Gast)


Lesenswert?

Ich hatte in der Fußnote 1 nur "These options are not suitable for 
crystals" gelesen, aber zugegebenermaßen keine genaue Vorstellung, was 
Atmel darunter versteht.

von S. Landolt (Gast)


Lesenswert?

Sie haben Recht, Georg, es läuft hier auf einem Steckbrett mit 18.432 
MHz trotz CKSEL=6; ich hatte nur gestutzt, weil ich diese Einstellung 
noch nie benutzt hatte.
  Dann hat Willi also ein anderes Problem.

von Willi (Gast)


Lesenswert?

Die Betriebsspannung ist 5V über einen 7805, gemessen habe ich 4,9V 
müsste also passen...
Also CKSEL0 auf high und es müsste funktionieren? Ok, ich probier es, 
aber wie rette ich dann den alten? Ich habe ja derzeit keinen Zugriff!

von PeterZ (Gast)


Lesenswert?

Georg G. schrieb:
> Betriebsspannung?

von PeterZ (Gast)


Lesenswert?

ok 5V ;)

von S. Landolt (Gast)


Lesenswert?

> Also CKSEL0 auf high und es müsste funktionieren?
Nein, sorry, war ein Irrtum meinerseits.

> aber wie rette ich dann den alten?
Externen Hilfstakt an XTAL1.

von Willi (Gast)


Lesenswert?

Hmmm... Das ist ja ärgerlich! Ich will jetzt ungern den nächsten Atmega 
versuchen, um festzustellen das es nicht klappt... :-/ Trotzdem erstmal 
danke!

von Willi (Gast)


Lesenswert?

Da fällt mir gerade auch was auf, falls ich ja nichts falsch gemacht 
habe und ein technischer defekt an einem der verbauten Bauteile 
vorliegt... kann ich dann überhaupt per Takt am XTAL1 den Controller 
retten? Tendenziell habe ich den Controller ja richtig gefused!?

von Axel S. (a-za-z0-9)


Lesenswert?

Überprüfe auch die Hardware. Du hast nicht zufällig einen Masseschluß an 
einem der beiden Oszillator-Pins? Gerade bei SMD-Kondensatoren passiert 
das gern. Breadboard ist bei 18MHz auch grenzwertig. Die 
GND-Verbindungen müssen niederimpedant sein.

von dc (Gast)


Lesenswert?

Versuchsweise kannst du die beiden Cs auch weglassen, die meisten AVRs 
schwingen mit den meisten Quarzen auch ohne die beiden pF-Cs.

Ist denn die Betriebsspannung direkt am Controller gut abgeblockt? 100nF 
direkt an GND und Vcc? Kurze Leitung von Vcc zum nächsten 
Elko/+5V-Anschluss? (ein paar cm sind ok)

von Jim M. (turboj)


Lesenswert?

Axel S. schrieb:
> Breadboard ist bei 18MHz auch grenzwertig. Die
> GND-Verbindungen müssen niederimpedant sein.

Beim Steckbrett kann man die 22pF Kondensatoren weglassen, die 
Steckleisten haben selbst genügend pF. Es kann dort sein dass es nur 
ohne die Lastkondensatoren läuft.

Bei gelöteter Platine sind die Kondensatoren aber notwendig. In die 
Falle tappen Anfänger gelegentlich wenn sie Schaltungen vom Steckbrett 
auf Platine (Lochraster oder PCB) übertragen.

von Willi (Gast)


Lesenswert?

Ok, nur für mich... Ich bin theoretisch nicht ganz so tief in der 
Materie. Ich soll die Kondensatoren entfernen und dafür Brücken setzen 
oder einfach nur entfernen? Mit der Brücke hätte ich die XTALs doch 
quasi dauerhaft auf Low oder?
(wenn es zu kompliziert ist, braucht mir das keiner erklären! Spart euch 
die Kräfte, dann bitte nur meine Arbeitsanweisung)

von JonasKl (Gast)


Lesenswert?

Willi schrieb:
> Ich soll die Kondensatoren entfernen und dafür Brücken setzen
> oder einfach nur entfernen?

Einfach die Kondensatoren entfernen, keine Brücken!

20MHz sollten bei halbwegs geschickten Aufbau auf dem Steckbrett noch 
möglich sein.
Der Quarz sollte so nah wie möglich an den XTAL-Pins angeschlossen 
werden (ein paar mm abstand sind noch ok).
Funktioniert der Quarz selber auch wirklich (schon irgendwie getestet)?

Was ist denn aktuell das genaue Problem bei deinem Aufbau?
Kein Kontakt zwischen Atmega und Programmieradapter möglich?

von Willi (Gast)


Angehängte Dateien:

Lesenswert?

Also mein Problem ist bzw meine Probleme sind...
Der Atmega-328P läuft nicht mehr das Programm (LED 2 sek an und 4 sek 
aus) ab was er vorher von mir bekommen hat. Das erste High an der LED 
ist nicht zeitgesteuert! Zudem kommt das ich ihn nicht mehr lesen und 
programmieren kann!
Ich habe jetzt diverse Tests gemacht und bin zu dem Entschluss gekommen 
das ich mit dem Quarz auf meinem Steckbrett nicht weiter arbeiten kann, 
ich kriege nicht einmal den 16MHz vernünftig zum Schwingen. Nach einigen 
Startversuchen bringt dieser den Atmega schonmal an den Punkt an dem die 
LED angeht... Ich habe mal ein Foto angehängt, vllt fällt jmd noch ein 
etwas günstigerer Aufbau ein!? Ich bin mit dem Probieren am Ende...
Allerdings würde ich den Atmega gerne noch "retten", wie kann ich 
nochmal das Schwingen Simulieren? Einen anderen Controller an einem PIN 
schnell triggern und dann an den XTAL1? Ich habe es schonmal machen 
müssen, finde den Post aber nicht mehr! Reicht ein Attiny2313 mit 8 MHz 
interne Taktung?

von Arduinoquäler (Gast)


Lesenswert?

Willi schrieb:
> vllt fällt jmd noch ein etwas günstigerer Aufbau ein!?

Das ist kein Aufbau, das ist Pfusch.

Auch du scheinst noch nie etwas von Abblock-Kondensatoren
gehört zu haben.

Wie oft wurde das hier schon gepredigt, und ATMEL "schreibt"
die Anwendung von solchen Cs vor.

Das Märchen von den nicht notwendigen Lastkapazitäten am
Quarz glaubst du auch gerne denn dann hast du weniger
Arbeit, gell?

Allein die Unfähigkeit hier ein anständiges, aufschlussreiches
Foto von deinem Aufbau zu posten spricht Bände.

von JonasKl (Gast)


Angehängte Dateien:

Lesenswert?

Du brauchst

1. den Abblock-C direkt am Controller!!! (100nF, Bild)

2. einen korrekt verschalteten Reset-Pin!!!
z.B. so:
http://i.stack.imgur.com/jlZTK.png
(den Schalter kannst du auch weglassen)


Arduinoquäler schrieb:
> Das Märchen von den nicht notwendigen Lastkapazitäten am
> Quarz glaubst du auch gerne denn dann hast du weniger
> Arbeit, gell?

Für Testzwecke kann es ohne Lastkapazitäten gehen, muss aber nicht. Bau 
die Lastkapazitäten lieber auf kurzem Wege ein!


1. und 2. sind MUSS !!!!!!!!!!!!!!!!!!

von Jim M. (turboj)


Lesenswert?

Übrigens fliegt Dir bei dem Aufbau die LED um die Ohren. Die hat keinen 
Widerstand zur Strombegrenzung...


Atmega8 hat auf beiden Seiten eine Spannungsversorgung, die auch 
verbunden sein muss.

: Bearbeitet durch User
von Willi (Gast)


Lesenswert?

Also erstmal großen Dank an die konstruktiven Vorschläge! Ich habe jetzt 
den Atmega auf einen anderen Entwurf geschmissen und dort lief er mit 16 
MHz ohne Probleme, mit dem 18,432 kriege ich ihn auch hier nicht zum 
laufen... Werde mir demnächst noch einige Kondensatoren zulegen um genau 
dieses Problem beheben zu können!
Für das Bild muss ich mich entschuldigen, habe es noch gedreht aber 
danach wohl nicht gespeichert und dann noch doppelt, Schande über mein 
Haupt. Das fotografierte war nicht das probierte (Hab einen komplett 
neuen Aufbau gemacht, damit die Störquellen eingrenzen konnte)... Es 
kamen natürlich noch die Abblockkondensatoren darauf (beidseitig) und 
den Quarz mit 22pF bedrahtet, brachte aber alles nichts... ;-/ Ohne die 
Cs am Quarz konnte ich den Quarz wenigstens für 1-2 Sekunden am leben 
halten, werde es mit anderen Werten probieren wenn ich die anderen Cs 
habe. Zu den LEDs, die gibt es auch für den 5V-Betrieb!
Also wie gesagt danke nochmal!

von Stefan F. (Gast)


Lesenswert?

Ich würde es mal mit anderen kondensatoren versuchen. Zum Beispiel 12pF 
und 33pF.

> Übrigens fliegt Dir bei dem Aufbau die LED um die Ohren.
> Die hat keinen Widerstand zur Strombegrenzung...

Der AVR wird den Strom auf 40-50mA begrenzen. Damit betreibt man sowohl 
den AVR als auch die LED außerhalb der Spezifikation. Bei einem kurzen 
test auf dem Steckbrett fällt das sicher nicht auf, aber im 
langfristigem Betrieb schon. Die LED wird warscheinlich frühzeitig 
ableben.

> wie kann ich nochmal das Schwingen Simulieren? Einen anderen Controller
> an einem PIN schnell triggern und dann an den XTAL1?

Ja. Ich habe für solche Zwecke eine universelle Programmierfassung mit 
4Mhz Oszillator gebastelt. Da kann ich so ziemlich alle AVR's im DIP 
Format rein stecken.

> Beim Steckbrett kann man die 22pF Kondensatoren weglassen,
> die Steckleisten haben selbst genügend pF.

Wie viel denn? Könnte auch zu wenig sein aber mit 22pF dann wiederum zu 
viel.

von Axel S. (a-za-z0-9)


Lesenswert?

Willi schrieb:
> Ich habe jetzt
> den Atmega auf einen anderen Entwurf geschmissen und dort lief er mit 16
> MHz ohne Probleme, mit dem 18,432 kriege ich ihn auch hier nicht zum
> laufen...

Dann ist ja vielleicht dein Quarz kaputt? Oder hast du einen 
Oberwellenquarz erwischt?

von JonasKl (Gast)


Lesenswert?

Du kannst ja für Testzwecke jeweils 2x22pF = 44pF parallel schalten.

von Georg G. (df2au)


Lesenswert?

JonasKl schrieb:
> 44pF parallel schalten

Viel zu viel! Rechne mal aus, wie wenig Xc das ist.

von Teo D. (teoderix)


Lesenswert?

Ich würd mal ~1MOhm Parallele zum Quarz hängen.

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.