Hallo µC-Gemeinde, nach langer Pause wollte ich malwieder etwas mit µC machen, bin aber noch auf Einsteiger-Level. Ich habe damals ein USBProg 3.0 + ein Olimex-Board in einem Starterkit gekauft, hat alles super funktioniert. Jetzt habe ich mir Atmel Studio 7 + Treiber etc. für den USBProg installiert, funktioniert wunderbar, alles wird erkannt, ich kann den µC (Device-ID,..) auslesen usw. Ab hier kommt mein Problem: Jedes mal wenn ich einen neuen Atmega8a (frisch aus der Verpackung) programmiere (Mini-Programm mit Blinken einer LED, aus den Beispielen), schlägt das Verify fehl(Flash stimmt nicht überein) und anschließend sind alle Lock-Bits gesetzt(vorher waren sie nicht gesetzt, konnte ich auslesen). Chip-Erase geht auch nicht, ich kann danach nichtmehr auf den µC zugreifen. Fuses sind alle im Werkszustand. Sogar beim Ändern der Clock von intern 1 Mhz auf intern 8 Mhz sind danach alle Lock-Bits gesetzt. Liegts am Programmer? Oder mach ich sonst irgendwas falsch? Falls wer eine Lösung hat wäre ich sehr dankbar :) Vielen Dank und viele Grüße Andreas
Hallo Andreas, mit deinen unvollständigen Angaben wirst Du nur hören, klar es liegt an Dir oder deiner Hardware. Oder 42. Wenn Du ALLES dokumentieren solltest, dann wäre evtl. eine Antwort möglich. Beste Grüße.
Alles klar, ich versuch mal alles noch etwas detaillierter darzustellen. Ich habe damals folgendes Starterkit gekauft: http://www.elo-web.de/mikrocontroller-und-programmierung/avr-anwendungen/starterkit-atmega8 Richtig gelötet etc. ist alles, da es damals einbahnfrei funktionierte. Damals hatte ich AVR Studio 4, jetzt Atmel Studio 7, ich hänge mal ein paar Screenshots an: 1: ISP-Clock und Lesen der Device ID 2: Fuses 3: Lockbits -> sind alle gesetzt nach 1. Programmierversuch, davor waren alle auf "No Lock" 4: Fehlermeldung bei Programmierversuch und das Programm, dass ich laden möchte ist ein BlinkLED-Beispiel (bin gerade dabei die Toolchain zum Laufen zu bekommen), das mit dem Starterkit kommt. Denke da sollte kein Fehler enthalten sein, ich hänge es aber mal an:
1 | #include <avr/io.h> |
2 | |
3 | |
4 | #define F_CPU 1000000UL
|
5 | #include <util/delay.h> |
6 | |
7 | int main() |
8 | {
|
9 | |
10 | DDRC = (1 << PC5); /* Output */ |
11 | PINC = (1 << PC5); /* internal Pullups */ |
12 | |
13 | while(1){ |
14 | |
15 | PORTC |= (1 << PC5);/*LED OFF*/ |
16 | _delay_ms(250); |
17 | PORTC &= ~(1 << PC5); |
18 | _delay_ms(250); |
19 | |
20 | }
|
21 | |
22 | |
23 | |
24 | return 0; |
25 | }
|
Falls noch weitere Infos benötigt werden kann ich die natürlich gerne geben ;)
Noch ein Update: Nochmal alles mit AVR Studio 4 probiert, selbes Ergebnis, aber ich kann die Lockbits löschen, Fuses schreiben,... Programmieren geht aber nicht. Ohne Verify sagt er manchmal "OK", schreibt aber nicht wirklich -> Mein zu flashendes Programm lautet:
1 | :1000000012C019C018C017C016C015C014C013C044 |
2 | :1000100012C011C010C00FC00EC00DC00CC00BC06C |
3 | :100020000AC009C008C011241FBECFE5D4E0DEBF5E |
4 | :10003000CDBF02D00FC0E4CF80E284BB83BB24E2FB |
5 | :1000400034EFAD9AC9010197F1F7AD98C901019755 |
6 | :08005000F1F7F7CFF894FFCFA0 |
7 | :00000001FF |
das was ich vom Controller lese:
1 | :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 |
2 | :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 |
3 | :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 |
4 | :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 |
5 | :1000400034EFAD9AC9010197F1F7AD98C901019755 |
6 | :10005000F1F7F7CFF894FFCFFFFFFFFFFFFFFFFFA0 |
7 | :10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 |
8 | :10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 |
9 | :10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 |
10 | :10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 |
11 | ... |
+ 500 weitere Zeilen die diesem Muster folgen, da läuft also irgendwas gewaltig schief :/ Irgendwer eine Idee?
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.