Forum: Mikrocontroller und Digitale Elektronik mega8 läuft nicht (Quarz?)


von GMB (Gast)


Lesenswert?

Also, habe es jetzt geschafft meinen mega8 auf einen externen Quarz
umzustellen. Auf dem myAVR-Board, welches ich zum programmieren des
mega8 verwende, läuft auch alles einwandfrei. Setze ich jedoch den
Controller in meine selbstgebaute Schaltung, so tut sich nichts. Auch
einfachste Programme laufen nicht!
Wo könnte das Problem liegen? Habe 2 verschiedene Quarze ausprobiert,
Kondensatoren habe ich 2* 33pF genommen (sind diese zu groß?), habe
auch versucht alles so nah wie möglich anneinander zu bauen, um
Kapazitäten der Leiterbahnen untereinander zu vermeiden, allerdings ist
es noch nicht 100% so nah wie es ginge.
Ich verwende Streifenrasterplatinen, hat jemand noch eine Idee warum
der Controller nicht läuft?
Ich werde heute versuchen, den Quarz direkt an den Ausgang zu setzen,
und die Kondensatoren direkt dahinter, also das quasi gar keine
parasitäre Kapazität "reinspielen" kann.
Sind die gewählten Kondensatoren überhaupt i.O.? Oder sind die zu
groß/klein gewählt?
Welche Dinge sollten noch beachtet werden, oder können geprüft werden?
Habe leider KEIN Oszilloskop parat, um zu prüfen ob der Quarz schwingt,
oder nicht. Gibt es andere Möglichkeiten es zu testen?

Danke schonmal!!

von Sebastian (Gast)


Lesenswert?

Hallo,

Du mußt noch die Fusebits setzen. Auf externen Quarz...

Sebastian

von Matthias (Gast)


Lesenswert?

Nehme an dass du mit auf externen quarz umstellen meinst die
entsprechenden Fusebits setzen.
Wie erkennst du dass der uc auf deiner selbstgebauten Schaltung nicht
arbeitet?
Alle VCC und GND (+ Kondensatoren) angeschlossen?
Mfg

von thkais (Gast)


Lesenswert?

Was parasitäre Kapazitäten betrifft: Ich habe viele meiner Schaltungen
auf einem Breadboard aufgebaut. Funktioniert wunderbar.
Ist auf dem myAVR-Board (sorry, kenne ich nicht) ein Quarz-Oszillator
oder ein Quarz?

von GMB (Gast)


Lesenswert?

Auf dem myAVR-Board ist ein Quarz, also 2 Anschlüsse, jeweils an XTAL1
und XTAL2 über 33pF gegen Masse!

Habe mit "myAVRQuickProg" die Fusebits auf externen Quarz gesetzt
(ist sehr einfach, da nur ein Mausclick, der Rest bleibt unangetastet,
absolut "Idiotensicher".

Ich erkenne das er nicht arbeitet, da er weder auf dem Display etwas
ausgibt, noch andere, sehr einfache Programme (Portpin "blinken"
lassen) ausführt.

VCC und GND sind korrekt angeschlossen, zwischen VCC und GND ist direkt
am mega8 ein 100nF-Kondensator zum abblocken.

Was könnte ich noch vergessen haben? Habe im Prinzip die Beschaltung
wie auf dem myAVR-Board auch durchgeführt, also was Quarz etc. angeht.

Wie könnte man mit "normalen" Hausmitteln (Multimeter) noch
feststellen ob der Quarz schwingt?

von Ssss S. (sssssss)


Lesenswert?

Hi!

Bei niedrigen Frequenzen ist die Leiterbahnführung relativ unkritisch.
Bei 8Mhz geht es ohne Probleme mit 10cm Abstand Quarz und Atmega auf
einem Steckbrett
(mit frei schwebenden Kabeln etc).

Ist zwar nicht zu empfehlen, funktioniert aber ;)

Du könntest mal mit einem Messgerät die Spannungen an den einzelnen
Querzpins nach gnd
messen.

Also einmal beim funktionierenden Board und einmal bei deinem eigenen.
Da siehst du evtl schon nen unterschied.
Messen müsstest du so ~2V oder so...
Aber aufpassen, mit dem Messgerät an den Quarzpins wird der atmel
wahrscheinlich
nicht weiterlaufen ;)

Sonst poste doch mal nen screenshot (jpg) deiner eigenen
platine/Schaltplan

Bye, Simon

von Conlost (Gast)


Lesenswert?

Hallo,

die Kondensatoren am Quarz sind nicht kritisch, es sei denn man
benutzt
den Controller als Uhr.
Werte zwischen 22pF und 47pF sollten immer funktionieren.
Es könnte etwas beim setzen der Fuse schiefgegangen sein.
Eine Fuse setzen heisst übrigends, dieses Bit auf Null zu
setzen, das wird manchmal gerne falsch verstanden.

