Hallo, ich beschäftige mich gerade zum ersten Mal seit fast zwei Jahren wieder mit Mikroprozessoren, habe aber Probleme beim Flashen meines ATMega8: Wenn ich auf meiner Experimentierplatine ein 3.684 MHz Quartz benutze klappt das Flashen sowohl mit UISP als auch mit AVRDUDE problemlos. Tausche ich das Quartz jedoch gegen ein 12 MHz Quartz aus, so kann ich weder mit UISP noch mit AVRDUDE zuverlässig Flashen: Beim anschliessenden Verify-Vorgang zeigt UISP beispielsweise an dass fast jede Speicherstelle einen anderen Wert enthält als sie haben sollte. Auch das zu flashende Programm funktioniert überhaupt nicht. Wenn ich das Programm jedoch mit 3.684 MHz flashe und dann das Quartz tausche, so funktioniert Alles, ein einfaches "Blinkende LED"-Programm beispielsweise blinkt nach dem Quartztausch dann einfach ca. 3 mal schneller - das Problem scheint also eindeutig beim Flashvorgang zu liegen... Hat Jemand eine Idee wo das Problem liegen könnte?
vielleicht hast du den avr8l, der läuft nur mit max 8mhz oder hast die fusebit icht verstellt.
Nein, es ist ein ATMega8-16PI der ja soweit ich weiss bis zu 16 MHz laufen soll. Die Fusebits habe ich soweit ich mich erinnere tatsächlich nicht verändert - was genau muss ich da denn einstellen?
Das Datenblatt vom MEGA16 z.B. sagt ab 0.9 MHz was von Kondensatoren hinterm Quarz zwischen 12..22 pF. Vielleicht die Kondensatoren zu hoch/zu niedrig gewählt? Wobei es ja noch die Optionen "CKOPT" und "CKSEL 3..1" gibt. Wobei das Datenblatt von mir auch bloß bis 8 MHz geht. Grüsse
Na, 'CKOPT' unt 'EXT CRYSTAL HIGH FREQUENCY', wobei die Startup-Time von der Anwendung abhängt.
Ach ja, die C's am Quarz gegen Masse bentuze ich 22pF, hat bisher immer Funktioniert.
Das scheint ein Problem des ATMEGA8/16 zu sein. Ich hatte genau den gleichen Effekt, so daß er beim Takt von 16Mhz durch bloßes Lesen komplett blockiert war. Ich benutze Ponyprog V2.06 und einen seriellen Programmer nach S.Hühn. Mit einem ATTINY2313 und 20 Mhz trat der Effekt nicht auf. Der geht tadellos. MfG Paul
Danke schon mal für eure Hilfe! Die Kondensatoren zwischen Quartz und Masse sind 22pF - müsste also schon mal passen. Die Einstellung der Fusebits habe ich eben mal nachgeschaut, sie war folgendermassen: Fuse High Byte: 0xD9 (11011001) Fuse Low Byte: 0x3F (00111111) Was laut Datenblatt bedeuten müsste: CKOPT = 1 (unprogrammiert) CKSEL3 = 1 CKSEL2 = 1 CKSEL1 = 1 (-> Crystal oscillator, frequency range: 3-8 MHz) CKSEL0 = 1 SUT1 = 1 SUT0 = 1 (-> Start-Up-Delay 65ms) 3-8 MHz? - das sah ja schon mal nach des Rätsels Lösung aus, laut Datenblatt sind mehr als 8 MHz offenbar nur mit programmiertem CKOPT möglich. War aber offenbar doch nicht der Fehler, denn ich habe die Fusebits nun mal auf 0xC9 (high byte) bzw. 0x2F (low byte) geschaltet, was für die relevanten Fuses bedeuten müsste: CKOPT = 0 (programmiert) CKSEL3 = 1 CKSEL2 = 1 CKSEL1 = 1 (-> Crystal oscillator, frequency range: >= 1 MHz) CKSEL0 = 1 SUT1 = 1 SUT0 = 0 (-> Start-Up-Delay 4.1 ms) Funktioniert aber trotzdem nicht. Was mich persönlich halt verwundert ist die Tatsache dass der µC bei 12MHz offensichtlich ganz normal mit 12 MHz funktioniert wenn er erst einmal korrekt geflasht ist, nur das ISP Programmieren geht bei 12 MHz offenbar nicht. Ausserdem kann ich auch mit 12 MHz-Quartz die Fusebits korrekt lesen und schreiben. Die Ausgabe von UISP habe ich mal angehängt, falls irgendjemand etwas damit anfangen kann.
@Paul Baumann: Das ist ja interessant, denn ich benutze zufällig ebenfalls genau diesen seriellen Programmer nach S.Hühn... Ob das was damit zu tun hat? Im Schrank habe ich noch einen Parallel-Port-ISP, wäre doch mal interessant ob das Problem mit dem auch auftaucht. Da müsste ich nur leider erst mal nen neuen Stecker anlöten...
Das kann ich nicht testen, weil ich außerdem nur noch den HV-Programmer nach Elm-Chan gebaut habe. (3 Kreuze, sonst hätte ich 2 Mega8 nicht "wiederbeleben" können) Ich habe eben nochmal mit einem 10Mhz-Quarz probiert. Mit dem geht es auch noch, aber dann ist Feierabend. :-( Wenigstens bin ich nicht der Einzige mit diesem Effekt. MfG Paul
tja, habe neulich mega8 bei 20mhz (quartz) getestet, geht wie er soll. per isp /parport + sp12 . ging sogar ohne ckopt fehlerfrei. mit ckopt auch.
@ Paul Baumann Ich hab das Problem dass ich C6 als Ausgang gewählt habe, jetzt habe ich versucht den HV-Programmer von Elm-Chan mit Eagle 2-Seitig hin zu bekommen ... bin mir aber unsicher mit den Transistoren. Hast du die Schaltung auch in Eagle aufgebaut? Wenn ja, kannst du mir dein Layout schicken ? Wenn nein, welche Widerstände(für die Transistoren) und welche Transistoren hast du genommen ?
@atmega8 Ich habe die Schaltung kurzerhand auf Lochraster aufgebaut und mit CuL verdrahtet. Erst habe ich versucht, das Ganzé in Eagle zu routen, aber da ich sämtliche Fassungen auf der Platine haben wollte, gab das einen Riesenwulst. :-( Als Transistoren habe ich die DDR-Typen SF127 für NPN und tschechische KFY´18 genommen (mit externen Vorwiderständen). Allerdings brauchte ich auch noch einen Leitungstreiber (74LS244) HCT geht auch. Die Transistoren "mussten mal weg". :-) MfG Paul
Hier noch ein Bild des "Kunstwerkes" :-) MfG Paul
Basteln macht Spaß und schult. Allerdings gibt es auch tadellose Programmer, wie den AVR-ISP von ATMEL, die günstig sind und immer gehen, egal welchen Rechenknecht man da dranne hängt. Wenn schon nicht selber kaufen, dan laßt den euch doch wenigstens mal zum Geburtstag schenken :-|...
Nüscht is! Ich bin Bauer, genauer gesagt Selbstbauer. :-) So, aus einer Lieferung von 5 Stück ATMEGA8 zeigten 2 das oben beschriebene Verhalten, 3 Stück gingen auch bei 16Mhz tadelos. (Bei gleichen Fuseeinstellungen und gleichen Bedingungen) Mein Enkel würde dazu sagen: "Voll krass, Alter!" grins Und nu? Fehler gesucht, keinen gefunden 8 3/4 Stunden. :-) Dann bekommen die beiden anderen eben "langsamere" Aufgaben. MfG Paul
Der ATMega8 hat doch so ´ne Fuse zum Teilen der Takt-Frequenz - ist die vielleicht mal gesetzt?! Ich hatte mal ´ne Lieferung Tiny2313 bekommen, bei denen ein Lock-Bit gesetzt war. Ließen sich nicht programmieren, bis man die bewußt 1x gelöscht hatte...
@TravelRec Die Fuses sind untereinander völlig gleich. Ich lese bei neuen Prozessoren immer erst mal die Fuses aus. Wie gesagt: Wenn das Programm erst einmal drin ist, laufen die beiden mit 16Mhz. Ich muß sie aber auf dem Programmierbord (mit 4Mhz drauf) laden. Wenn ich sie in der Zielschaltung auslese, stürzt der Kollege ab und ich kann ihn dann nur noch mit dem HV-Gerät lesen. Dann sind da alle möglichen Fuses gesetzt. (Staun!) Sind sicher "Montags-Prozessoren" :-) MfG Paul
Hallo, bitte entschuldigt, dass ich mich hier so reinhänge, aber ich bin gerade dabei mir den ELM Programmer zu bauen und mich würde interessieren welche Leitungen, mit dem 74ls244 gepuffert werden. Besten Dank Gruß Bernd Müller
@Bernd Die 8 Leitungen, über die das gestrichelte Kästchen liegt. Besser ginge vielleicht der 74hc541, weil da alle Eingänge auf einer Seite sind. Ich habe den 244 genommen, weil er gerade da war. MfG Paul
@Paul Genau das ist ja die Frage, das gestrichelte Kästchen liegt doch über 10 Leitungen... Welche davon hast Du genommen? Bitte poste doch mal Deine Schaltung oder nenne mir die 8 "richtigen" Leitungen. Programmiert Du mit der "DOS" oder der "Win32" Software oder kann man auch AVRStudio oder eine andere grafische Windows Software benutzen? Danke Gruß Bernd
Alle Leitungen, die an den Prozessor gehen sind gemeint. Ich benutze AVRPP der Win32 Software. Man kann ausschließlich dieses Programm dafür nutzen. Mfg Paul
Ok, danke. Werde ich dann so einbauen und austesten. Wenn es funktioniert berichte ich hier mal davon, wenn nicht... dann melde ich mich ganz bestimmt wieder... Erstmal vielen Dank. Gruß Bernd
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.