Forum: Mikrocontroller und Digitale Elektronik ATmega8 geht nicht mehr nach Umstellung auf externen Quarzoszillator


von Thomas H. (t0m_h)


Angehängte Dateien:

Lesenswert?

Hallo Experten,

ich schaffe es nicht, einen Atmega8 auf externen Takt umzustellen. Den 
Aufbau sieht man oben im Bild, die gelben Kabel sind vom Programmer, rot 
ist + und schwarz ist gnd.

Ich hab das Atmel-Studio 4 benutzt und die Fuses so, wie im 2. Bild 
gesetzt. Sie werden automatisch vorher ausgelesen und ich hab nur 
SUT_CKSEL umgestellt.

Und jetzt geht gar nichts mehr. Der Programmer kann gar nicht mehr in 
den Programmiermodus wechseln. So hab ich schon 2 Amega8 "verbraten", 
der Screenshot ist von einem dritten, meinem letzten funktionierenden.

Der Takt liegt auch wirklich an Pin 9 an, hab ich mit einem 
Ikalogig-Analyser nachgeschaut. (Bild 3)

Wo kann ich denn jetzt noch suchen???

von Dietrich L. (dietrichl)


Lesenswert?

Thomas H. schrieb:
> Der Takt liegt auch wirklich an Pin 9 an, hab ich mit einem
> Ikalogig-Analyser nachgeschaut. (Bild 3)

Und warum geht Pin 1 (/Reset) auf 0? Das ist der Reset-Zustand, da kann 
nichts laufen.

Was ist an Pin 1 angeschlossen? Geht die Versorgungsspannung nach 
Anschwingen des Ozillators in die Knie und Brown-Out spricht an?

Gruß Dietrich

von Mike (Gast)


Lesenswert?

Mit welcher Frequenz arbeitet der ISP?
==> siehe STK500 [Main]-Tab

Die ISP-Frequenz darf nicht höher sein als 1/4 der F_CPU. Setze mal die 
Frequenz auf einen tiefen Wert, z.B. 100kHz oder sogar nur 4 kHz

von Mike (Gast)


Lesenswert?

...und prüfe nochmals, ob der Oszillator-Clock wirklich am richtigen Pin 
angeshlossen ist: Pin9 - XTAL1 - PB6

von Thomas H. (t0m_h)


Lesenswert?

Hallo,

der Reset geht auf low, weil ich den Anfang eines Programmiervorgangs 
aufgenommen habe.

Der ISP läuft mit 57.60KHz. Mit 4kHz hab ichs auch schon probiert. Es 
geht immer noch nichts :-(

von Jonas B. (jibi)


Lesenswert?

Kann mich dran errinnern das einer der "externen" Quellen nicht für 
einen Quarz geeignet ist, und damit der Atmega nicht losläuft - so hab 
ich mir auch schon einen Atemag "verfused" ;)

Gruß Jonas

von ich (Gast)


Lesenswert?

Ist ja auch kein Quarz, sondern ein Oszillator. Der erzeugt selbst den 
Takt und gibt ihn nur zum Professor :-)

von Mike (Gast)


Lesenswert?

>nicht für einen Quarz geeignet ist
Also ich gehe davon aus, dass der TO einen Quarzoszillator und nicht 
bloss einen Quarz angeschlossen hat. Aber es wäre gut, wenn der TO seine 
Schaltung als Schema posten würde. Ebenfalls hilfreich wäre, wenn wir 
wüssten welche Fehlermeldung der Programmer ausspuckt?

von spess53 (Gast)


Lesenswert?

Hi

>Also ich gehe davon aus, dass der TO einen Quarzoszillator und nicht
>bloss einen Quarz angeschlossen hat.

Das ist ja wohl laut und deutlich auf dem Bild im Eröffnungspost zu 
erkennen.

MfG Spess

von ich (Gast)


Lesenswert?

> Das ist ja wohl laut und deutlich auf dem Bild im Eröffnungspost zu
> erkennen.
Dazu schreibt der TO:
> der Screenshot ist von einem dritten, meinem letzten funktionierenden.

Also der Programmer kommt nicht mehr in den Programmier-Modus. Und genau 
das ist im Bild nicht zu sehen. Mannohmann, erst lesen, dann posten!

von blinky (Gast)


Lesenswert?

Messe mal direkt an den Beinchen des µC ob da auch der Takt und die 
entsprechenden Signale ankommen. Vieleicht ist es ein Kontaktproblem des 
Steckbretts.

von ... (Gast)


Lesenswert?