Versuche mal ohne den Quarz am XTAL1 einen Takt anzulegen
und schau dann mal ob er was tut.

Wenn nicht dann liegt der Fehler noch woanders.
Wie hast du den Resetpin beschaltet, 10k nach VCC und 47nF
nach Masse?
In aller Ruhe jeden angeschlossenen Pin des Controller noch
einmal genauestens kontrollieren hilft auch manchmal, denn
es kann vorkommen, das man den Wald vor lauter Bäumen irgendwann
nicht mehr sieht.  ;-)

Es grüsst,
Arno

von GMB (Gast)


Lesenswert?

Hallo Simon!!

Danke erstmal für den Tip, das werde ich direkt nachher mal
vergleichen!!!
Laut Datenblatt (ja, ich habe endlich mal das "komplette"
runtergeladen und lese darin) soll der Quarz einen Widerstand von
3k...100kOhm haben, die Kondensatoren sollen min. 20pF haben.

Als Quarze habe ich diese beiden probiert:

Nummer eins:

Standardquarz im Gehäuse HC49U-S/U
Frequenz: 3,686411 MHz
Modus: Grundton
Cl: 16 pF
Rsmax: 150 Ohm
TK: +/- 30 ppm
Frequenztoleranz: +/- 30 ppm


Nummer zwei:

Standardquarz im Gehäuse HC18/U.
Frequenz: 3,686411 MHz
Modus: Grundton
Cl: 20 pF
Rsmax: 100 Ohm
TK: +/- 30 ppm
Frequenztoleranz: +/- 30 ppm

Beide laufen auf dem myAVR-Board, auf meinem eigenen Board laufen
leider beide nicht.


Könnte man an dem Quarz noch was anderes anschließen? (z.B. Transistor
+ Lautsprecher => Ton den man hören müsste?) oder sowas?!?!

von Hannes L. (hannes)


Lesenswert?

Bei Platinen, die nicht optimal geroutet sind, könnte es etwas bringen,
mit der CKOPT-Fuse die Amplitude des Quarzoszillators zu erhöhen.
Genaues steht im Datenblatt.

Mit der von dir genannten Software können wohl die Wenigsten etwas
anfangen. Die breite Masse hier benutzt das Sisy-Zeugs nicht. Das soll
jetzt keine Abwertung sein, aber es gibt genug andere Software, die
sich im Laufe der Zeit zum Standard etabliert hat.

...

von Hannes L. (hannes)


Lesenswert?

> Könnte man an dem Quarz noch was anderes anschließen? (z.B.
> Transistor
> + Lautsprecher => Ton den man hören müsste?) oder sowas?!?!

Das sind knapp 4 MEGAHERTZ, das kann man nicht hören. Die Hörgrenze
lieht beim Menschen unter 20 KILOHERTZ. - Wo lernt man Sowas?

...

von GMB (Gast)


Lesenswert?

Gut, dass du das mit der CKOPT-Fuse etc. ansprichst. Lese nämlich genau
an der Stelle im Datenblatt, aber habe absolut keine Ahnung, wie ich
das jetzt "in den Controller" bringe. Also es steht ja dort, das wenn
ich CKOPT setze, das er dann auch in "noisy environment" (was ja bei
meiner Platine eher der Fall ist) besser arbeitet. Es steht aber weiter
unten, das wenn ich CKOPT "programmiere", er dann interne
36pF-Kondensatoren nutzt.
CKSEL müssten bei 3,6864MHz alle (3, 2, 1, 0) gleich "eins" gesetzt
werden.
Gibt es da auch was zu im Tutorial?

Ich denke das Problem ist irgendwo in dem Bereich, ich werde nachher
mal ein Screenshot von dem Lochmaster-Plan posten, aber im Prinzip gibt
es da nicht viel drauf zu sehen.
Aber 4 Augen sehen mehr als 2, oder wie war das? ;-)

zu dem "Programm" was ich nutze: es ist ein sehr einfaches Programm,
was den "ersten" Start mit dem Board vereinfachen soll. Das Programm
setzt auf Mausclick die Fusebits für den mega8 auf "externen Quarz",
um damit dann weiter arbeiten zu können. Zudem kann man im Programm
direkt Testprogramme auf den Controller übertragen, um die Funktion des
Boards zu testen.

Wer hat noch Infos zum ändern der Fusebits?

von thkais (Gast)


Lesenswert?

Hm - wenns auf dem myAVR funktioniert, müsste es auch auf Deiner Platine
funktionieren. Offensichtlich sind die Fuses für die Taktquelle richtig
gesetzt.
Hast du auch schonmal gemessen , ob VCC und GND anliegen? Die
richtigen Pins erwischt (man verzählt sich schon mal...)? LED richtig
angeschlossen? Für mich sieht das nach einem Fehler auf Deiner Platine
aus.

