Hallo liebe, schlaue Gemeinde! ich verzweifel schon seit stunden! Status: AVR Studio 4 WinAVR STK500 ISP Programmer atmega32 atmel Evaluationboar von pollin Problem ist: ich habe den Atmega32 bis vorhin noch flashen können. dann plötzlich nicht mehr!! ich meine, der Fehler trat auf nachdem ich einmal unter "Fuses" - SUT_CKSEL nen anderen wert für die Ozsilation gewählt hatte. Leider weiß ich nicht welcher zuvor gewählt war. Ich tippe jedoch auf int. 1 MHz... das ist ja standart. habe diesen und weitere Werte probiert. immer: "Entering programming mode.. FAILED!" kann also die oszillation garnicht (mehr) verstellen... bei den ISP-Frequenzen habe ich alle versucht. habe auch einen anderen atmega32 versucht zuflashen... gleiches problem. deinstallieren und installieren von avrstudio, winavr und dem ispprogrammer-treiber habe den fehler nicht behoben. BIIITTEE helft mir. In allen gefunden FOrenbeiträgen war der einzige Vorschlag - und auch meistens die lösung, die ISP-Frequenz zu reduzieren... das habe ich ja a) versucht und b) funktionierte es ja, bis ich irgendwas anscheinend verstellt habe! vllt ncoh als logischen Hinweis für eure überlegungen: wenn ich eine fuse gesetzt hätte, welche das eintreten in den programmingmode verhindert, dann hätte es bei dem zweiten Amtega32 ja wenigsten funktionieren müssen?! ich bin ratlos und hoffe jemand anderes von euch nicht :) würd mich rieseig freuen, wenn mir geholfen werden kann!
klingt klassisch nach Beitrag "SUT_CKSEL, wa nun?" oder hv programming. lasse mich aber wie immer gerne eines besseren belehren. mfg
Danke dir! da hab ich ja schon mal nen anhaltspunkt aber richtig weiter weiß ich noch immer nicht. den externen takt an xta1... a) xta1 ist am uC oder am programmer? b) wo hol ich mir den externen takt her? danke danke danke :) edit: auf dem evalutionsboard ist ein 8 Mhz quartz! also am atmega32 anliegend...
a) Wie oft hast du ins Datenblatt geschaut, um deine Frage selber zu beantworten? b) Am besten von nem anderen µC... Ich hatte mal das Problem, daß der USBmkII sich den (falsch eingestellten) Takt aus irgendeinem Grund gemerkt hatte... mit avrdude konnte ich dann über den Terminal-Modus "sck 10" senden, was ihn wieder "vernünftig" gemacht hat. Ich hab schon gedacht, ich dreh durch, jeder (frisch gekaufte) µC war nicht ansprechbar, nicht mal die Signatur auszulesen... Danach ging alles einwandfrei. Keine Ahnung, ob das bei anderen Geräten auch auftritt...
hey.. ja sry. für die blöde frage! das xtal am uC ist, wusste ich, aber dachte vllt wäre was am programmmer - blöd ok! also das fehlerbild welches du beschreibst, ist bei mir ja ähnlich! leider kann mit terminalmodus nciht viel anfangen! also von anderen board, könnt ich ja leider auch nur den 8MHz takt ( vom Quarts) abgreifen?! ich will auch mein STK500 (ich glaub ichkann auch AVRISP starten) wieder vernünftig machen! wie wo kann ich im Terminalmodus was einstellen? sck10?? das beudeutet vermutlich nciht 10 MHz xD sondern im Datenblatt würde ich informiert werden?!? also ich hab zwar nen quartz (8MHz) aufm board, jedoch war der uC bisher in einem eigenen Board ohne Quartz ( im Prinzip eine Grundschaltung), da hatte ich Ihn standartmäßig auf 1 Mhz. vllt schreib ich jetzt auch zuviel... kannst du mir erläutern wie ich meinem STK500 auch per terminal die richtige frequenz angeben kann? danke!
ich stell gerade fest, dass auf dem board für die verschieden möglich aufsteckbaren uCs auch verschiedene Quartze vorhanden sind. der für meinen Atmega ist ein 16 MHz quartz... als kleiner nachtrag... ich kann leider ncoh immer nicht flashen :/
hab auf das board jetzt mal nen atmega 48 gesteckt (es ist zwar nur ein amtega8 angegben aber im datenblatt sehen die beide pinkompatibel aus). jedenfalls bekomm ich da sofort wieder die signatur ausgelesen. also wird es wohl an irgendwelchen (frequenz) fusebits liegen?! wie bekomme ich die bei den atmega32 wieder auf default? ich raste hier bald aus, weil ichnciht weiter komme :( noch mals und weiterhin vielen dank!
AVRDUDE bietet einen sogenannten Terminalmodus, das heißt, du kannst einfach in der Kommandozeile (Linux) oder im Dosprompt/Eingabeaufforderung (Windows)
1 | avrdude -p mega32 -t |
eingeben (das -t bedeutet "Geh in den Terminal-Modus"), dann hast du ein im Programm laufendes Terminal, wo du Befehle eingeben kannst. Statt mittels
1 | avrdude -p mega32 -t -Ueeprom:r:eeprom.dat:i |
das EEPROM aus deinem ATMega32 auszulesen und in der Datei eeprom.dat zu speichern, kannst du obigen Befehl eingeben (dann wird als Start der Kommandozeile "avrdude" angezeigt) und dann
1 | avrdude> dump eeprom 0 512 |
eingeben, um dir die ersten 512 Bytes deines EEPROM direkt anzeigen zu lassen. Hier (http://www.nongnu.org/avrdude/user-manual/avrdude_9.html#Terminal-Mode-Examples) sind noch ein paaar mehr Beispiele. Wie gesagt, das ist für den sehr speziellen Fall, daß du dasselbe Problem hast wie ich damals. Der Befehl sck 10 bedeutet einfach nur, daß du die AVRDUDE-Frequenz (und anscheinend des USB-AVRISPmkII) auf 0.1 MHz setzt (die 10 sind die Anzahl an Microsekunden pro Takt). Damit kannst du eigentlich jeden nicht-verfusten AVR wieder ansprechen.
Wenn du einen STK500 hast, steck den Jumper AREF ab und prüfe ob am PIN XT1 ein CLOCK-Signal anliegt. Das hat bei meinen verfuseten Mega32 oft geholfen. Wenn AREF drin steckt steigt die Spannung an TARGET auf etwa 6,2V an und das AVR-Studio zum Beispiel, kann nicht mehr auf die Hardware zugreifen und erzeugt diesen Fehler.
danke ihr beiden... also der vorletzte tipp fällt bei mir ja schon ma weg, da ich kein avrdude habe( ich hoffe ich verstand richtig, das avrdude eine hw ist ;) ) der letzte beitrag hört sich sehr gut an, wenn.... ich habe im avrstudio gsehen, dass stk500 eine board von atmel ist?! ich tippe das ist ein evaluierungsboard, mit integriertem ISP-programmer?! Also ich habe mir damals (keine ahnung wo) einen ISP-programmer geholt der mit stk500 kompatibel ist! das dingen hat keine jumper, sondern ist komplett in neongrünen Kunststoff gegossen. und mein envaluationsboard von pollin hat keine jumper an aref - soweit ich das jetzt spontan aus der ferne entscheiden kann. also ist der tipp für mich auch nciht hilfreich??? ich glaube ich habe den fehler mittlerweile in der SPIEN Fuse ausfindig gemacht, das kätschen ist ohne hacken (ein kleines fragezeichen in der ecke ist zusehen) und setzten kann ich den haken nicht mit dem isp-programmer. KLAR, wenn die SPIEN Fuse nicht gesetzt ist :( wobei: wenn avr den chip nicht auslesen kann, dann kann er ja bestimmt auch nicht die fuses auslesen, oder??? seltsam ist, dass ich auf einen zweiten Atmega32 (zuvor ohne fehler) auch nciht zugreifen konnte, daher dachte ich es liegt nicht am chip, sondern an der programmer hard- oder softwaere. allerdings, kann ich einen atmega48 (auf gleichem board) problemlos auslesen und programmieren!! daher wohl doch der chip?! (Das das programm auf dem atmega48 nicht die led zum leuchten bringt, wird wohl ursachen in meinem code haben, auch wenn die gleichen ports verwendet werden und die avr/io.h das ja eigentlich regeln sollte :( ) morgen müssten von reichelt neue atmega32 kommen. ich hoffe das ich auf die dann zugreifen kann!! sonst muss wohl echt ein parallelprogrammer her?! hab bei conrad ein multi-programmer (auch parallel) für unter 40 € gesehen. damit müsste ich ja die die SPIEN Fuse setzten können?
Solange die µCs neu sind, sollten sie funktionieren. Die kommen alle mit 1MHz intern voreingestellt, wenn du also nix an den Fuses veränderst, sollten sie laufen. Tun sie das nicht, liegt es an deiner Hardware. Die SPIEN-Fuse ist IMMER auf Fragezeichen, solange du sie nicht ausgelesen hast. Sollte die bei einem gekauften AVR nicht gesetzt sein (SPI not enabled), kann dein AVR nicht seriell programmiert werden! Die sind eigentlich immer aktiv. avrdude ist keine Hardware, sondern wie AVR Studio eine Programmiersoftware für die AVRs. Kostenlos und relativ schnell zu lernen, der Code muß vorher (z.B. mit avrasm2 von Atmel oder mit gcc-avr) compiliert werden, dann kann man damit alles machen, was man will -- Code auf den AVR schreiben, von dort auslesen etc etc. Bei mir hat die Re-Aktivierung eben nur mit avrdude geklappt, AVR Studio hat nichts geholfen. Ich kenne das STK500 nicht, aber soweit ich weiß, bietet es eine parallele Programmierschnittstelle (im Sinn von RS232). Das AVRISPmkII hat z.B. eine USB-Schnittstelle, wie man das ans STK500 kriegt, weiß ich aber nicht. Ich vermute, mit dem AREF-Jumper meint Electronicfox, daß du mal schauen sollst, ob bei deinem µC AREF mit etwas anderem verbunden ist. Grundsätzlich hast du nicht viele Möglichkeiten, einen AVR zu verfusen. Entweder er erwartet einen bestimmten Takt vom Quarz -- dann sollte es möglich sein, ihn durch seeeeehr langsame Programmierung wieder richtig zu fusen -- oder er erwartet einen externen Takt, den du mit einem zweiten AVR z.B. via Timer im CTC-Mode erzeugen kannst. Lies dir mal den Artikel hier im Wiki dazu durch. Hast du beachtet, daß eine 1 beim Setzen der Fuses bedeutet, daß die entsprechende Einstellung NICHT ausgewählt wurde? Ansonsten würde ich dir raten, anstelle des Geldbeutels erstmal den Kopf einzusetzen... und auch nicht sofort alles zu deinstallieren, nur weil was nicht geht. In 99% aller Fälle ist der Anwender schuld, nicht die Hard- oder Software. Einfach strukturiert überlegen "Was hab ich gemacht?" und die Fehlerursache schrittweise eingrenzen. Hat bei mir zumindest am Ende zum Erfolg geführt.
mist... hatte schon viel geschrieben und dann wachte mein rechner nicht mehr aus dem standby :-( also noch mal! danke einhirner!!! sehr gut erläutert! auch wenn ich vom 8051 programmieren hre, in der uni zeit verschiedene progs für verschiedene aufgaben kannte, ist beim avrstudio ja alles unter einer oberfläache. so dass ich die einzelnen sachen nicht unterschied. also... aref ist unbelegt allerdings zu ner buchse herausgeführt, so dass ich da nen signal drauf geben könnte. an xtal ist ein 16 MHz quartz. ich meine, dass ich mal in dem programmerpart von avrstudio (avrisp/stk500) den takt verstellt habe auf "ext. oscil. high". seid dem kann ich nicht mehr zugreifen. aber ich konnte diesen nicht mehr zurück stellen, daher denke ich dass die isp-fuse deaktiviert ist. IM C-Code habe ich nie solche einstelllungen getättig! das ist doch auch nicht nötig oder? dieses register oder fuses (?) brauch ich doch auch nicht beschreiben, das mach ich doch per auswahlfenster in programmerfesnter oder??? die isp frequenzen habe ich alle durch! trotzdem kann ich nicht die chips nicht auslesen! also ist die SPIEN fuse doch bestimmt wirklich deaktiviert?! in wieweit hilft mir dann wenn ich auf aref nen takt gebe??
Hi
> also ist die SPIEN fuse doch bestimmt wirklich deaktiviert?!
Nein. Wenn die Fuses nicht/nicht richtig gelesen werden, wird auch die
SPIE-Fuse falsch gelesen. Wie soll denn dann eine richtige Anzeige
zustande kommen?
MfG Spess
ja das ist mir schon klar! aber wenn ich mit keiner isp-frequenz den chip auslesen kann?! dann muss die ursache ja woanders liegen? deshalb SPIEN?! danke an euch alle :)
>den takt verstellt habe auf "ext. oscil. high". >seid dem kann ich nicht mehr zugreifen. aber ich konnte diesen nicht >mehr zurück stellen, daher denke ich dass die isp-fuse deaktiviert ist. Wenn keine ISP Frequenz mehr funktioniert dann hat der uC keinen Takt mehr. So einfach ist das. Wenn die Fuses wirklich auf Ext. Crystal programmiert wurden, dann liegt es nahe das mit dem Quarz oder den Lastkapazitäten was nicht stimmt. Wenn auf Ext. Clock programmiert wurde dann nützt der Quarz nichts. Dann muss man einen Takt auf XTAL1 geben.
aber auf extal ist doch der quartz liegend! du meinst wenn auf clock gestellt ist, müsste nen takt an xtal anstelle des quarzes? nen quarz macht keinen "normalen" takt?? sondern eine schwingung?? :)
>du meinst wenn auf clock gestellt ist, müsste nen takt an xtal anstelle >des quarzes? Ja. Wenn du auf Ext Clock programmiert hast ist der Baustein im Chip der den Quarz zum schwingen bringt abgeschaltet. Dann ist XTAL1 nur ein Eingang und dort muss ein Takt angelegt werden.
Hi >nen quarz macht keinen "normalen" takt?? sondern eine schwingung?? >:) Aber da muss der Controller auch mitspielen. Wenn der Oszillator des Controllers abgeschaltet ist schwingt nichts mehr. MfG Spess
ahhhh ich verstehe -fast ;) also guck ich ob und was an xtal anliegt. oszilloskop zwischen xtal 1 und xtal2 und jeweils gegenüber masse angelegt... keine takt! also hab ich vermutlich nciht die SPIEN Fsue deaktiviert, sondern durch (mal kurz) nen falschen Oszilator die dinger (zunächst) nicht ansprechbar gemacht... hm... also müsste ich jetzt den atmega48 auf welchen ich noch zugreifen kann, auf ext. crystal high programmieren, damit an xtal ein takt raus kommt. den leg ich bei dem atmega32 dann auf xtal1 (oder xtal2???). dann sollte ich den atmega wieder mit isp zugreifen könnne? :-)) hab ich das richtig verstanden? und bitte sagt mir noch an welchem xtal er den takt wünscht ;) klasse klasse jungs (oder auch mädchen)
tja ich wollte jetzt das mal testen, aber da steh ich schon wieder vor einer entscheidung, welche mir gleiches problem verursaachen könnt. ich will jetzt den atmega48 auf den 16 MHz quartz programmieren. jedoch hab ich die wal zwischen: -ext. low freq. crystal -ext. full-swing crystal -ext. osc. crystal woher weiß ich was mein quarz für eins ist? es war schon auf der platine. Frequezen stehen daauch nur bei letzterem hinter allerdingst ist das größte: 8MHz bis... aber darüber werde ich auch im datenblattt schlauer. die frage was aus der obenren dreierliste muss ich wählen, damit ich auf den controller weiterhin zugreifen kann, er also mit dem 16 MHz quartz arbeitet und er mir nen takt auf nen xtal raushaut und ich diese n auf dem atmega32 legen kann? ich würds probieren aber ich mööchte nciht noch einen controller "unschädlich" machen ;) danke euch!
warum ist der "andere" Controller im Sockel?? es kann damit etwas kaput gehen! es soll bzw. DARF NUR ein Controller im Board gesteckt sein.
Peter von Frosta schrieb: > ich meine, der Fehler trat auf nachdem ich einmal unter "Fuses" - > SUT_CKSEL nen anderen wert für die Ozsilation gewählt hatte. UPS!! Naja ich hatte nicht alles gelesen Sorry!
leider trau ich mich noch immer nicht takt für den atmega48 (um ja nen externen takt zubekommen für den atmega32) umzustellen.... kann mir keiner sagen, welcher der 3 optionen die richtig ist? -ext. low freq. crystal -ext. full-swing crystal -ext. osc. crystal 16 Mhz Quartz on board...
Christian Peskov schrieb: > leider trau ich mich noch immer nicht takt für den atmega48 (um ja nen > externen takt zubekommen für den atmega32) umzustellen.... > kann mir keiner sagen, welcher der 3 optionen die richtig ist? > > -ext. low freq. crystal > -ext. full-swing crystal > -ext. osc. crystal > > 16 Mhz Quartz on board... Ich würde auf Nummer sicher gehen. Keines. Der Atmega48 hat einen internen Oszillator mit 1 MHz (eigentlich 8MHZ + 1:8 Prescaler ;) ). Verwende diesen, bringt weniger Probleme mit sich. Im Grunde willst du den mega48 als Takt-Quelle haben. Schalte dafür clk-out ein (damit erscheint der System-Takt auf PB0 (Pin 14). Entferne den Quarz (wenn es möglich ist) und führe dann CLKO über einen Widerstand (sicher ist sicher) an den Xtal-1 des verfusten µCs. Danach sollte es wieder ansprechbar sein. Oder aber, es gibt auch Quarz-Oszillatoren [1]. Wenn du so einen Vierbeiner daheim hast, kannst du den Mega48 durch einen solchen ersetzten (natürlich mit einer Frequenz <= 16MHz). gruß Laszlo [1] http://de.wikipedia.org/wiki/Quarzoszillator#Integrierte_Schaltung
so männers :-)) ich habs gescahft.. zumindest 50%ig! Laszlo danke aber dein rat kam zu spät bzw ich hab mich doch getraut ;) also... ich habe den atmega48 auf den quartz gestellt... das datenblatt + des Threads- Beitrag ""Full Swing Crystal" und "Crystal Oscillator"" haben mir geholfen! danach (wegens martins einspruch) einen der beiden atmega32 in eine kleine grundschaltung gesteckt und an xtal1 den takt vom atmega48 gelegt. zack konnte ich das device auslesen und die Fuse für den takt auf Quartz eingestellt! voila :-)) bei dem anderen atmega32 ging das leider nicht!! Ich glaube diesen hab ich irgendwie geschrottet gehabt. Denn die Frequenz welche ich an xtal anlegte, messte ich (oszilloskop) an vielen atmega32 pins! bspw an GND und an VCC (in superposition mit der betriebspspannung) oder abgeschwächt an einigen portpins. dieser ist also wohl fratze?? holger (gast), klang als wenn du genervt gewesen wärst aber... gute info und selbsterklärend. danke! Danke an alle anderen natürlich auch, cool wie das hier funktioniert!
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.