Thomas H. schrieb:
> Der Takt liegt auch wirklich an Pin 9 an, hab ich mit einem
> Ikalogig-Analyser nachgeschaut. (Bild 3)

von Udo S. (urschmitt)


Lesenswert?

ich schrieb:
> Dazu schreibt der TO:
>> der Screenshot ist von einem dritten, meinem letzten funktionierenden.
>
> Also der Programmer kommt nicht mehr in den Programmier-Modus. Und genau
> das ist im Bild nicht zu sehen. Mannohmann, erst lesen, dann posten!

Wenn das aber der noch funktionierende sein soll, dann ist der ja noch 
NICHT auf externen Takt umgefust. Was soll dann aber der 
Quarzoszillator?
Also irgendwie ist das konfus und sollte vom TO geklärt werden.

von Thomas H. (t0m_h)


Angehängte Dateien:

Lesenswert?

Udo Schmitt schrieb:
> ich schrieb:
>> Dazu schreibt der TO:
>>> der Screenshot ist von einem dritten, meinem letzten funktionierenden.
>>
>> Also der Programmer kommt nicht mehr in den Programmier-Modus. Und genau
>> das ist im Bild nicht zu sehen. Mannohmann, erst lesen, dann posten!
>
> Wenn das aber der noch funktionierende sein soll, dann ist der ja noch
> NICHT auf externen Takt umgefust. Was soll dann aber der
> Quarzoszillator?
> Also irgendwie ist das konfus und sollte vom TO geklärt werden.

Schon mal vielen Dank fürs Mitdenken. Hier noch mal eine Aufnahme von 
einem Atmega8, der nicht mehr geht. Aufgenommen wurde, als die Fuses 
ausgelesen werden sollten. Gelb ist der Takt, Rot ist SCK und Grün ist 
MISO.

Tatsächlich ist im obigen Aufbau sinnloserweise ein nicht umgefuster 
Atmega mit einem Quarzoszillator zu sehen. Den hab ich nur reingesteckt, 
damit ich das 2. Bild vom ersten Post machen konnte, weil bei den 
anderen werden die Fuses ja nicht mehr ausgelesen.

von Mike (Gast)


Lesenswert?

>der nicht mehr geht
Mit dieser Info kann niemand helfen!

WAS GENAU GEHT NICHT MEHR?
Fehlermeldungen  inkl. Details?
Kannst Du auch die Signature nicht lesen?

von Thomas H. (t0m_h)


Lesenswert?

Mike schrieb:
>>der nicht mehr geht
> Mit dieser Info kann niemand helfen!
>
> WAS GENAU GEHT NICHT MEHR?
> Fehlermeldungen  inkl. Details?
> Kannst Du auch die Signature nicht lesen?

Sie tun, als ob sie ganz tot wären. Die Fehlermeldung ist
Entering programming mode ... FAILED

mehr Details bekomme ich nicht. Oder doch?? wie denn??

Wenn ich die stk500.exe von der Kommandozeile aufrufe, sieht es so aus:
1
C:\Info\atmel\STK500>stk500 -s -dATmega8 -cCOM3
2
STK500 command line programmer, v 2.2 Atmel Corp (C) 2004-2005.
3
4
Connected to STK500 V2 on port COM3
5
Device parameters loaded
6
Could not enter programming mode
7
Programming mode left
8
Connection to STK500 V2 closed
9
10
WARNING! One or more operations failed! Please examine the output log above!

von Thomas E. (thomase)


Lesenswert?

Wenn es eben noch ging und nach Umstellung der Taktquelle nicht mehr, 
ist der Fehler genau da zu suchen.
> Der Takt liegt auch wirklich an Pin 9 an, hab ich mit einem
> Ikalogig-Analyser nachgeschaut. (Bild 3)
Wer misst, misst Mist.
Aber eigentlich misst du ja gar nicht.
Dein Analyzer zeigt dir 0- und 1- Pegel vom Oszillator an. Und zwar die 
Pegel, die er dafür hält. Sehen deine Atmegas das genau so?
Möglicherweise hat dein Oszillator eine Macke: Zu niedriger Pegel.

Nimm mal den "noch heilen" Atmega und schreib da ein Toggle-Programm 
rein:

int main(void)
{
  DDRX |= (1 << Y);
  while(1)
  {
    PORTX ^= ( 1 << Y);
  }
}

Den entsprechenden Ausgang hängst du an den Takteingang von einem der 
"kaputten". Damit stellst du sicher, daß der Atmega auch den Pegel 
bekommt, den er möchte.

mfg.

von Mike (Gast)


Lesenswert?

