Hallo, ich habe gestern meine erste (!) Grundschaltung mit einem ATmega8 aufgebaut und bin am Verzweifeln - mir gelingt es nicht, eine Verbindung zum uC herzustellen. Kann mir jemand helfen? Hier ein paar Infos: Board: Grundschaltung mit Reset-Pin über 10K auf VCC, 1uF Elko zw. VCC und GND (ist das der Fehler? Hatte leider keinen 100nF Kerko da), die ISP Anschlüsse an die richtigen Pins, AREF und AVCC auf VCC, usw. Bis auf den Elko sollte alles passen, habe alles x-mal durchgemessen. VCC kommt entweder von externem Netzteil oder vom Programmer (habe beides probiert). Programmer: ISP-Prog (http://www.obd-shop.com/danila/product_details.php?id=356&lang=de), Anschluss über USB (wird auf Com3 eingehängt), Protokoll ist STK500v2. In der (sehr knappen) Beschreibung steht, dass es gegenüber einem STK500 zu leicht abweichenden ISP-Frequenzen kommen kann, und dann gibt es eine Vergleichstabelle. Kann mit diesen Infos irgendwie nichts anfangen... Die Frequenz kann man meistens ja nur aus einer Liste auswählen und nicht selbst eingeben, hmmm. Software: (Vista), habe AVRDUDE, AVR-Studio 4 und Bascom probiert. Fehlerbeschreibung: AVR-Studio z.b. kann machmal eine Verbindung zum ISP-Progger herstellen, aber kommt so gut wie nie in den "Programming-Modus". An dieser Stelle hagelt es immer Fehlermeldungen. 1-2mal hatte ich einen Zufallstreffer, wo ich sogar den Chip löschen konnte, beim Versuch zu Flashen hat er sich dann allerings irgendwann aufgehängt. Ich wollte jetzt die genauen Fehlermeldungen posten, aber jetzt wird gerade der ISP-Proggger gar nicht mehr erkannt (ist jetzt das erste mal). Ich werde nach dem Abschicken neu starten und es dann nochmal versuchen... [Noch eine Frage am Rande: Der ISP-Stecker führt ja auch GND mit, was ich mit GND der Grundschaltung verbunden habe. Das ist schon richtig so, auch wenn ich eine externe Stromversorgung für den uC verwende, nicht?] Was zum Geier könnte da schief laufen? Habe übrigens einen zweiten ATmega8 (auch jungfräulich direkt von Pollin) probiert - ist aber dasselbe. Wäre sehr dankbar für Tipps/Hinweise... Danke, Phillip
Hallo Phillip, Deine Beschaltung sieht soweit man es auf den Foto sehen kann gut aus. Irgend welche Brücken unter der Platine sieht man natürlich nicht. Am besten die Schltung aus einer Batterie mit einem 5V Spannungsregler versorgen. Gibt es keine mitgelieferte Software zu dem Programmer? Axe
@Philip Stell mal die ISP-Geschwindigkeit auf 250kHz und versuch dann die Signatur zu lesen. cu Georg
Hallo Axe, danke für die Antwort... ich habe den uC über ein 5V-Netzteil direkt gespeist, oder aber über die 5V vom USB-Programmer. Nein, eigene Software war keine dabei (nur ein Treiber) ... Der Programmer ist aber laut Doku kompatibel mit AVR Studio, Bascom und AVRDUDE (über das stk500v2 Protokoll). Ich kann es auch gerne nochmal mit einem Spannungsregler und Batterie versuchen. GND des ISP kommen trotzdem an GND der Schaltung, oder? Ich fürchte fast, ich habe irgendwie den Programmer ruiniert, da er jetzt gar nicht mehr vom PC erkannt wird (bekommt aber Strom, LED leuchtet). LG und danke, Phillip PS: Habe noch ein Foto von der Unterseite der Platine drangehängt - ist nicht schön, aber ich denke für's erste Lötprojekt geht's ;-). Außerdem habe ich wie gesagt alles durchgemessen...
@ Georg Ich kann gerade gar nix machen, da der Programmer nicht mehr anspringt :-( (s. oben). Aber ich kann mich erinnern, dass die wenigen male, wo ich anscheinend eine Verbindung hatte, AVRDUDE bemängelt hat, dass er eine andere Signatur erwartet hat...
Der Progger geht wieder (?)... Im Screenshot ist die Fehlermeldung, die ich immer von Avr Studio bekomme (hab jetzt die ISP Frequenz sehr weit runter gesetzt, 57.6kHz). Habe die Frequenz immer eher niedrig gehalten, da der ATmega8 ja wahrscheinlich derzeit mit 1 mHz (intern) läuft, nachdem dies das "erste Mal" ist und ich noch keine Fuse-Bits geschrieben habe... lg
die device signature ist schon mal ungültig. kannst du ein chip erase machen falls irgendwelche lock bits gesetzt sind oder geht selbst das nicht? hmm was mir gerade noch auffällt. sehe ich da 100k am reset des AVR? nimm doch mal 10k (braun-schwarz-orange).
Hallo, ein Programmer, der öfter mal nicht vom Studio erkannt wird mah als Würfel zu nutzen sein, aber sicher nicht, um AVR zu programmieren... Ursache suchen und beheben! Man schickz KEINERLEI Schreib-Kommandos (Erase, Write Flash, Write Fises usw.) zu einem AVR, bei dem nicht 100$ die richtige Signatur IMMER gelesen wird, es sei denn, man mag verfuste kleine Käfer. AVR.Studio, ein beliebeiger Programmer und ein angeschlossener AVR sind keine Würfelbude. Da läuft eine Software, da werden bekannte Kommandos geschickt und ausgeführt. Immer. 100%tig. Jede Abweichung davon ist ein Fehler, den man systematisch klären und beheben sollte. Also erstmal Programmer zuverlässig in Gang bringen, dann die AVR.Schaltung testen, Signatur muß immer zuverlässig gelesen werden, Fuses müssen immer zuverlässig gelesen werden und mit den Erwartungen übereinstimmen (bei neuen AVR eben mit dem Datenblatt). Programmer mal an anderem USB-Port testen, anderes (kürzeres?) USB-Kabel, statt Front-USB einen Anschluß hinten benutzen, an anderem Rechner testen. Der muß als erstes mal sicher erkannt werden. Dann Programmierfrequenz auf weniger als 1/4 des AVR-Takt einstellen, bei neuen AVR also auf ca. 125-200kHz wegen 1MHz Takt. NICHT auf 250kHz stellen, das kann sehr unschöne Effekte erzeugen, wenn der interne Oszillator z.B. mit 990kHz läuft, AVR.Studio gibt da nicht immer eine Fehlermeldung, es geht nur nicht richtig. Gruß aus Berlin Michael
Du verwendest zur Versorgung aber nur eine Quelle ? Im Bild sieht es aus, als ob der Schalter 1 auf on steht. Ansonsten: Com Port auf 115200 Bits/sek, 8, Keine, 1, Hardware. ARef mit VCC zu verbinden ist keine gute Idee, kann je nach Konfiguration die interne Referenz kurzschließen. Kerko wäre deutlich besser als Elko, dient zum Abblocken von Stromspitzen beim Programmieren. Das kann der Elko so nicht.
@MWS und alle Danke für die Hinweise! > Du verwendest zur Versorgung aber nur eine Quelle ? Im Bild sieht es > aus, als ob der Schalter 1 auf on steht. Ja, nur eine. Der Dip-Schalter (nennt man den so?) wurde anscheinend falsch eingesetzt - die Schaltpositionen funktionieren genau anders rum als in der Doku. Ich nehme entweder ein externes 5V Netzteil (rein in die Anschlussklemme) oder die USB-Versorgung vom ISP-Anschluss (vom ISP-Stecker zur Anschlussklemme). > > Ansonsten: > Com Port auf 115200 Bits/sek, 8, Keine, 1, Hardware. Aha, hatte "Hardware" nicht angewählt... > > ARef mit VCC zu verbinden ist keine gute Idee, kann je nach > Konfiguration die interne Referenz kurzschließen. Ich habe mich da an diese Grundschaltung gehalten: http://www.rn-wissen.de/index.php/Bild:Avrtutorial_grundschaltung_mitisp.gif Werde es mal ohne ARef auf VCC versuchen... > Kerko wäre deutlich besser als Elko, dient zum Abblocken von > Stromspitzen beim Programmieren. Das kann der Elko so nicht. Welche Kerko-Werte wären denn zum Glätten sinnvoll? Bin leider noch nicht so gut mit Bauteilen ausgestattet... :-/. Könntet ihr mir da einen Wertebereich (zw. Minimum und Maximum) nennen, den ich einsetzen kann? -------------------------------------------------------------- So, was ich bis jetzt geändert habe: - VCC von extern (Netzteil) - Com-Port auf "Hardware" umgestellt - ISP-Frequenz auf 115.2kHz (die nächst höhere in AVR-Studio ist bereits 460.8kHz) - Reset-Widerstand auf 10K geändert (wie komm ich auf 100k? Danke Ben!) - habe den Elko mal probeweise aus der Schaltung genommen Resultat: Ich kriege immer noch keine Verbindung her (Programmiermodus läßt sich nicht starten). Im Anhang ist das Verbindungs-Dialogfenster von AVR-Studio... Die Log-Meldungen sehen aber schon mal gut aus, nicht? Was mir noch immer keine Ruhe läßt: In der Beschreibung des Programmers stehen wie gesagt "abweichende ISP-Frequenzen" gegenüber eines "normalen" STK500. Kann das Schlamassel daran liegen? Leider kann ich z.B. in AVR-Studio nur fixe Frequenzwerte auswählen, und nicht z.B. 62,5kHz wie in der Doku angegeben... lg, Phillip
Hast Du versucht die Signatur zu lesen ? Man kann auch sehr schnell sehen, ob's klappt, indem man auf die Reiter Fuses geht, kommt da nix ist der Wurm drin. Mal probiert den ATM8 auszulesen ? Ich weis, er ist leer, aber das Lesen erzeugt nicht die hohen Stromspitzen wie das Programmieren der Zellen. Deshalb auch der Kondensator, der diese Stromspitzen abfangen soll. Ein Elko, auch wenn er größer ist, kann dies aufgrund seines inneren Aufbaus nicht leisten, deshalb auch Keramikkondensator. Der muss nicht genau 100nF sein, 220, 470 geht auch. Nix da, wo er rauszulöten wäre ? > Ich habe mich da an diese Grundschaltung gehalten: > http://www.rn-wissen.de/index.php/Bild:Avrtutorial... Die Krampf ist. Keine Ahnung, warum die so einen Unsinn nicht rausnehmen. Der einzige Grund an AREF etwas anzuschließen wäre, wenn man eine externe Referenzspannung braucht. Wenn man aber keine externe Referenz braucht, dann ist das gefährlich und unnötig, denn AREF lässt sich intern auf AVCC schalten, dabei gibt's dann auch keine Problem mit Kurzschlüssen der internen Referenz. Außerdem verbaut man sich durch die Verbindung von AREF/AVCC die Möglichkeit die interne 2.56V Referenz zu verwenden. Das ATM8 Datenblatt empfiehlt, wenn keine externe Spannungsreferenz benötigt wird, den AREF mit einem Kondensator gegen Masse unempfindlicher zu machen. Da steht nix von wegen an AVCC anschließen. Trotzdem, ich denk nicht, daß das der Fehler ist. > abweichende ISP-Frequenzen Hat bei mir auch funktioniert. Du hast aber schon gesehen, daß bei dieser "Grundschaltung" auf RN ein ATM32 abgebildet ist, und kein ATM8 ? Die Pinbelegung der Beiden ist unterschiedlich, beim ATM8 ist MOSI auf PB3, MISO auf PB4, SCK auf PB5 und Reset auf PC6. Überprüf mal das Datenblatt mit Deiner Schaltung.
> Man kann auch sehr schnell sehen, ob's klappt, indem man auf die Reiter > Fuses geht, kommt da nix ist der Wurm drin. Der Wurm ist definitiv drin ;-). Weder Signatur auslesen, noch Fuses auslesen, noch sonst was geht... > Der muss nicht genau 100nF sein, 220, 470 geht auch. Nix da, wo er > rauszulöten wäre ? Doch, ich denke schon. Es ist nur (für einen Anfänger?) so verflixt kompliziert, auf den Wert eines unbekannten Kerkos zu kommen... und Kapazität messen kann mein einfaches Multimeter nicht. Mal sehen, vielleicht find ich einen passenden... >> abweichende ISP-Frequenzen > > Hat bei mir auch funktioniert. Hast du etwa den selben Programmer? Wenn ja dann vermute ich jetzt langsam, dass echt an meiner Schaltung was faul ist. > Du hast aber schon gesehen, daß bei dieser "Grundschaltung" auf RN ein > ATM32 abgebildet ist, und kein ATM8 ? Ja, hab ich gesehen und die unterschiedliche Pinbelegung natürlich beachtet (s. auch mein erstes Bild in diesem Thread) OK, als nächstes gehe ich mal auf die Suche nach einem geeigneten Kerko :-).
> auf den Wert eines unbekannten Kerkos zu kommen Meistens sind's drei Zahlen, die ersten zwei sind der Wert, die dritte Zahl ist Anzahl der Nullen, Angaben in pF, 223 = 22000pF = 22nF > Hast du etwa den selben Programmer? Ja, hab' ich. Deswegen konnte ich Dir auch die Einstellungen schreiben, unter denen es bei mir funktioniert. Auf der Unterseite sieht die Lötung zwischen Kabel und Reset Pin nicht besonders gut aus. Hast Du alle Verbindungen mal mit dem Ohmmeter geprüft ? Also Verbindung komplett von ISP Kabel zu IC Sockel durchgemessen ?
> Meistens sind's drei Zahlen, die ersten zwei sind der Wert, die dritte > Zahl ist Anzahl der Nullen, Angaben in pF, 223 = 22000pF = 22nF Ich hab bei Pollin ca. 1Kg Kerkos gekauft ;-), vielleicht ist da was dabei... > Auf der Unterseite sieht die Lötung zwischen Kabel und Reset Pin nicht > besonders gut aus. Hast Du alle Verbindungen mal mit dem Ohmmeter > geprüft ? Also Verbindung komplett von ISP Kabel zu IC Sockel > durchgemessen ? Ja, hab ich... Allerdings ist der Abstand zw. den Lötpunkten oft sehr gering, da ich z.T. etwas zu viel Lötzinn erwischt habe. Habe z.B. an einer Stelle VCC und GND nebeneinander liegen - Verbindung besteht keine (mit Ohm-Meter gemessen). Kann es sein, dass bei angelegter Spannung durch den kurzen Abstand dennoch "der Funke überspringt"?
> "der Funke überspringt"?
Nein, bei diesen Spannungen springt nix ;-)
So, ich habe jetzt einen 100nF gefunden, allerdings ist das ein Orange-Drop aus meiner Gitarrenelektronik (ein Riesenbrummer!). Ich habs jetzt mit diesem versucht - leider wieder ohne Erfolg :-(((. Jetzt bin ich echt langsam ratlos...
> Jetzt bin ich echt langsam ratlos... Dann weis ich auch nicht weiter. Noch eins vielleicht, hab' gerade in Deiner ersten Post gelesen, daß Du Vista verwendest. Könnte es damit Probleme geben ? Hast Du die Möglichkeit ein aktuelles AVR-Studio auf einem XP zu installieren ?
Ich vermute, dass der Fehler in deinem Programmer liegt, hast nimand der dir den einen programmieren könnte? natürlich über ISP und dein Testboard.
Ich habe jetzt versucht, den Programmer auf dem Netbook meiner Freundin (XP) zu installieren - er wurde dort gar nicht erst erkannt :-(((. Wieder zurück zu meiner Vista-Maschine, und das Sch....-Ding wird jetzt auch dort nicht mehr erkannt. Ich raste noch aus... Die Betriebs-LED leuchtet zwar, aber das wars dann auch. Das ist kein gutes Omen für meinen ersten Mikrokontroller-Versuch :-(.
Sehr eigenartig... Mal im Gerätemanager nachgesehen, ob er dort noch auftaucht ? Evtl. an anderem Com Port.
Nein, ist nicht da :(. Normalerweise hört man ja auch das "Balim-Balim", wenn ein Gerät erkannt wird... Die Betriebs-LED (rot) am Progger leuchtet außerdem durchgehend, normalerweise sollte sie ja "softblinken". Nur zur Info: Das USB-Kabel, das mit dem Progger mitgeliefert wurde, ist fast 1,80m lang (!). Könnte das Probleme verursachen? Danke nochmal für die "Fürsorglichkeit" und die vielen Hinweise...
Das ist schlecht. Hört sich aber doch wie ein Defekt an, würde mich da nicht weiter rumärgern und das Teil umtauschen. Hast Du die Möglichkeit ein STK500 zu kaufen ? Damit fing ich auch an, hat den Vorteil etwas zuverlässig Funktionierendes zu haben. Brauchst aber eine serielle Schnittstelle am Rechner. USB Kabel ist kein Problem, hatte ein 5m Kabel angesteckt und ging auch.
Ich hätte schon gerne eine USB-Lösung, da ich in Zunkuft gerne mit einem Netbook arbeiten würde (dann habe ich Datenblätter, Forum etc. auch gleich in Reichweite ;-)). Was hältst du vom original Atmel AVR ISP MKII (ca. 42 EUR)?
Hi >Was hältst du vom original Atmel AVR ISP MKII (ca. 42 EUR)? Dann lieber gleich einen Dragon. Kann zusätzlichch HV-Programmierung und jetzt auch JTAG für alle AVRs. MfG Spess
Dann gäb's noch die Möglichkeit über USB/Seriell Konverter zu gehen. Da gibt's Vernünftige für 5-6 Eur. Von einem original MKII kannst Du erwarten, dass er funktioniert, eigene Erfahrung hab' ich keine dazu. Wobei auch die Clones üblicherweise nicht schlecht sind, aber bei 42 Eur kann man eigentlich nichts falsch machen. Atmel Dragon ginge auch noch.
Danke für die Tipps. Welche Programmer funktionieren denn mit einem USB/seriell Adaper? Hab gehört dass dass nicht bei alle geht...
Ich denke der STK500 sollte gehen, wobei das eigentlich ein Entwicklungsboard ist, der ISP Programmer auf diesem Board lässt sich aber auch extern nutzen. Mit anderen seriellen Programmern konnte ich keine Erfahrung machen, war auch nicht nötig, da es so wie ich's mir eingerichtet hab' gut funktioniert. Der STK500 hängt an einer seriellen PC Schnittstelle, kann das schon mal mit einem Konverter testen, wenn Dir das wichtig wäre. Als Konverter genießen solche mit FTDI Chipsatz allgemein eine hohe Meinung, da hatte ich letzthin welche für ~7 Eur gekauft und war zufrieden damit. Hatte ich auch für die Anbindung eines µC an den PC genutzt. Hersteller ist Digitus, EAN 4016032265399.
STK500 geht mit USB/RS232-Adapter und kann problemlos externe Hardware programmieren. Versorgung über STK500 ist möglich (max. Strom beachten). AVRISP MKII hat USB. Keine Versorgung der Hardware vorgesehen. AVR Dragon hat ebenfalls USB, bietet mehr möglichkeiten wie der MKII (JTAG, Debugging) hat jedoch kein Gehäuse und ist empfindlicher (ESD). Gut sind alle drei. AVR
avr schrieb: > AVR Dragon hat ebenfalls USB, bietet mehr möglichkeiten > wie der MKII (JTAG, Debugging) hat jedoch kein > Gehäuse und ist empfindlicher (ESD). > > Gut sind alle drei. Mit dem Dragon ist das so eine Sache, funktioniert gut, so lange er funktioniert, besonders, wenn man JTAG mag. Aber plötzlich und irgendwann funktioniert er dann nicht mehr. Wenn man sich in den Foren umsieht, liest man, daß er sehr knapp dimensioniert sei und ihn schon geringe Unregelmäßigkeiten irreversibel schädigen können. Z.B. Notebook mit Batteriebetrieb mochte er nicht, mit Netzanschluß ging es. Und eines Tages war auch damit aus. Mein Dragon ist im Jan 2009 gekauft - vielleicht sind sie jetzt zuverlässiger? Gruß Egon
Egon schrieb: > Mit dem Dragon ist das so eine Sache, funktioniert gut, so lange er > funktioniert Ja, stimmt leider. Ich habe vor einigen Monaten (bin also auch noch ein Frischling) mit dem STK600 angefangen; tolles Board, aber halt einfach bisschen "groß" :-). Dann wollte ich mir ein kleineres, handlicheres Teil zulegen und mir den AVR Dragon geholt. Die einzigsten AVRs, die ich damit programmieren konnte, waren die, die ich in den - extra nachgerüsteten - Sockel stecken hatte. Selbst ein 20cm ISP-Kabel zum Programmieren in der externen Schaltung ging schon nicht mehr. Dann habe ich mir den AVRISPmkII zugelegt und keine Sekunde bereut. Das Teil kostet aktuell übrigens gerade 36 Euro und kann ich - für ISP - wirklich nur empfehlen. @Phillip: Viel Spaß mit dem Thema :-) Macht echt irre Spaß :-)
Bist Du sicher, dass der ATMega überhaupt arbeitet? Hast Du die Möglichkeit, einen Quarzoszillator an XTAL1 anzuschließen (das sind die großen rechteckigen Blechdosen, 1-12 Mhz wäre ideal). Oder alternativ einen Quarz (in AVR Studio auch Crystal geannt) mit 22pF Kerkos verwenden. Bevor die Signatur nicht mehrfach hintereinander gelesen werden kann, bitte keine Schreibversuche machen. Alternativ mal einen anderen ATMega8 testen (nur Lesen!).
Hallo Leute, Ralf hier aus dem Forum war so nett und hat mir einen Progger, den er nicht mehr benötigt, zugeschickt. Es is ein USBasp (fischl.de/usbasp) - und siehe da - mit diesem hat alles auf Anhieb geklappt :-)))). Entweder mein anderer Progger war von vornherein defekt, oder ich hatte in meiner Schaltung (kurzfristig?) einen Kurzen oder so, und habe ihn zerschossen... Auf alle Fälle macht mein ATMega8 jetzt genau was ich will :-), juhuuu. > Hast Du die Möglichkeit, einen Quarzoszillator an XTAL1 anzuschließen > (das sind die großen rechteckigen Blechdosen, 1-12 Mhz wäre ideal). > > Oder alternativ einen Quarz (in AVR Studio auch Crystal geannt) mit 22pF > Kerkos verwenden. Aus Interesse eine Frage dazu: Ab Werk arbeitet ein ATMega ja mit 1Mhz intern... Wenn ich jetzt einen externen Quarz in die Schaltung hänge, würde der uC dann sofort mit dieser Taktquelle arbeiten? > > Bevor die Signatur nicht mehrfach hintereinander gelesen werden kann, > bitte keine Schreibversuche machen. Ach, danke - wusste ich nicht!
Phillip P. schrieb: > Aus Interesse eine Frage dazu: Ab Werk arbeitet ein ATMega ja mit 1Mhz > intern... Wenn ich jetzt einen externen Quarz in die Schaltung hänge, > würde der uC dann sofort mit dieser Taktquelle arbeiten? Hallo Nein dafür musst du die Fuse Bits ändern...aber sei vorsichtig nicht Resetbin abschalten oder auf ext Oszilator umstellen ob wohl keine drauf hängt.Am besten siehst du die Seite mal genauer an http://www.engbedded.com/fusecalc/ gruss HB
> Nein dafür musst du die Fuse Bits ändern...
Eben, das dachte ich auch... Wenn ich keinen "Schreibzugriff" auf den uC
habe, kann ich auch nicht die Fuse Bits ändern - sprich da kann ich
Quarze und Oszillatoren dranhängen, so viel ich will... Nicht?
Ich frage nur, weil Pete (s. oben) das als Vorschlag gebracht hat...
LG
Steht natürlich alles im Datenblatt des Atmega8. Unter anderem hier: Table 2. Device Clocking Options Select(1) Device Clocking Option CKSEL3..0 External Crystal/Ceramic Resonator 1111 - 1010 External Low-frequency Crystal 1001 External RC Oscillator 1000 - 0101 Calibrated Internal RC Oscillator 0100 - 0001 External Clock 0000 Note: 1. For all fuses "1" means unprogrammed while "0" means programmed. Also fuse CKSEL 3..0 für externen Quarz (Crystal) auf z.B. 1111, CKOPT auf 0 oder 1, SUT 1..0 auf z.B. 11. Kondensatoren nicht vergessen (12-22pF). Grüße, Ralf
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.