Hallo, Leute! Heute wollte ich eine neue Platine mit einem ATMega8 testen. Als erstes sollte ich die FUSE-Bits setzen und das habe ich gemacht. Ich habe ein 16MHz-Quarz und habe dann E0 (low) und C9 (high) gesetzt. Nachdem ich es gemacht habe, geht der ATMega8 nicht mehr. Ich kann weder neue FUSE-Bits setzen, noch das Ding programmieren. Was habe ich falsches gemacht? Und, noch wichtiger!, wie kann ich mein Problem lösen? Besten Dank! Luca Bertoncello
Das übliche halt, Du hast auf external Clock umgestellt, aber keine externe Taktquelle angeschlossen. Mach das mal, dann gehts wieder.
Micha H. schrieb: > Das übliche halt, Du hast auf external Clock umgestellt, aber keine > externe Taktquelle angeschlossen. Mach das mal, dann gehts wieder. Ist ein Quarz keine extern Taktquelle? Wenn nein, dann habe ich doch keine externe Taktquelle angeschloßen. Ansonsten ja! Als Anhang das Schema der Platine. Grüße Luca Bertoncello
Luca Bertoncello schrieb: > Ist ein Quarz keine extern Taktquelle? Nein. Das ist das frequenzbestimmende Glied in einer groesseren Schaltung die insgesamt eine Taktquelle ergibt. Für sich genommen kann ein Quarz keinen Takt erzeugen. (Auch nicht wenn man irgendwie eine Versorgungsspannung anschliesst). Es fehlt ein Verstärker und etwas zum drehen der Phase. Beim Atmel ist ein Teil der Taktquellen-Schaltung im Gehäuse und der Quarz eben ausserhalb. Was hast Du denn noch für Geräte oder Bauteile? STK-500? Ein Oszi? Irgendwas, was man als Taktgenerator gebrauchen könnte? Du musst jedenfalls irgendwie den Takt von aussen an das IC kriegen. Wie schnell ist nicht in erster Linie wichtig. Kommt auch darauf an, was Du zum programmieren nimmst.
Hi >Ist ein Quarz keine extern Taktquelle? Schon. Aber der AVR macht einen Unterschied zwischen 'External Clock' und 'Ext. Crystal/Resonator'. Im ersteren Fall erwartet er ein Taktsignal an XTAL1. Im zweiten Fall erzeugt er zusammen mit dem Quarz oder Resonator den Takt selbst. Wenn du auf 'External Clock' gefust hast, ist der interne Oszillator (für den Quarz) abgeschaltet und der Quarz wird nicht angesteuert. MfG Spess
Grrrr schrieb: > Nein. Das ist das frequenzbestimmende Glied in einer groesseren > Schaltung die insgesamt eine Taktquelle ergibt. Für sich genommen kann > ein Quarz keinen Takt erzeugen. (Auch nicht wenn man irgendwie eine > Versorgungsspannung anschliesst). Es fehlt ein Verstärker und etwas zum > drehen der Phase. Beim Atmel ist ein Teil der Taktquellen-Schaltung im > Gehäuse und der Quarz eben ausserhalb. Aber die Schaltung muß am Ende auch ohne Programmer laufen, oder? > Was hast Du denn noch für Geräte oder Bauteile? STK-500? Ein Oszi? > Irgendwas, was man als Taktgenerator gebrauchen könnte? stk200 > Du musst jedenfalls irgendwie den Takt von aussen an das IC kriegen. Wie > schnell ist nicht in erster Linie wichtig. Kommt auch darauf an, was Du > zum programmieren nimmst. Das stk200 funktioniert einwandfrei mit anderen Schaltungen, also, ich nehme an, es ist in Ordnung. Und die PINs der Stecker sind gut verbunden mit dem ATMega8 (habe gerade geprüft). Also, was fehlt noch in der Schaltung? Grüße Luca Bertoncello
spess53 schrieb: > Hi > >>Ist ein Quarz keine extern Taktquelle? > > Schon. Aber der AVR macht einen Unterschied zwischen 'External Clock' > und > 'Ext. Crystal/Resonator'. Im ersteren Fall erwartet er ein Taktsignal an > XTAL1. Im zweiten Fall erzeugt er zusammen mit dem Quarz oder Resonator > den Takt selbst. > Wenn du auf 'External Clock' gefust hast, ist der interne Oszillator > (für den Quarz) abgeschaltet und der Quarz wird nicht angesteuert. Also, E0 als Low-Fuse bedeutet: External Clock; Start-up time: 6CK + 64ms. Es ist wie bei den anderen Schaltungen, die ich habe. Ist es für den Quarz falsch? Was soll ich angeben? EE (Ext Crystal/Resonator High Freq; Start-up time: 1K CK + 0ms)? Und noch die spannende Frage: wenn ich das Ding nicht mehr programmieren kann, wie kann ich diese FUSE-Bits nochmal setzten? Danke Luca Bertoncello
Hi
>stk200
Ein richtiges STK200 (gelbes Board) oder nur einen STK200-Kompatiblen
Programmer? Das wir meistens verwechselt.
MfG Spess
> Ich habe ein 16MHz-Quarz und habe dann E0 (low) und C9 (high) gesetzt. ^ Das steht für 'external clock' [1]. Aber halb so wild. Einfach(tm) irgendwie(tm)[2, 3] einen Takt an XTAL1 hängen und dann die Fuses richtig(rm) programmieren. HF [1] Tabelle 88 auf Seite 224, Tabelle 2 auf Seite 26 und der Abschnitt 'External Clock' auf Seite 32 in http://atmel.com/dyn/resources/prod_documents/doc2486.pdf [2] Oszillator, ein anderer µC der an einem Beinchen wackelt, Taktleitung von einem Programmieradapter (der eine ebensolche für genau solche Rettungsaktionen bereit hält), .. weitere Infos in [3] [3] http://www.mikrocontroller.net/articles/AVR_Fuses#Reaktivieren_bei_fehlerhaften_Taktquellen-Fuse-Einstellungen
spess53 schrieb: > Ein richtiges STK200 (gelbes Board) oder nur einen STK200-Kompatiblen > Programmer? Das wir meistens verwechselt. Selbst (von einem Freund) gemachtes... :D Ich habe keine Ahnung, ob er ein kompatibles oder ein richtiges gebaut hat... Grüße Luca Bertoncello
g457 schrieb: >> Ich habe ein 16MHz-Quarz und habe dann E0 (low) und C9 (high) gesetzt. > ^ > Das steht für 'external clock' > [1]. Aber halb so wild. Einfach(tm) irgendwie(tm)[2, 3] einen Takt an > XTAL1 hängen und dann die Fuses richtig(rm) programmieren. Aber an XTAL1 habe ich schon was, und zwar der Quarz? Also, ich verstehe überhaupt nichts mehr (bin noch Anfänger)... Leider ein anderes ATMega8, das ich nutzen kann um einen Takt zu generieren habe ich nicht. Gibt es andere Möglichkeiten? Eventuell, ein Freund von mir hat ein STK500, und ich konnte ihn fragen, ob er mir das Ding für ein paar Tage geben kann. Nutzt es was? Danke Luca Bertoncello
Hi >Selbst (von einem Freund) gemachtes... :D >Ich habe keine Ahnung, ob er ein kompatibles oder ein richtiges gebaut >hat... Also nur den Nachbau des STK200-Programmers. Was hast du denn noch so an Elektronik/Controllern herumliegen? MfG Spess
Hi Letzte Frage hat sich erledigt. >Eventuell, ein Freund von mir hat ein STK500, und ich konnte ihn fragen, >ob er mir das Ding für ein paar Tage geben kann. >Nutzt es was? Dann nimm deinen ATMega mit zu ihm und lass die Fuses zurücksetzen. Ist eine Minutensache. MfG Spess
> Aber an XTAL1 habe ich schon was, und zwar der Quarz? Hmja aber der wird ja nicht angetrieben vom mega8 (wegen der falschen Einstellungen).. ergo musst Du die Aufgabe des Quarzes übernehmen - und selbst einen Takt einspeisen in XTAL1. > Also, ich verstehe überhaupt nichts mehr (bin noch Anfänger)... Jeder hat mal angefangen, nur keine Bange. Ich denke auch praktisch jeder hat sich schon mal mit den Fuses ins eigene Knie geschossen (Hintergrund: da gibts noch mehr Fiesigkeiten: man kann sich versehentlich den ISP (Programmierzugang) abdrehen, ebenso den JTAG (auch ein Programmier(-und mehr-)zugang), oder der JTAG an lassen und sich dann wundern, warum einige Portpins nicht funktionieren, oder den Reset deaktivieren und dann nicht mehr Programmieren können, oder den Vorteiler falsch setzen und sich wundern, dass der µC acht mal so lange braucht wie er eigentlich sollte, ..) Hast Du Dir das Datenblatt schon mal angesehen? Insbesonderen (aber nicht ausschließlich) die Stellen, die ich oben genannt hab? Ebenso mit dem Link ins Wiki, da gibts nämlich ziemlich schmutzige Ideen, wie man einen extenen Takt hinbekommt: - andere µC (hatten wir schon, leider nicht anwesend) - Programmieradapter mit Taktausgang (hat das selbstgelötete STK200 so was? wahrscheinlich nicht..) - Oszillator [1] falls vorhanden - Oszillatorschaltung aufbauen [2] - Kalibriersignal eines Oszilloskops so anwesen - Trafo (50Hz aus dem Stromnetz - Achtung Spannungsbegrenzung/Grundlast vorsehen!!einself) - und zuletzt: manuell.. das dauert zwar, aber es geht. Bei youtube gibts auch Videos dazu, wie man das hinbekommt.. Wenn Du dir ein STK500 ausleihen kannst, dann kannst Du von jenem das Taktsignal rüberholen (-> Doku wo Du das abgreifen kannst und wie Du das Brett einstellen musst), oder Du steckst Deinen mega8 auf jenes STK500 (das kann einen externen Takt erzeugen -> Doku).. Hoffe ich konnte helfen [1] http://de.wikipedia.org/wiki/Quarzoszillator#Quarzoszillator-Bausteine [2] http://de.wikipedia.org/wiki/Oszillator#Resonanzoszillator
spess53 schrieb: > Letzte Frage hat sich erledigt. > >>Eventuell, ein Freund von mir hat ein STK500, und ich konnte ihn fragen, >>ob er mir das Ding für ein paar Tage geben kann. >>Nutzt es was? > > Dann nimm deinen ATMega mit zu ihm und lass die Fuses zurücksetzen. Ist > eine Minutensache. OK, also ich lasse mir diesen STK500 geben und mit dem den ATMega8 wieder programmieren. Ich danke euch! Ich melde mich dann morgen oder ein anderen Tag mit dem Ergebnis... :D Grüße Luca Bertoncello
spess53 schrieb: >>Eventuell, ein Freund von mir hat ein STK500, und ich konnte ihn fragen, >>ob er mir das Ding für ein paar Tage geben kann. >>Nutzt es was? > > Dann nimm deinen ATMega mit zu ihm und lass die Fuses zurücksetzen. Ist > eine Minutensache. Also, ich habe jetzt den STK500v2 bei mir. Leider kann ich den µC immer noch nicht programmieren oder FUSE setzten... Wenn ich -F noch einhänge wird auch immer fehlschlagen. Wo soll der Clock vom STK500 kommen? Ist diese SCK? Wenn ja, ich habe es an den PIN SCK der ATMega8 verbunden, aber macht immer nichts. Ich habe auch probiert -e (erase) zu geben, immer mit dem -F. Hier das Ergebnis: lucabert@frodo:~$ avrdude -pm8 -cstk500v2 -P/dev/ttyACM0 -e -F avrdude: stk500v2_command(): command failed avrdude: initialization failed, rc=-1 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0xffffff avrdude: Yikes! Invalid device signature. avrdude: Expected signature for ATMEGA8 is 1E 93 07 avrdude: erasing chip avrdude: stk500v2_command(): command failed avrdude: safemode: Fuses OK avrdude done. Thank you. Also, es sieht so aus, daß es immer nicht geht. Was kann ich noch machen? Danke Luca Bertoncello
Schaug mal da [1], da gibts auch ein deutsches Handbuch dazu falls nicht eh schon vorhanden. ..und bevor noch was kaputt geht: MACH DAS -F WEG. Das ist (im Regelfall) böse (und nur in Ausnahmefällen sinnvoll. Der aktuelle Fall ist kein solcher Ausnahmefal). Viel Spaß bei Dokulesen [1] http://www.mikrocontroller.net/articles/STK500
g457 schrieb: > Schaug mal da [1], da gibts auch ein deutsches Handbuch dazu falls nicht > eh schon vorhanden. > > ..und bevor noch was kaputt geht: MACH DAS -F WEG. Das ist (im > Regelfall) böse (und nur in Ausnahmefällen sinnvoll. Der aktuelle Fall > ist kein solcher Ausnahmefal). Ehrlich gesagt, ich finde in dem Handbuch nichts nutzliches... Kannst du ein konkreten Vorschlag machen, was ich probieren soll? Danke Luca Bertoncello
> Kannst du ein konkreten Vorschlag machen, was ich probieren soll?
Kapitel 3.8.4 "Takteinstellung, XTAL1 und OSCSEL" in oben angesprochenem
dt. Manual -> die beiden Jumper XTAL1 und OSCSEL passend setzen sollte
helfen.
HTH
g457 schrieb: >> Kannst du ein konkreten Vorschlag machen, was ich probieren soll? > > Kapitel 3.8.4 "Takteinstellung, XTAL1 und OSCSEL" in oben angesprochenem > dt. Manual -> die beiden Jumper XTAL1 und OSCSEL passend setzen sollte > helfen. Das Gerät, was ich habe, ist nicht genau dieses... Es ist ein kleines Ding, per USB anzusprechen, mit einem 10poliges Anschluß für den ISP-Anschluß der Platine. Mehr hat das Ding nicht... Ich versuche morgen was zu basteln, um ein externen Takt an XTAL1 zu schicken, und das ganze wieder zu programmieren... Sigh! Danke Luca Bertoncello
Hi Hast du kein AVR-Studio. avrdude kenne ich nicht und ich weiss nicht, ob du damit die volle Kontrolle über das STK hast. Da gibt es ein ein paar Jumper auf dem STK. Sieh dir mal die die Beschreibung auf der Unterseite an. RESET muss gesteckt se. XTAL1 muss gesteckt sein OSCSEL in Stellung 1-2 für den Softwaretakt des STK Fall du noch einen Quarz hast, kannst du den in den Sockel stecken und den Jumper für OSCSEL in Stellung 2-3 stecken. MfG Spess
> Es ist ein kleines Ding, per USB anzusprechen, mit einem 10poliges > Anschluß für den ISP-Anschluß der Platine. > Mehr hat das Ding nicht... Schade, dann ist es ein STK500-kompatibler welcher, kein 'STK500' (letzteres ist der Name obigen Entwicklungsbretts). Dann kommst Du wohl um bastel nicht rum - Vorschläge dazu gabs ja schon ein paar. Viel Erfolg!
Bau dir den hier nach, hat mir auch schon geholfen. http://www.klaus-leidinger.de/mp/Mikrocontroller/meinetools.html#Preserver
Hi Vergiss meine Antwort. Anscheinend weiß hier niemand mehr, was ein STK200 oder STK500 wirklich ist. Wahrscheinlich muss man jedes mal erst richtig nachfragen welcher Clone da gemeint ist. MfG Spess
Lieber Luca, wir können Dir hier nicht wirklich helfen wenn Du nicht genau angibst, welche Geräte Du benutzt. Es gibt eine gute Chance, dass hier jemand das gleiche Gerät benutzt hat, aber dazu müssen wir eben wissen, was es wirklich ist. Darüber hinaus ist es sehr frustrierend für uns, wenn Du erst sagst, es ist ein STK200, dann aber ist es keines sondern ein Nachbau. Dann sagst Du, Du hast ein STK500, aber das ist es dann auch nicht. Du wirst sicherlich schneller und mit wesentlich weniger Frustration auf beiden Seiten weiterkommen, wenn Du uns genau angibst, was Du hast. Am besten mit einem Link auf die Shopseite oder die Bauanleitung oder wie das Programmiergerät auch immer zu Dir bzw. Deinem Freund gelangt ist oder entstanden ist. Als Hinweis: So sieht ein STK500 aus: http://www.atmel.com/dyn/products/tools_card_v2.asp?tool_id=2735 Und so ein STK200 in der Parallel-Port-Version: http://www.kanda.com/largeimage.php?id=720 Und so ein STK200 in der USB-Version: http://www.kanda.com/largeimage.php?id=852
Hi @ Grrrr (Gast) Eigentlich kann man da keinen richtigen Vorwurf daraus machen. Diese Programmer-Klone werden unter STK200/500, AVR USB MKII oder sonst noch etwas als Bauanleitung/Bausatz oder Fertiggerät angeboten. Unbedarfte Neulinge glauben dann, das sie so etwas dann auch besitzen. Also ist erhöhte Skepsis bei solchen Aussagen angesagt. MfG Spess
Grrrr schrieb: > wir können Dir hier nicht wirklich helfen wenn Du nicht genau angibst, > welche Geräte Du benutzt. Es gibt eine gute Chance, dass hier jemand das > gleiche Gerät benutzt hat, aber dazu müssen wir eben wissen, was es > wirklich ist. Es tut mir echt Leid, ich dachte aber wirklich, daß ich ein STK200 habe, und der Freund ein STK500v2... Ich wusste wirklich nicht, daß diese Geräte "Klonen" sind... Jedenfalls, ich habe was zum basteln gefunden und werde gleich einen Taktversorger basteln, so daß ich mit meinen Klone noch versuchen kann, den ATMega8 zu retten. Besten Dank! Luca Bertoncello
g457 schrieb: >> Ich habe ein 16MHz-Quarz und habe dann E0 (low) und C9 (high) gesetzt. > ^ > Das steht für 'external clock' > [1]. Aber halb so wild. Einfach(tm) irgendwie(tm)[2, 3] einen Takt an > XTAL1 hängen und dann die Fuses richtig(rm) programmieren. Also, ich habe einen Oszillator mit einem anderen ATMega8 gemacht. Er wechselt ständig den Wert von PORTD2 zwischen 0 und 1 mit einer Pause vom 1uS dazwischen. Also, ungefäht 1MHz. Dieses PIN habe ich dann an den XTAL1 (PIN9) des anderen ATMega8 angehängt. Dazu GND zusammen verbunden. Ich habe dann meinem STK200-kompatibel ISP an den "kaputten" ATMega8 angeschloßen und Strom den beiden ATMega8 (Oszillator + kaputten) gegeben. Dann habe ich probiert die Fuse zu lesen: root@robot:/tmp# avrdude -cstk200 -pm8 -Ulfuse:r:/tmp/fuse0.hex:h -Uhfuse:r:/tmp/fuse1.hex:h avrdude: AVR device not responding avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude done. Thank you. Also, immer noch kein Erfolg. Was kann ich jetzt machen? Ich bin 100% sicher, daß der Oszillator mir tatsächlich ein Takt schickt, denn ein LED ist an PORTD2 angeschloßen, und wenn ich die Werte mit einer Pause von 500mS schalte, wird der LED auch blinken. Es gibt, meiner Meinung nach, kein Grund aus dem eine Sache mit einer Pause von 500mS läuft und mit einer Pause von 1uS NICHT läuft. Die Verbindungen sollten in Ordnung sein, mindestens mit dem Tester konnte ich sehen, daß XTAL1 (PIN9) vom kaputten ATMega8 mit dem PORTD2 des anderen verbunden ist, und die GND zusammen sind. Was kann ich jetzt machen? Ich will sehr ungern einen neuen ATMega8 kaufen, weil am Ende ich mein Problem nicht gelöst habe, und wenn noch was passiert, geht das ganze von Vorne... Danke Luca Bertoncello
ICH HABE ES DOCH GESCHAFFT!!!!! Ich habe probiert, aus reiner Hoffnungslosigkeit, den Oszillator so anzupassen, daß KEINE Pause zwischen den wechseln gibt, also, das Ding schickt die höchstmögliche Frequenz, was ein ATMega8 erzeugen kann. Nun habe ich probiert den kaputten ATMega8 anzuschlißen und die FUSE zu lesen. Hat geklappt! Nun habe ich sie als E4-C9 (ext Crystal-High freq) eingerichtet. Klappt auch! Endlich Testprogramm hochgeladen: GEHT!!!!!! Ich danke euch ganz herzlich! Luca Bertoncello
Dann war die Programmierfrequenz vorher zu hoch. Darf maximal 1/4 der Taktfrequenz des Targets sein.
A. K. schrieb: > Dann war die Programmierfrequenz vorher zu hoch. Darf maximal 1/4 der > Taktfrequenz des Targets sein. Eigentlich nicht... Ohne Pause ist die Frequenz NOCH HÖHER... Grüße Luca Bertoncello
Andersrum. Die Taktfrequenz des Targets muss mindestens das Vierfache der Frequenz am SCK der Programmierschnittstelle sein. Die SCK-Frequenz kann man ggf. durch einen Parameter des Programmierprogramm einstellen/drosseln. In der letzten Version hast du die Frequenz des Targets erhöht, die Frequenz des Programmers (SCK) blieb gleich.
A. K. schrieb: > Andersrum. Die Taktfrequenz des Targets muss mindestens das Vierfache > der Frequenz am SCK der Programmierschnittstelle sein. Die SCK-Frequenz > kann man ggf. durch einen Parameter des Programmierprogramm > einstellen/drosseln. > > In der letzten Version hast du die Frequenz des Targets erhöht, die > Frequenz des Programmers (SCK) blieb gleich. Ach! Verstanden! Gut, jedenfalls, bei Problem PROBLEM GELÖST! Ich freue mich wirklich darüber! Euch besten Dank und einen schönen Sonntag! Luca Bertoncello
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.