Oder ein Schema wäre auch mal was:
- Wie ist der ISP angeschlossen?
- GND und Vcc Verbindungen?
- Reset mit PullUp?
- Stützkondensatoren?

von Thomas H. (t0m_h)


Angehängte Dateien:

Lesenswert?

> Nimm mal den "noch heilen" Atmega und schreib da ein Toggle-Programm
> rein:

OK, hab ich gemacht, geht aber auch nicht.

Ein Schema hab ich auch gemalt (aktuell mit 2. Atmega als Taktgeber), 
aber ich glaube, da sind vom Abmalen her mehr Fehler drin, als in der 
echten Schaltung.

von Dietrich L. (dietrichl)


Lesenswert?

Thomas H. schrieb:
> Ein Schema hab ich auch gemalt

Da fehlt der Ziehwiderstand am /Reset-Eingang!

Gruß Dietrich

von Thomas E. (thomase)


Lesenswert?

> OK, hab ich gemacht, geht aber auch nicht.
Was ist denn das jetzt für ein Sch...
Der toggelt aber auch wirklich?
Ich wollte schon drauf wetten, daß es daran liegt. Wenigstens weiss man 
jetzt, daß es daran nicht liegt. Bringt dich aber auch nicht wirklich 
weiter.

> Da fehlt der Ziehwiderstand am /Reset-Eingang!
Der Pullup ist selbst beim Atmega8 intern vorhanden. Schadet aber nicht 
da trotzdem noch einen ranzumachen.

mfg.

von Peter R. (pnu)


Lesenswert?

Zuerst sollte man versuchen, die Signatur des Bausteins über die ISP zu 
lesen. Dazu braucht man kein Programm im Kontroller.
Nahezu alle Proggerprogramme haben diese Möglichkeit im Menu bzw. eine 
Fehlermeldung device not...

Wenn  das nicht geht, ist zu prüfen:

-ist vielleicht dem PC der falsche Kontrollertyp angemeldet, und er 
bricht deswegen ab?
-Fehler in Hardware? : von Kontroller oder ISP-Schnittstelle oder 
progger
-Programmiertakt zu schnell?
-Kontroller hat Takt, der den fuses entspricht?

Erst wenn der angeschlossene Kontroller über ISP erkannt wird, hat ein 
Programmierversuch doch Sinn

von Dietrich L. (dietrichl)


Lesenswert?

Thomas Eckmann schrieb:
>> Da fehlt der Ziehwiderstand am /Reset-Eingang!
> Der Pullup ist selbst beim Atmega8 intern vorhanden. Schadet aber nicht
> da trotzdem noch einen ranzumachen.

Soweit richtig, aber in "AVR042: AVR Hardware Design Considerations" 
wird er empfohlen.

Gruß Dietrich

von Thomas H. (t0m_h)


Lesenswert?

Peter R. schrieb:
> Zuerst sollte man versuchen, die Signatur des Bausteins über die ISP zu
> lesen. Dazu braucht man kein Programm im Kontroller.
> Nahezu alle Proggerprogramme haben diese Möglichkeit im Menu bzw. eine
> Fehlermeldung device not...

Genau das kommt
>
> Wenn  das nicht geht, ist zu prüfen:
>
> -ist vielleicht dem PC der falsche Kontrollertyp angemeldet, und er
> bricht deswegen ab?

mit einem anderen Chip geht alles problemlos

> -Fehler in Hardware? : von Kontroller oder ISP-Schnittstelle oder
> progger

s.o.

> -Programmiertakt zu schnell?

57kHz

> -Kontroller hat Takt, der den fuses entspricht?

ääh, wo stellt man das denn ein? ich kann zwar bei HW-Settings eine 
Clock-Generator einstellen, aber nur bis 3,86MHz. Außerdem weiß ich gar 
nicht, wozu der da ist und gemacht hab ich es auch noch nie
>
> Erst wenn der angeschlossene Kontroller über ISP erkannt wird, hat ein
> Programmierversuch doch Sinn

Ich glaub nun wirklich, dass ich 2 Atmegas geschrottet habe. Das Problem 
ist, dass es nur durch Umstellen der Clock Source Fuses passiert ist. 
Jetzt trau ich mich halt nicht auch noch beim letzten verbliebenen Chip 
die Fuses umzustellen, jedenfalls nicht, bevor das Reichelt-Paket kommt.

von c-hater (Gast)


Lesenswert?

Thomas H. schrieb:

> Der Takt liegt auch wirklich an Pin 9 an, hab ich mit einem
> Ikalogig-Analyser nachgeschaut.

