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)
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/
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.
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.
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!
> 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.
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!?
Ü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.
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)
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.
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)
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?
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?
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.
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 !!!!!!!!!!!!!!!!!!
Ü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.
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!
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.
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?