Hallo, ich möchte einen ATmega8-16 PU mit dem Arduino Bootloader flashen. Ich habe es bisher mit einem Minimal-Parallel-Programmer, dem originalen USBasp und einem Arduino als ArduinoISP versucht. Sowohl in der Arduino IDE als auch mit avrdude in der Konsole kommt bei mir immer wieder der Fehler "verification error, first mismatch at byte 0x0000 0xd9 != 0x00" Eine Anomalie, die mir aufgefallen ist, ist die Tatsache, dass an dem uC nur 4,88 V ankommen. Momentan habe ich ihn am Arduino angeschlossen, über die minimale Schaltung, also ohne Quarz etc. um den Bootloader zu flashen. Das USBasp funktioniert interessanterweise nur an mega8'ten nicht, an einem mega168 funktioniert es genauso wie das ArduinoISP. Ich bedanke mich jetzt schonmal für jede Hilfe. MFG Bardaky
4,88V sind doch noch keine Anomalie... Wenn du den Arduino als ISP programmiert daziwschen hast, ist der ATMEGA so eingestellt dass er, wenn du keinen Quarz hast auch seinen internen Takt benutzt oder hat der nen quarz? Auch den 10µF Kondi zwischen Reset und Ground eingebaut und den ArduinoISP Sketch angepasst? MfG, EGS PS: schau doch mal die ANleitung an unter : http://arduino.cc/en/Tutorial/ArduinoISP
Anomalie in Hinblick darauf, dass ich da bisher eigentlich immer 5V messen konnte, aber egal. Nein der hat keinen Quarz, allerdings habe ich die Fuses so eingestellt (hoffe ich zumindest), dass der seinen internen Takt nutzt. Wofür ist denn der Kondi da? Ich habe den auf der Anleitung auf der Arduino Hp, die du auch verlinkt hast nicht gefunden, und danach habe ich schließlich gebaut, und danach hat es mit einem mega168 auch funktioniert. Wie muss ich denn den Sketch anpassen? Den vom ArduinoISP ? Denn auf den mega8 will ich eigentlich erstmal nur den Bootloader flashen. Mfg Bardaky
Was mich viel mehr wundert ist, dass ich den Chip mit avrdude erasen kann, seine Fuses setzen kann, er aber bei der verification von der hfuse den fehler ausspuckt
so, ich arbeite zwar schon seit mehreren tagen dran, aber mir kam grade die idee, das dochmal ohne die fuses zu testen. und siehe da, ich kann den chip flashen! ABER: dann kommt der schöne verification fehler bei byte 0x0000 mal wieder zum vorschein! und ich versteh nicht ganz, wie aus einem 2,9 kB großem HEX-File 8170 Bytes werden, die auf den Chip geflasht wurden. Zumal der Chip ja nur 8kB Flash hat.... So langsam versteh ich gar nix mehr :D
UPDATE: Inzwischen ist es mir gelungen, dass ich .hex-files draufflashen kann. Jedoch habe ich Probleme, was den Arduino Bootloader angeht. Laut Website braucht der Bootloader für den Mega8 nur 1kB Flash. Wenn ich jedoch die .hex davon flashe, sagt er mir, dass er 8107 Bytes geflasht hat, aber der Mega8 hat ja gar nicht so viel Platz. Weiß jemand woran das liegen kann? Ich bin da inzwischen ziehmlich ratlos..... Leider weiß ich auch nicht, ob ich den verfused hab, ich hatte zwar eigentlich die richtigen fuses gesetzt, laut dem burn-o-mat online fuserechner, aber irgendwie funktioniert auch das simpelste Programm, das lediglich Pin PB5 (interne LED auf dem Arduino) aktiviert. #include <avr/io.h> int main(void) { DDRB |= (1 << PB5); // PB5 als Ausgang festlegen PORTB |= (1 << PB5); // PB5 aktivieren } Ich bin mir aber auch nicht ganz sicher, ob ich bei dem Programm noch mehr dazuschreiben muss. Bin für jede Hilfe dankbar MfG
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.