von Hannes L. (hannes)


Lesenswert?

Wie nimmst du deine eigenen Platinen in Betrieb ("Inbetriebnahme")?
Steckst du einfach den AVR drauf, legst Spannung an und hoffst, dass
alles gut geht?

Ich schreibe zwar auch kein "Inbetriebnahmeprotokoll" (mehr), aber
ich prüfe zumindest vor dem Einsetzen des AVRs sämtliche Pins der
AVR-Fassung auf Durchgang zu dem Teil, was daran angeschlossen sein
sollte und auf Kurzschluss gegenüber anderen Pins und Leiterzügen. Das
ist zwar etwas Arbeit, hat mir aber schon manchen Ärger erspart. Denn
ein versprengtes Lötzinnkügelchen kann schon allerhand Unsinn
anrichten.
Noch ein Tip zum Messen: Prüfspitze bitte erst an den Messpunkt halten,
wenn du sicher bist, was du an diesem Messpunkt für ein Ergebnis
erwartest. Anderenfalls hat das Messergebnis keine Aussagekraft.

...

von Hubert.G (Gast)


Lesenswert?

Auch den Reset-Pin überprüft?

von Ssss S. (sssssss)


Lesenswert?

Oder mess einfach mal alle pins gegen masse am avr durch und schreib
die Spannungen auf. (bei beiden Boards)
Dann kannste ja gucken was sich untersceidet (ok, ausser die ios evtl)
und
dann nochmal posten was anders ist ;)

von GMB (Gast)


Lesenswert?

@Hannes: habe die "Grundfunktionen" vorher geprüft (habe
Energieelektroniker gelernt und E-Technik/Energietechnik studiert),
also "alle" Spannungen an den Pins etc., da ist soweit alles i.O. Ich
werde es aber heute nochmal prüfen, gestern war es schon etwas später,
nicht das ich was "übersehen" habe...

@Hubert: Was meinst du mit "Auch den Reset überprüft"?

Er ist, wie am myAVR-Board auch, nicht bzw. nur am LPT-Port
angeschlossen. Also ohne Anschlussleitung am Port/Programmer ist der
Reset "in der Luft". Habe aber schon versucht, wie im Datenblatt
"beschrieben", du GND am Reset diesen "manuell" hervorzurufen.

Das mit den Pins gegen Masse werde ich machen. Da diese alle sehr
hochohmig abgegriffen werden, sollten auch die I/O Pins relativ
gleiches Potential haben, werde ich aber auch direkt prüfen.

von Karl H. (kbuchegg)


Lesenswert?

Spendier dem Reset mal einen 10K gegen Vcc.

von Hannes L. (hannes)


Lesenswert?

> (habe
> Energieelektroniker gelernt und E-Technik/Energietechnik studiert)

Sorry, das konnte ich deinen bisherigen Beiträgen nicht entnehmen. Aber
dann solltest du auch keine Probleme haben, den Inhalt der Datenblätter
umzusetzen.

> Also ohne Anschlussleitung am Port/Programmer ist der
> Reset "in der Luft".

Reset lege ich immer über 3k3..10k an Vcc.

...

von GMB (Gast)


Lesenswert?

Was soll da bringen? Das er dann ein definiertes Signal hat? Weil ein
"Power-On-Reset" bräuchte ja dann noch einen Kondensator, richtig?

Aber ich werde es versuchen!!

danke für den "Tip"!!

von Hannes L. (hannes)


Lesenswert?

Power-On-Reset war bei den Classic-AVRs, das brauchen die Tinys und
Megas nicht mehr, die haben schließlich BOD. Aber der Reset-PullUp ist
erforderlich, da der interne PullUp wegen HV-Programming fehlt oder
zumindest sehr hochohmig ist.

...

von GMB (Gast)


Lesenswert?

Ach so, alles klar. Daher ist im Datenblatt auch keine
Power-Reset-Schaltung abgebildet...;-)
Werde das dann mal alles ausprobieren nachher, mal sehen ob ich den
nicht ans laufen bekomme... ;-)

von Kon (Gast)


Lesenswert?

Er ist, wie am myAVR-Board auch, nicht bzw. nur am LPT-Port
angeschlossen. Also ohne Anschlussleitung am Port/Programmer ist der
Reset "in der Luft". Habe aber schon versucht, wie im Datenblatt
"beschrieben", du GND am Reset diesen "manuell" hervorzurufen.

also "in der Luft" ist glaube ich nicht so gut - der muss doch im
IDLE zustand an VCC - und wenn RESET ausgelöst werden soll, dann gegen
GND ...

