Ich verwende für ein Selbstbauprojet einen ATmega328P in SMD-Ausführung. Die Programmierung erfolgt on board über eine ICSP-Schnittstelle und USBtinyISP-Adapter aus der Arduino IDE heraus. Den Vorgang hatte ich bei anderen Boards bislang etliche male erfolgreich durchführen können. Bei meinem letzten baugleichen Board hatte ich in der Hitze des Gefechts gleich meinen Sketch hochgeladen ohne erstmalig den Bootloader zu installieren. Das Hochladen hat auch einwandfrei funktioniert, nur kann ich anschließend nicht mehr aus der IDE heraus auf den Prozessor zugreifen. Ich vermute, daß ich aufgrund des fehlenden Bootladers mir einige wesentliche Fuses zerschossen habe, die ich für den Datenaustausch benötige.
averdude liefert folgende Fehlermeldung, hier beim Versuch den Bootlader hochzuladen. Das Hochladen von Programmen liefert das gleiche Ergebnis:
avrdude: initialization failed, rc=-1
** Double check connections and try again, or use -F to override**
** this check.**
avrdude done. Thank you.
Fehler beim Brennen des Bootloaders.
Wie gesagt, hier liegt kein Bedienfehler bei der Nutzung der IDE oder des Programmieradapters vor, ich hatte das bereits mehrmals gemacht, allerdings mit vorher installiertem Bootloader, außerdem wurde der 1. Sketch ja auch fehlerfrei hochgeladen, nur jetzt geht halt nichts mehr.
Bevor ich den Prozessor auslöte (was ich nur ungern machen würde) und einen jungfräulichen einlöte, gibt es eine Möglichkeit den bereits installierten Prozessor wieder zu retten. Und wenn ja welche?
Das funktioniert dann über einen atmega hv programmer.
Allerdings vermute ich da tatsächlich ein anderes Problem.
Ich habe schon mehrfach die ATmega328P-AU ohne vorherigen Bootloader geflasht.
Das war kein echtes Problem, den Bootloader konnte ich anschließend direkt draufpacken und erneut mit dem Programm flashen.
Der Prozessor ist sauber eingelötet, da sind keine Brücken. Auch die Platine ist in Ordnung. Ich hatte drei baugleiche vorher ohne Probleme nutzen können.
Was mich etwas irritiert:
das erste Hochladen des Sketches hat ohne Fehlermeldung geklappt. Erneutes Hochladen ging nicht mehr.
Ich prüfe nun erst mal meine Platine, ob die auch genauso bestückt ist wie die vorausgehenden. Bevor ich mir einen HV-Programmer zulege, mit dem es dann möglicherweise auch nicht funktioniertt, werde ich das Teil wohl auslöten und es mit einem anderen ausprobiere.
Ich habe das Board nochmal kontrolliert und auch mit einem zweiten baugleichen Board verglichen. Ich sehe da keinen Unterschied.
Bei baugleichen Board kann ich den Bootlader problemlos übertragen. Beim letzten nicht.
Dann habe ich jetzt doch noch Prozessor gewechselt. Und auch geschaut, daß das der richtige ist. Atmega328P-AU. Auch nach dem Austausch funktioniert das nicht.
Ich bekomme ständig diese Meldung:
Arduino: 1.8.15 (Windows 10), Board: "Arduino Uno"
C:\Users\Dell\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\Dell\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -cusbtiny -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\Dell\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : usb
Using Programmer : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\\.\libusb0-0001--0x1781-0x0c9f
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : USBtiny
Description : USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp
avrdude: programmer operation not supported
avrdude: Using SCK period of 10 usec
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Fehler beim Brennen des Bootloaders.
Die Pins am Prozessor habe ich auch nochmal kontrolliert. Auch die Leitungen zur ICSP-Schnittstelle.
Ich bin ratlos.
Im Programm sind sicherlich keine Fehler drin. Ich nutze ja den gleichen Sketch auch bei meinen anderen baugleichen Platinen. Dort geht das.
Bei dem jetzt neu eingelöteten Prozessor ist zudem gar kein Programm drauf. Hier habe ich nur versucht den Bootlader hochzuladen.
Beim normalen upload per Programmer werden die Fuses nicht geändert.
Da kann nichts passiert sein.
Das ist also eine Nebelkerze.
Kannst du Taktfrequenz an deinem Programmer oder AVRdude runter setzen?
Denn neue at328 werden mit 1MHz ausgeliefert.Das ist ein bisschen lahm für manche Programmer default einstellungen.
Ja. Es muß mit dem Board oder dem darauf befindlichen Prozessor zusammenhängen. Ich kann aber keinen Fehler finden. Die Beinchen sind alle mit den Leiterbahnen verlötet und gegeneinander ohne Bücken.
MISO, MOSI, SCK kommen auch am Prozessor an. Spannung und Ground ist auch da.
Wie gesagt, ich habe schon drei Platinen gefertigt, die funktionieren. Gleiche Platinen, gleiche Bauteile.
Vielleicht habe ich auch dem Prozessor beim Einlöten zuviel zugemutet. Dann aber zweimal hintereinander. Obwohl die Teile erstaunlich viel aushalten.
Ich denke, daß ich die Platine als Ausschuß markiere und eine neue bestücke. Dann wird aber sofort der Prozessor getestet sobald der drauf ist. So hatte ich das auch bei den anderen gemacht.
Ich weiß nicht wo ich noch suchen soll. Am Prozessor gibt es auch nicht allzuviel. Vier Kerkos und ein Quarz. den Quarz hatte ich auch schon gewechselt. Die Kerkos geprüft.
Ja, das will ich gern glauben.
Ich habe aber auch schon das Problem gehabt, dass ich die ohne Quarz nicht flashen konnte.
Mag sein das das Serien abhängig ist, aber deswegen hier die Frage.