Hast du wirklich direkt am Pin 9 gemessen oder zum Messen bloß 
irgendwo einen Draht ins Breadboard gesteckt?

Weil: eigentlich hast du alles richtig gemacht, jedenfalls kann ich 
weder im fotografierten Aufbau noch bei den Fuses einen Fehler entdecken 
und auch der Oszillator liefert ja offensichtlich einen Takt: Kurz: 
eigentlich müßte es laufen.

Die einzige Erklärung, die mir einfällt, ist halt, daß der Takt zwar 
vorhanden ist, den Pin 9 aber nicht wirklich erreicht.

von Wolfgang (Gast)


Lesenswert?

c-hater schrieb:
> Die einzige Erklärung, die mir einfällt, ist halt, daß der Takt zwar
> vorhanden ist, den Pin 9 aber nicht wirklich erreicht.

Woher soll der Takt auch kommen? Wenn AVCC nicht beschaltet ist, dürfte 
auf PortC tiefer Friede herrschen.
Der Kondensator über VCC sieht eher nach 100pF aus, da würde ich noch 
mal einen Blick drauf werfen und außerdem jedem Prozessor seinen eigenen 
spendieren.

Und der Max232 ist auch noch mehr als spärlich beschaltet: kein 
Kondensator an Pin2, Kondensator an Pin6 verpolt.

von Jan (Gast)


Lesenswert?

Wolfgang schrieb:
> Wenn AVCC nicht beschaltet ist, dürfte auf PortC tiefer Friede herrschen.

du faselt wirr! Schau mal wofür AVCC gebraucht wird!

von Thomas H. (t0m_h)


Lesenswert?

c-hater schrieb:
> Thomas H. schrieb:
>
>> Der Takt liegt auch wirklich an Pin 9 an, hab ich mit einem
>> Ikalogig-Analyser nachgeschaut.
>
> Hast du wirklich direkt am Pin 9 gemessen oder zum Messen bloß
> irgendwo einen Draht ins Breadboard gesteckt?
>
>
Jetzt hab ichs nochmal gemessen, direkt Kabel an Pin9 drangehalten. 
Jetzt wieder mit dem Oszillator. Takt kommt an. Der Chip ist wohl echt 
hinüber.

Ich hätte noch ein paar ATinys rumliegen. Wenn ich ein gutes 
Screencapture-Programm wüsste, könnte ich ja ein Splatter-Video machen, 
wo man sieht, wie der Atmega stirbt, wenn man die Fuses umstellt.

von Wolfgang (Gast)


Lesenswert?

Jan schrieb:
> du faselt wirr! Schau mal wofür AVCC gebraucht wird!

Wenn ich dazu aus dem Datenblatt zitieren darf:
"AVCC is the supply voltage pin for the A/D Converter, Port C (3..0), 
and ADC (7..6). It should be externally connected to VCC, even if the 
ADC is not used."

von Jan (Gast)


Lesenswert?

"AVCC is the supply voltage pin for the A/D Converter"
A/D wird NICHT benutzt
"It should be externally connected to VCC"
SOLLTE man. Ist für einen Test kein MUSS. Geht auch so.

von Thomas H. (t0m_h)


Angehängte Dateien:

Lesenswert?

>
> Und der Max232 ist auch noch mehr als spärlich beschaltet: kein
> Kondensator an Pin2, Kondensator an Pin6 verpolt.

Stimmt. Ist aber nur falsch abgemalt, in der Schaltung wars richtig. 
Neues Bild.

von c-hater (Gast)


Lesenswert?

Wolfgang schrieb:

> Wenn ich dazu aus dem Datenblatt zitieren darf:
> "AVCC is the supply voltage pin for the A/D Converter, Port C (3..0),
> and ADC (7..6). It should be externally connected to VCC, even if the
> ADC is not used."

"should be" = sollte...

D.h. im Datenblatt-Englisch üblicherweise: eine Empfehlung, die gewisse 
Vorteile verspricht, aber auch ignoriert werden kann, ohne die 
grundsätzliche Funktion oder gar das Überleben des Bauteils zu 
gefährden.

Wenn da gestanden hätte "must be" oder gar "has to be", dann hättest du 
sicher Recht gehabt. Steht da aber nicht.

von holger (Gast)


Lesenswert?

>>"AVCC is the supply voltage pin for the A/D Converter"
>>A/D wird NICHT benutzt
>>"It should be externally connected to VCC"

>SOLLTE man. Ist für einen Test kein MUSS. Geht auch so.

Nein geht es eben nicht. Es gab hier schon genug Threads
wo das Gegenteil bewiesen wurde.

