PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fabrikneue ATmega328P programmieren



RedBaron
08.05.2015, 15:26
Moin,

ich werde wahnsinning und komme nicht weiter. Ich versuche seit Wochen neue ATmega328P zu programmieren. Habe nun schon die dritte Charge von verschiedenen Lieferanten, insgesamt 9 Stück, die nicht funktionieren. Google hat sich schon wegen vieler immer gleicher Suchanfragen beschwert :-)

Ich habe einen Breadboard-Aufbau, mySmartUSB mk3 im stk500-Modus als Programmer, Atmel Studio 6.2. ISP-Clock steht auf 57,6 kHz. Bei einem ATmega48 und einem einem 328P, aus einem Arduino ausgebaut, klappt es hervorragend. Die neuen 328P gehen einfach nicht. Schon beim Auslesen der Signatur gibt es den Fehler:

---------------------
Timestamp: 2015-05-08 16:08:25.004
Severity: INFO
ComponentId: 20000
StatusCode: 0

Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xc0, expected 0x00 (Command has failed to execute on the tool)

Unable to enter programming mode. Verify device selection, interface settings, target power and connections to the target device.
------------------------------

Ich habe auch versucht, die neuen in ein Arduino-Board einzubauen und dort per mySmartUSB sowohl über Atmel Studio, als auch über avrdude zu brennen. Beides negativ. avrdude meledet:

---------------------
... bin/avrdude -CC:\Develop\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM3 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\Develop\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1b
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x13
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x3e
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xbb
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x65
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x72
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x72

avrdude done. Thank you.
-----------------------

Auch in einer selbst gebauten Platine, in der das Brennen, eines ATmega48 funktioniert, klappt mit dem 328P nicht.

Muss man bei neuen 328P etwas besonderes beachten?

Viele Grüße
Red Baron

Michael
08.05.2015, 17:19
Muss man bei neuen 328P etwas besonderes beachten?
eigentlich nicht.
Man muss beachten, dass neue Atmegas mit internem Takt von 1MHz laufen, die Frequenz kommt vom internen RC-Oszillator und kann auch mal etwas daneben liegen.
Dein Programmer darf nur maximal 1/4 der Frequenz haben, also max. 250kHz (eher darunter wg. der schwankenden Frequenz)
Das nur zur Info, bei dir ist es ja scheibar ok.

Dazu braucht der Atmega auf jeden Fall einen 100n Abblockkondensator an der Versorgung, aber keine Beschaltung an Reset.

Aus der Erfahrung weiß ich, dass der Atmega328 gerne die Flügel streicht, wenn während der Programmierung die Spannung einbricht. Das ist z.B. in Batterie versorgten Geräten möglich. Der 3pi ist da so ein Kandidat. Da hilft dann nur Tausch des M328.
Zu geringe Spannung bei Versorgung aus USB kann diesen Fehler auch verursachen.

Gruß, Michael

BMS
08.05.2015, 19:25
Hallo,
es gab sogar in der Zeit, in der die ATmega328p sehr gefragt und damit knapp waren, sogar gefälschte Chips. Die Geschichte in Kürze: Es gab ATmega328 in SMD, die sich nicht programmieren ließen (eine ganze Charge). Nachdem die Leute von Sparkfun misstrauisch wurden, haben sie einen Chip geöffnet und unter speziellen Mikroskopen angeschaut und herausgefunden, dass hier irgendwelche Schaltregler drin waren und als ATmega328 beschriftet wurden...
Hier die ganze Geschichte (englisch):
https://www.sparkfun.com/news/350
https://www.sparkfun.com/news/395
Grüße, Bernhard

RedBaron
17.05.2015, 10:03
Moin,

habe das Problem mit der Installation einer neueren Firmware-Version für den Programmer (mySmartUSB mk3) gelöst.

Danke für die Tipps!