Hallo Leute, Ich arbeitete den ganzen Tag an meinem Chip, um die Fuse Einstellungen und die Firmware zu installieren, bis er kaputt ging. Also ich habe dieses spezielle Board mit einem AT90USB1286 Chip und 6 Pin ISP, das ich mit einem USBtinyISP verbinde um die Fuse Einstellungen zu ändern und die Firmware zu flashen. Ich habe nur diese 2 Boards, sonst nichts, ich wollte nur die Fuses auf die Standardwerte ändern, nachdem ich erfolgreich damit gearbeitet habe. Also habe ich die Webseite engbedded.com besucht, meinen Chip ausgewählt, mit dem Namen: AT90USB1286. Dann habe die default Werte für den Chip übernommen, welche sind: -U lfuse: w: 0x41: m-U hfuse: w: 0x99: m-U efuse: w: 0xff: m lud diese über meinen USBtinyISP und avrdude an den Chip. Und was ist passiert? Board tot, Chip tot. Nicht erreichbar. Was ist passiert? Da ich neu bin mit nicht viel Erfahrung, schaute ich nach mehr Informationen. Und dann vor einigen Jahren, sagte ein erfahrener Techniker hier einmal, dass diese engbeddded.com Standardwerte völlig nutzlos sind, weil es die Werte setzt: CKSEL = 0000 und SUT = 00 Also habe ich mich jetzt mit diesen Default Werten selbst aus meinem Chip ausgesperrt? Ich kann nicht glauben, dass das wahr ist, ich bin dermaßen sauer. Aber ich glaub nicht, dass der Chip völlig tot ist, er atmet noch sehr langsam, läuft also mit einer sehr niedrigen Frequenz. Also habe ich versucht die SCK Werte meines USBtinyISP zu ändern: avrdude-c-p usbtiny AT90USB1286-P Port_ # 0004.Hub_ # 0001-TUF Jetzt bin ich in den Einstellungen des USBtinyISP, um: SCK 1000 einzugeben und dann quit Mit SCK 1000, ändere ich die Frequenz, mit die der USBtinyISP arbeitet, aber nichts, ich kann nicht auf den Chip zugreifen. Ok, was als nächstes? Ich versuchte auch, die Fuse Einstellungen laden, indem ich: -B250 Am Ende jeder Fuse Setting gesetzt habe, um die Bitrate zu ändern. Aber auch das hat nicht geklappt. Also weiß jemand von euch, wie ich mit meinem USBtinyISP und meinem speziellen Board nun an den Chip komme? Vielleicht mit ändern der SCK Werte oder der -B Werte? Freue mich über jede hilfreiche Antwort!
Und was lernst du jetzt aus der ganzen Geschichte: RTFM!!!!! Nicht umsonst geben die Hersteller Datenblätter raus. Wenn man diese liest, so passieren solche Sachen nicht... (Dort kann man übrigens auch nachlesen, wie man den Chip "zurückholt")
Wer AVR verwendet ist selbst schuld. Unglaublich, dass Atmel es in 25 Jahren nicht geschafft hat diesen Bug zu entfernen. Rennitenz ist das ...
Danke Dennis, aber hast du schonmal nen klitzekleinen Blick auf das Datenblatt geworfen? http://www.atmel.com/Images/doc7593.pdf RTFM ist NUR 456 Seiten lang!!!!!!!!! Dabei wollte ich NUR eben mal die Fuse Settings abändern und nicht Atmel-Chip-Logik studieren! Und nichtmal in diesen bescheuerten 456 Seiten stehen die Fuse Settings im avrdude Stil!! Unglaublich! Deka, da gebe ich dir völlig Recht!!! Ich dachte nur wie bescheuert muss diese Logik sein, sich selbst aus dem Chip auszuschließen?? Ohne eine kleine Sicherung!! Das ist schlimmer als Rennitenz!! Ich hab hier kein Equipment, keine Quarze oder Oszillatoren, nichts!! Und 0 Ahnung wie sowas funktioniert, geschweige denn aufgebaut wird!! Weil ich nur mal die Fuse settings ändern musste!!
> -U lfuse:w:0x41:m Laut Datenplatt (das Du unbedingt mal lesen solltest!) setzt das CKSEL3:0 auf einen 'reservierten' Wert. Da er aber augenscheinlich noch 'läuft' (wenngleich langsam) kannst Du ihn problemarm zurückholen, einfach(tm) den ISP-Takt runterdrehen (wie steht im rtfm). Falls Dein Nachbau-ISP-Adapter das nicht beherrscht gibts immernoch den Weg die Fuses 'manuell' zu setzen (auf dem Brotbrett echt händisch oder per hardcoded-Resetter, beides zu finden im stfw). > RTFM ist NUR 456 Seiten lang!!!!!!!!! Jepp. Und da passen alle relevaten Informationen rein. > Und nichtmal in diesen bescheuerten 456 Seiten stehen die Fuse Settings > im avrdude Stil!! Unglaublich! Doch, einfach mal lesen (nicht nur so tun). Schließlich orientiert sich avrdude an den Datenplättern (und macht nicht komische Invertierspielchen wie so manche anderen Tools). HTH und nix für ungut
Vladimir Rostock schrieb: > Danke Dennis, > > aber hast du schonmal nen klitzekleinen Blick auf das Datenblatt > geworfen? Ja, habe ich :-) Vielleicht auch etwas mehr als einen... Vladimir Rostock schrieb: > RTFM ist NUR 456 Seiten lang!!!!!!!!! Ja und?? Vladimir Rostock schrieb: > Dabei wollte ich NUR eben mal die > Fuse Settings abändern und nicht Atmel-Chip-Logik studieren! Na ja, dafür brauchst du das ganze Dokument nicht zu lesen, die gesuchte Information ist auf wenigen Seiten gut beschreiben... Mal eine Gegenfrage: bist du echt so ....... intelligent, dass du grundsätzlich jedes Dokument von Anfang bis Ende durchliest??? Vladimir Rostock schrieb: > Und > nichtmal in diesen bescheuerten 456 Seiten stehen die Fuse Settings im > avrdude Stil!! Was hat Atmel jetzt nochmal genau mit avrdude zu tun??? Deine Aussage ist in etwa wie: wieso passt mein BMW Ansaugstutzen nicht auf mein Audi?? Was für eine Frechheit!!! Tue dir und deiner Umwelt einen Gefallen: lass diese ganze Mikrocontrollergeschichte einfach.... Wenn du schon bei einem Fuse cholerisch wirst, dann male ich mir schon im Geiste aus, wie du bei komplexeren Problemen reagieren wirst.
Vladimir Rostock schrieb: > Deka, da gebe ich dir völlig Recht!!! Ich dachte nur wie bescheuert muss > diese Logik sein, sich selbst aus dem Chip auszuschließen?? Ohne eine > kleine Sicherung!! Das ist schlimmer als Rennitenz!! Komisch. Das passiert immer nur bei Basteltools von Drittanbietern, wie z.B. Ponyprog. Wer billig haben will, bekommt billg. Ich hatte noch nie Probleme, dass ich mich aus dem Chip ausgesperrt habe. Dafür konnte ich jemanden schon helfen, dem das aufgrund eine SParprogrammers passiert ist.
STK500-Besitzer schrieb: > Dafür konnte ich jemanden schon helfen, dem das aufgrund eine > SParprogrammers passiert ist. Fehlende Investitionsbereitschaft wird leider nur manchmal durch größere geistige Fähigkeiten kompensiert.
wasser schrieb: > Fehlende Investitionsbereitschaft wird leider nur manchmal durch > größere geistige Fähigkeiten kompensiert. Hiermit beantrage ich obenstehenden Text als "Spruch des Tages" zu kennzeichen :-)
Dennis schrieb: > Hiermit beantrage ich obenstehenden Text als "Spruch des Tages" zu > kennzeichen :-) dito!
Das hat mit Basteltools einfach nichts zu tun. Man kann auch im Atmel Studio den Chip verfusen. Passiert hier doch andauernd. Manche Tools zeigen halt nur die Bits direkt an, ohne Klartext des ganzen (wie z.B. Ponyprog), wieder andere erwarten lediglich die Zahlenwerte der Fuse-Bytes, wie avrdude. Wer damit nicht umgehen kann, nimmt ein anderes Tool, für Batchaufgaben ist avrdude optimal, für händisch Fuses setzen eher nicht. Beim billig ISP "mySmartUSB light" ist ebenfalls ein recht gutes Tool dabei um die Fuses zu setzen, auch alles Klartext, wie im Atmel Studio. Die Unterschiedung nach Billigtool und grafischen Original Tool vom Hersteller ist hier wenig sinnvoll. In diesem Fall hat sich der TE einfach nicht die Mühe gemacht, a.) die Fuses korrekt nachzuschauen oder b.) ein Tool zu verwenden welches dies für ihn übernimmt. gruß cyblord
http://www.reichelt.de/USB-CAN-BUS-Controller/AT-90USB1286-QFN/3//index.html?ACTION=3&GROUPID=2946&ARTICLE=112442&SHOW=1&START=0&OFFSET=16& Einen neuen drauflöten? http://www.reichelt.de/Oszillatoren/OSZI-7-372800/3//index.html?ACTION=3&GROUPID=3174&ARTICLE=13722&SHOW=1&START=0&OFFSET=16& oder retten? http://www.reichelt.de/Laborkarten/STECKBOARD-2K4V/3//index.html?ACTION=3&GROUPID=3374&ARTICLE=67680&SHOW=1&START=0&OFFSET=16& http://www.reichelt.de/Laborkarten/STECKBOARD-JSS/3//index.html?ACTION=3&GROUPID=3374&ARTICLE=127441&SHOW=1&START=0&OFFSET=16& wer ist engbedded.com? Hast Du kein AVR-Studio? Ich verstehs nicht... Hauptsache Billige clones verwenden... Du verwendest Den 90USB1286 sicher nicht privat, oder? Wenn nicht, rede mal mit deinem Chef. ar.
mein post überschnitt sich mit dem von cyblord. Dem ist nichts inzuzufügen.
g457 schrieb: >> -U lfuse:w:0x41:m > > Laut Datenplatt (das Du unbedingt mal lesen solltest!) setzt das > CKSEL3:0 auf einen 'reservierten' Wert. Ich glaube du hast hier noch "Note: 1. For all fuses 1 means unprogrammed while 0 means programmed." übersehen (Anfängerfehler ;). Sprich der Wert wird auf 1110 gesetzt (=default). Damit sollte der Controller eigentlich laufen. Was mich an AVRdude etwas stört ist, dass die Liste der unterstützten AVRs inzwischen etwas veraltet ist (praktisch keine -A Typen).
Mike schrieb: > Was mich an AVRdude etwas stört ist, dass die Liste der unterstützten > AVRs inzwischen etwas veraltet ist (praktisch keine -A Typen). Was nichts ausmacht, da die A-Typen sogar dieselbe Signatur haben wie die Nicht-A-Typen und somit ganz normal funktionieren und mit dem Profil für die Nicht-A-Typen programmiert werden können. gruß cyblord
> Ich glaube du hast hier noch "Note: 1. For all fuses 1 means > unprogrammed > while 0 means programmed." übersehen (Anfängerfehler ;). Den Anfängerfehler gebe ich gerne Zurück - avrdude nutzt (natürlich!) das was im Datenplatt steht - 0 ist 0 und 1 ist 1 (im Gegensatz zu machen anderen Programmierschnittstellen, die 0 für 1 halten und 1 für 0.. ∗brrrrr∗). Und dann evaluiert 0x41 für die lfuse (u.a.) zu CHSEK3:0 == 0001 und das ist laut Tabelle 7-1 "Device clocking options select" 'reserved'. Nix für ungut.
@ Dennis & wasser wie behindert seid ihr eigentlich? Leute fertig zu machen die von der Materie gerade keine Ahnung haben und grad eingestiegen sind, fühlt ihr euch jetzt toll oder was? Eure beschissenen Bevormundungen und Kommentare braucht hier niemand. Wie gesagt ich kenne mich mit all den Chipsachen nicht aus, der Chip ist nur dafür da um etwas in Bewegung zu halten mehr nicht, und wurde auch nicht von mir ausgesucht. Und alle weitere Kommentare sind hier von euch nicht mehr erwünscht. @ alex Danke, leider nichts zu machen, da diese nicht von mir gekauft bzw. eingesetzt wurden. Kann ich nun auch ohne weitere Materialien, nur anhand des USBtinyISP und dem defekten Chip arbeiten? @ cyblord Danke für deinen konstruktiven Beitrag, ich hab auch gelesen, dass ponyprog am anfang zu nichts taugt. Das wäre dann doch eher für Leute die sich mit den Fuses besser auskennen. Ich habe folgendes Gerät (USBtinyISP): http://thumbs1.ebaystatic.com/d/l225/m/mDIYNQ_ywzVzHHGfjy0Gn5Q.jpg Und meinen bereits im Board verbauten Chip mit den falschen Fuse settings: -U lfuse:w:0x41:m -U hfuse:w:0x99:m -U efuse:w:0xff:m was bedeutet im einzelnen: CKSEL=0000 SUT =0 Ist es jetzt möglich mit dem USBtinyISP ohne weitere Materialien, nur anhand des ISP 6 pin den kaputten Chip zu reparieren (mit avrdude, oder auch anderen Softwares)?
Hallo Michael, das war keine Frage, das war eine Klarstellung und ist mir bereits bewusst.
cyblord ---- schrieb: > In diesem Fall hat sich der TE einfach nicht die Mühe gemacht, a.) die > Fuses korrekt nachzuschauen oder b.) ein Tool zu verwenden welches dies > für ihn übernimmt. > > gruß cyblord Doch, dem ist noch etwas hinzuzufügen. Wenn man sich aus Unwissenheit die Controller verfused, dann sollte das Ansporn sein die wieder hinzukriegen. Hatte ich im Anfang auch gemacht. Dann hab ich mir ein HV Shield für den Arduino gebaut und die Controller liefen wieder. Danach hab ich mir einen Drachen zugelegt und da ist der HV schon drauf. Hatte jetzt ein ähnliches Problem mit dem Beaglebone black. Alles gemacht wie in der Anleitung, aber nach dem Update ging nichts mehr. Erst nach weiterem suchen im Internet fand ich einen Hinweis, dass die Spannung, gerade vom Laptop, über USB nicht reicht um den neu zu flashen. Also den Hub mit Strom dran, neu geflasht und alles lief. Entweder man will das lernen, da gehören solche Rückschläge einfach dazu, oder man will das alles fertig haben. Dann muss man sich fertige Elektronik kaufen. Ärgerlich war das mit dem "Hundeknochen" auch, aber dafür macht man nicht so einen Aufstand.
> -U lfuse:w:0x41:m -U hfuse:w:0x99:m -U efuse:w:0xff:m > was bedeutet im einzelnen: > CKSEL=0000 SUT =0 Das steht im Datenplatt (wirklich, tu Dir selbst einen Gefallen und lies die relevanten Abschnitte - hier gehts los in Kabpitel 30.2 "Fuse bits" das dann (u.a.) weiter verweist auf (u.a. und im Wesentlichen) das Kapitel 7 "System clock and clock options"). Und CKSEL3:0 == 0000 hast Du gar nicht gesetzt, sonder wie schon geschrubt 0001, das ist 'reserved' (siehe oben und lies das Datenplatt). Wenn ich Dich richtig verstanden habe läuft der µC aber noch, allerdings sehr langsam. D.h. Du musst im Wesentlichen die ISP-Geschwindigkeit gedrosselt bekommen, und zwar auf < (echt kleiner!) clk_CPU /4. Dazu gibt es hier im Wesentlichen zwei Möglichkeiten: avrdude drosseln lassen mit '-B' oder '-i' (Details im rtfm; abhängig vom Programmer, manche Nachbauten unterstützen nicht alle Geschwindigkeiten oder lügen einem das Blaue vom Himmel) oder gleich vom Brotbrett aus das Programmieren (der Fuses) selbst übernehmen. Ersters ist die einfachere(tm) Variante, muss aber (abhängig vom Programmieradapter, insbesondere Nachbauten sind da anfällig) nicht funktionieren. Zweitere Variante funktioniert immer(tm), ist aber aufwendiger. Eine Vereinfachung der zweiten Variante (die Du hier aber kategorisch ausgeschlossen hast) sind diverse 'AVR-Resetter'-Projekte, auch die gibts wie Sand am Meer, benötigen aber einen weiteren µC. Weitere mögliche Alternativen gäbs auch noch, aber auch die hast Du bereits ausgeschlossen (z.B. jtag). HTH
Danke g457 sehr hilfreiche Antwort, ich denke der Jtag ist hier am besten angewendet. Um genau zu sein hat der Chip grad: Ext. Clock; Start-up time: 6 CK + 0ms So wies ausschaut ist der USBtinyISP nicht imstande das hinzubekommen. Welchen Wert muss ich denn für -B benutzen? -B 6 ? Und woher weiß ich wieviel -B mein USBtinyISP fähig ist zu produzieren? Danke
Vladimir Rostock schrieb: > @ Dennis & wasser > > wie behindert seid ihr eigentlich? Leute fertig zu machen die von der > Materie gerade keine Ahnung haben und grad eingestiegen sind, fühlt ihr > euch jetzt toll oder was? Eure beschissenen Bevormundungen und > Kommentare braucht hier niemand. > > Und alle weitere Kommentare sind hier von euch nicht mehr erwünscht. Oho - ist das Glashaus bissi zu warm geworden so daß Du doch noch mit Steinen werfen mußt um einen kühlen Kopf zu bekommen? Oder eine übliche Entgleisung? Grüße MiWi
schwiearig ohne zus. Equipment... Am Pin 13 deiner vga_buchse kommt die Zeilenfrequenz mit 95kHz raus ( wenn da was drann hängt ) könntest Du probieren. Von dort ein Draht nach XTAL1 deines AVR. Bekloppte Idee, ich weiss. Zumal die Sync-Impulse auch bei jedem Bildwechsel unterbrochen sind. Aber sonst fiele mir nur noch die Soundkarte ein. Hat der USBTinyISP keinen einzigen PIN, wo es im Mhz Bereich "wackelt"? Was sit mit Port D2 deines USB Adapters? kommt da nicht raus?
@Vladimir Ich war eben (das erste Mal überhaupt) auf der Seite von Engbedded.com Die Fuse-einstellungen dort sind NICHT die Werkswerte! Da steht unter "Current Settings" d.h. "augenblickliche Einstellungen" Zitat: These fields show the actual hexadecimal representation of the fuse settings from above. (Die Felder zeigen die aktuelle Fuse-Bit Einstellung von WEITER OBEN auf der Seite in hexadezimaler Form.) Du mußt oben auf der Seite selber gucken, ob die Fuse-Bits so stehen, wie Du es haben willst oder sie eben selbst verändern. Dann siehst Du unten, wie sich die Werte ändern. MfG Paul
Vladimir Rostock schrieb: > Ext. Clock; Start-up time: 6 CK + 0ms Dann hilft ein externer Taktgenerator mit einer Frequenz um die 1 MHz. Dies kann ein fertiges Bauteil (Quarzoszillator) sein, ein MC mit einem Miniprogramm, ein NE555, ein CD4093 mit einem Widerstand und einem Kondensator (plus Abblock-Kondensator), der auf Versorgungsspannung des AVRs begrenzte Ausgang eines Funktionsgenerators oder was auch immer. > > So wies ausschaut ist der USBtinyISP nicht imstande das hinzubekommen. Den kenne ich nicht, ich verwende original-Equipment von Atmel. Aber warum sollte dieser ISP-Programmer das auch können? Wer seine AVRs auf externen Takt fust, soll gefälligst auch einen externen Takt anlegen. Wer keine Möglichkeit findet, einen externen Takt zu erzeugen, sollte mal darüber nachdenken, ob er der richtige Mann für diese Aufgabe ist. ...
> Um genau zu sein hat der Chip grad: > > Ext. Clock; Start-up time: 6 CK + 0ms Nein, hat er nicht. Weil dann hättest Du CKSEL3:0 == 0000 setzte müssen (i.e. 0x*0), hast Du aber nicht, Du hast laut obigen Angaben 0001 (von 0x41) geschrieben. Und mit externem Takt würde er entweder gar nicht laufen (kein externer Takt vorhanden) oder fast so laufen wie vor Deinem Missgeschick (anderes Startverhalten oder (kein) Vorteiler 8). Lies endlich das Datenplatt. > So wies ausschaut ist der USBtinyISP nicht imstande das hinzubekommen. Das wäre keiner der (Standard-)ISP-Programmer. Tut aber hier nix zur Sache, weil nicht relevant. Da der µC noch läuft spiel wie schon geschrieben mit -B und/oder mit -i rum (Nachbau-Brenner, da weiss man nie so genau was man bekommt - vermutlich '-B', Größenordnung 1k) um den ISP-Takt zu drosseln. Wenn Du Glück hast geht es damit (also Deinem Nachbau-Adapter). Wenn nicht dann such Dir eine der Alternativen aus - händisches Brennen vom Brotbrett aus, JTAG (ausgeschlossen weil weitere Hardware benötigt, kann aufwendiger werden falls die JTAG-Pins anderweitig genutzt werden), Austausch der µC (ausgeschlossen weil weitere Hardware benötigt), "$AVR-Resetter" (ausgeschlossen weil weitere Hardware benötigt), ..
g457 schrieb: >> Ich glaube du hast hier noch "Note: 1. For all fuses 1 means >> unprogrammed >> while 0 means programmed." übersehen (Anfängerfehler ;). > > Den Anfängerfehler gebe ich gerne Zurück - avrdude nutzt (natürlich!) > das was im Datenplatt steht - 0 ist 0 und 1 ist 1 (im Gegensatz zu > machen anderen Programmierschnittstellen, die 0 für 1 halten und 1 für > 0.. ∗brrrrr∗). Und dann evaluiert 0x41 für die lfuse (u.a.) zu CHSEK3:0 > == 0001 und das ist laut Tabelle 7-1 "Device clocking options select" > 'reserved'. > > Nix für ungut. Hmm, so wie es aussieht hast du Recht. Asche auf mein Haupt. Habe mich von dem Werten aus dem Datenblatt (CKSEL = "1110") und aus dem Devicefile (= "0001") aufs Glatteis führen lassen. Bei einem anderen Fuse-Calc sieht man besser das 0x41 ein ungültiger Wert ist: http://www.frank-zhao.com/fusecalc/fusecalc.php?chip=at90usb1286 Die 0x41 kommt allerdings von Atmel. Das scheint bei allen USB-AVRs in den Devicefiles als Default zu stehen. Die richtige Einstellung wäre wohl eher... 0x42 (!).
K. D. schrieb: > Wer AVR verwendet ist selbst schuld. Unglaublich, dass Atmel es in 25 > Jahren nicht geschafft hat diesen Bug zu entfernen. Rennitenz ist das > ... Jepp, da hast Du wohl Recht, gibts woanders aber auch:" ich habe nur eine Minute das Lenkrad losgelassen und die Karre ist gegen einen Baum geknallt! Ich halte es für unglaublich das es die Autoindustrie nach 100 Jahren immer noch nicht geschafft hat, diesen Bug zu beseitigen.." So long, Holm
Vladimir Rostock schrieb: > RTFM ist NUR 456 Seiten lang!!!!!!!!! Und? Statt idiotisch Ausrufezeichen dahinter zu setzen solltest du einfach mit dem Lesen beginnen. Wenn dir das schon zu viel ist, anderes Hobby suchen.
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.