Gruß Kon

von GMB (Gast)


Lesenswert?

Ja, das klingt logisch..."in der Luft" oder "undefiniert" ist ja
generell nicht erwünscht.
Werde ihn also mal mit 10k gegen Vcc setzen, mal sehen ob dies was
bringt.
Danke erstmal an alle für die Tips!!

Bericht dann später, was meine Messungen ergeben haben, und werde auch
einen Schaltplan hochladen!!

von Kon (Gast)


Lesenswert?

Also wenn du den RESET noch nicht am VCC hattest - mach das mal als
erstes... das würde bedeutet das dein Mega ständig resetet

von Kon (Gast)


Lesenswert?

P.S.: Schau mal im Datenblatt auf Seite 5 letzter Abschnitt

von Hubert.G (Gast)


Lesenswert?

Laut Schaltplan des myAVR-Bord ist der Reset-Pin über 10k an +5V

von GMB (Gast)


Lesenswert?

@ Kon: wird gemacht ;-)

@ Hubert: es gab versch. Revisionen, bei meiner (1.4c oder so), hängt
der Reset nur am Parallelport.

Werde es aber trotzdem direkt mal versuchen!

Danke für die Tips!!

von GMB (Gast)


Lesenswert?

Also:

10k gegen Vcc an Reset: DAS DING LÄUFT!!

Display zeigt zwar noch "murks" an, aber woran das liegt sollte man
ja auch rausfinden können. Eventuell ne Timing-Sache, oder falsche
Einstellung im Compiler, werd ich sehen müssen...

Danke soweit erstmal für eure Hilfe!

Sollten jetzt noch Probleme auftreten, mache ich dann nochmal nen
Thread auf denke ich!!

von Conlost (Gast)


Lesenswert?

Hallo,

wenn du meinen Beitrag mal gelesen hättest,
dann wäre das Ding schon vor 12.00 Uhr gelaufen.   :-)

Es grüsst,
Arno

von GMB (Gast)


Lesenswert?

> Sorry, das konnte ich deinen bisherigen Beiträgen nicht entnehmen. >
Aber dann solltest du auch keine Probleme haben, den Inhalt der
> Datenblätter umzusetzen.

Wie kommst du denn da drauf? Ich habe Energietechnik studiert, wir
hatten zwar auch das Fach "Mikroprozessortechnik", aber da wurden
leider solche praxisnahen Themen nicht angesprochen.
Es ist also eher ein Hobby von mir, da ich wie gesagt in meiner
täglichen Arbeit nicht mit Leitungen <1mm², sondern eher Leitungen
>100mm² Querschnitt zu tun habe, und auch mich nicht im mA/µA-Bereich
bewege, sondern eher im bereich kA/MA, und auch nicht mit mW und µW
rechne, sonder mit MW und GW!! Da sind dann wieder ganz andere
Faktoren, die da reinspielen, niedrigere Frequenzen, höhere Ströme und
Spannung, gegenüber hohen Frequenzen und sehr kleinen Strömen und
Spannungen.

@Arno: leider nicht, da ich um die Uhrzeit noch nicht zu Hause war.
Außerdem hab ich den ja gelesen, sonst liefe der ja jetzt nicht... ;-)

> Das sind knapp 4 MEGAHERTZ, das kann man nicht hören. Die Hörgrenze
> lieht beim Menschen unter 20 KILOHERTZ. - Wo lernt man Sowas?

Habe mich da wohl etwas unklar ausgedrückt, dass man 4MHz nicht mehr
hört ist mir auch klar. Sowas lernt man übrigens nirgendwo! ;-)
Sondern sowas kommt, wenn man die Kilos mit den Megas verwechselt...
;-)

von Hannes L. (hannes)


Lesenswert?

> Wie kommst du denn da drauf?

Etwa zweimal die Woche taucht hier ein Schüler oder Student auf, der
"auch mal was mit AVRs machen" will. Da ist oft das Grundlagenwissen
gleich null, wobei die Ziele sehr hoch gesteckt sind. Und deine Fragen
ähnelten den Fragen dieser Leute sehr.

Ich behaupte ja nicht, dass du beim Studium Wissen über AVRs gelernt
haben musst, ich denke aber, dass man da lernt, wie man effizient (auch
anhand von Datenblättern und durch selbstständiges Studium anderer
verfügbarer Quellen) Wissen erlangt und praktisch anwendet. Aber
vielleicht irre ich mich da, ich habe kein Studium absolviert, habe
zwar 1966 Elektri(n)ker gelernt, dann aber aus gesundheitlichen Gründen
als Kraftfahrer und Hebezeugführer gearbeitet. Elektronik und
Programmierung betreibe ich auch nur als Hobby.

...

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.