von holger (Gast)


Lesenswert?

Und wenn man das liest:

The ADC has a separate analog supply voltage pin, AVCC. AVCC must not 
differ more than ±0.3V
from VCC.

Ist offen lassen keine Option.

von Thomas H. (t0m_h)


Lesenswert?

Jetzt würd ich das gerne als erledigt markieren. Wie geht das?

Ich hab mich getraut, auch den letzten mir verbliebenen Atmega8 
umzufusen und hab davon ein Video gemacht. Er hat überlebt und tut nun, 
was er erst mal soll (UART geht). Oszillator an Pin9 (bitte nicht 
weiterstreiten wegen dem fehlenden AVCC im Testaufbau - war ja nur qnd).

Nun gehts an die MPU6050, aber da mach ich dann einen anderen Thread 
auf, wenns nicht klappt.

Vielen Dank an alle, für das Verbraten von Hirnschmalz.

Thomas

von Thomas E. (thomase)


Lesenswert?

holger schrieb:
> Nein geht es eben nicht. Es gab hier schon genug Threads
> wo das Gegenteil bewiesen wurde.
Ursprünglich war das aber angeschlossen. Und da funktionierte es auch 
schon nicht. Aber (A)Vcc und GND wird grundsätzlich komplett 
angeschlossen. Und jeweils mit 100nF versehen. Da wird überhaupt nicht 
drüber diskutiert.

mfg.

von c-hater (Gast)


Lesenswert?

Thomas H. schrieb:

> Jetzt hab ichs nochmal gemessen, direkt Kabel an Pin9 drangehalten.
> Jetzt wieder mit dem Oszillator. Takt kommt an. Der Chip ist wohl echt
> hinüber.

Dann bleibt als Erklärung noch: Wackelkontakt in der SPI-MOSI-Leitung, 
d.h.: es wurde irgendwelcher Müll in die Fuses geschrieben, nicht das, 
was beabsichtigt war.

Wiederbelebung per HV-Programming möglich. Alternativ: Durchtesten aller 
möglichen Taktquellen, bis die gefunden ist, auf die du das Ding 
ungewollt programmiert hast. Bei genauerer Betrachtung ist das garnicht 
so viel, was da durchprobiert werden muß, die meisten Clockoptionen 
beziehen sich ja auf nur das "Startverhalten" und mit einem Oszi kann 
man auch leicht feststellen, ob durch XTAL2 ein externer Schwinger 
angeregt werden soll, womit sich der Suchbaum sehr schnell erstmal in 
zwei Hälften zerlegen läßt.

von holger (Gast)


Lesenswert?

>Alternativ: Durchtesten aller
>möglichen Taktquellen, bis die gefunden ist, auf die du das Ding
>ungewollt programmiert hast.

Am wahrscheinlichsten ist das er sich die RSTDIBL Fuse
weggeblasen hat. Dann funktioniert ISP überhaupt nicht mehr.
Egal was er da an Takt anlegt.

von Paul Baumann (Gast)


Lesenswert?

O.T.
Über das "SOLLTE" in Datenblättern könnte ich mir auch die Schwindsucht
an den Hals ärgern.
Es fehlt nur noch: "Der Kontroller sollte eine Betriebsspannung 
erhalten"
:-(
Da kann man nur noch Loriot zitieren: "ACH?!"

MfG Paul

von Fathi (Gast)


Lesenswert?

Lege den Takt bitte mal an xtal2 von einem defekten atmega und versuche 
ihn zu programmieren.

Gruß
Fathi

von holger (Gast)


Lesenswert?

>Lege den Takt bitte mal an xtal2 von einem defekten atmega und versuche
>ihn zu programmieren.

Er hat einen 4MHz Taktgenerator. Das wird nichts bringen.

von Thomas E. (thomase)


Lesenswert?

> Lege den Takt bitte mal an xtal2 von einem defekten atmega und versuche
> ihn zu programmieren.
Und was soll das?
Da kann er sich auch einen Finger ins linke Ohr stecken und danach ins 
rechte. Und wenn das auch nichts nützt, sucht er sich noch eine 
Körperöffnung irgendwo dazwischen.

mfg.

von Thomas H. (t0m_h)


Lesenswert?

Fathi schrieb:
> Lege den Takt bitte mal an xtal2 von einem defekten atmega und versuche
> ihn zu programmieren.
>
> Gruß
> Fathi

Danke auch noch für diesen Hinweis, aber da nun wieder etwas geht, lege 
ich einen Mülleimer von unten an den Atmega an und schau garnicht 
weiter, was passiert.

Thomas

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.