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!!
Hallo, Du mußt noch die Fusebits setzen. Auf externen Quarz... Sebastian
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
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?
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?
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
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
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?!?!
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. ...
> 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? ...
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?
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.
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. ...
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 ;)
@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.
> (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. ...
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"!!
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. ...
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... ;-)
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
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!!
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
@ 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!!
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!!
Hallo, wenn du meinen Beitrag mal gelesen hättest, dann wäre das Ding schon vor 12.00 Uhr gelaufen. :-) Es grüsst, Arno
> 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... ;-)
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.