ATMEGA644p Bootloader brennen

Hallo zusammen,

kann mir jemand dabei helfen einen ATMEGA 644p ans laufen zu bekommen?
Mein problem ist, dass ich nicht weiß, wie das mit dem Bootloader brennen geht.

Wie ich mir das vorstelle: Programmer an PC anschließen, Programmer in der ARDUINO IDE einstellen, Bootloader brennen, Hochladen mit Programmer während Programmer mit dem ATMEGA verbunden ist.

Ich habe einen ERFOS PROG-S2 programmer angeschlossen.
Unter Werkzeug -> Programmer habe ich AVRISP mkII ausgewählt.
Port -> COM der Programmers
Was stellt man unter Board ein?

Wenn ich dann auf Bootloader brennen gehe kommt aber ein viel aussagender Fehler: Fehler beim brennen des Bootloaders. :slight_smile:

VG

Was mach ich falsch?

Suche dir eine passende Hardwaredefinition.
Eine boards.txt und den gewünschten Bootloader.
Oder schreibe selber eine.

Erst dann kannst du den richtigen Prozessor im Menu aufrufen, und das Bootloader brennen klappt wie gewünscht.

Hab mich mal hier bedient:

Daraufhin wurde der 644p angeboten.
bootloader brennen funktioniert aber immernoch nicht. Der Fehler kommt auch immer sofort ohne wartezeit direkt nachdem man draufgeklickt hat.

Immerhin....

Schritt für Schritt....

Ausführliche Meldungen aktivieren.
Meldungen lesen.

Schaltplan hier zeigen.

Unter Werkzeug -> Programmer habe ich AVRISP mkII ausgewählt.

Wäre nicht STK500 angemessener?
Richtigen COM Port ausgewählt?

Machs jetzt doch mit Mightycore (MightyCore/README.md at master · MCUdude/MightyCore · GitHub)

Der Chip ist "nackt" angeschlossen. Das heißt nur VCC (pin 10), GND (pin11) und der Rest vom programmer sind dran. (Reset (pin 9), MOSI (pin 5), MISO (pin 6), SCK (pin 7)

Der Chip erhält seine stromversorung extern, Programmer daher auf 0-0-0-0 eingestellt (http://cdn-reichelt.de/documents/datenblatt/A300/DIAMEX-PROG-S2.pdf).

Einstellungen Arduino IDE:
Board: Atmega 644
Variant: 644p / 644pa
BOD:Disabled
Pinout:standard
clock: 16mhz
Compiler LTO: disabled (standard)
Port: COM5 (hängt auch nichts anderes dran)

Programmer: STK500 as ISP

Arduino: 1.8.2 (Windows 10), TD: 1.36, Board: "ATmega644, Standard, 644P / 644PA, Disabled, Disabled (default), 16 MHz external"

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Users\Jannis\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\1.0.8/avrdude.conf"

Using Port : COM5
Using Programmer : stk500
AVR Part : ATmega644P
Chip Erase delay : 55000 us
PAGEL : PD7
BS2 : PA0
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 10 128 0 no 2048 8 0 9000 9000 0xff 0xff
flash 33 6 256 0 yes 65536 256 256 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

Programmer Type : STK500V2
Description : Atmel STK500
Programmer Model: STK500
Hardware Version: 10
Firmware Version Master : 2.10
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
Topcard : Unknown
Vtarget : 3.3 V
SCK period : 8.7 us
Varef : 3.3 V
Oscillator : Off

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
Fehler beim Brennen des Bootloaders.
this check.

avrdude done. Thank you.

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

nur VCC (pin 10), GND (pin11)

30 und 31 vergessen?
Oder einfach nur ausgeblendet?

Der Reset sollte einen 10K Pullup bekommen.

Kein Quarz?
Dann werden dir die Fuses den Prozessor wohl tot legen.

Wähle eine Einstellung mit internem Takt, um das zu verhindern.
Alternativ: Quarz dran.

avrdude: stk500v2_command(): command failed

Zu dem ISP Adapter kann ich wenig sagen, noch nie gesehen...

30 und 31 vergessen?

ja :smiley:

Widerstand ist auch jetzt verbaut, und habe clock auf 8mhz internal geändert. Das problem besteht weiterhin.

Ich verwende folgenden ISP Adapter: https://www.sparkfun.com/products/11591

Hab nen zweiten Controller ausprobiert und da hat alles geklappt. Dann war wohl der 1. Controller bereits kaputt oder ich hab den aus versehen zerlegt. :sob:

Beim Bootloder brennen werden erst die Fuses geschrieben.

Wenn du da den falschen Eintrag genommen hast, werden die Fuses für 16MHz verwendet.
Und die erwarten eben einen Quarz, oder Resonator.
Und genau danach sieht dein erster Brennversuch aus.

Darum sagte ich auch:

Kein Quarz?
Dann werden dir die Fuses den Prozessor wohl tot legen.

Und so wird es wohl geschehen sein!

Also:
Externen Takt anlegen, Fuses neu brennen, aber diesmal die richtigen.
Dann wird er wieder funktionieren.

Was brauch ich da für einen? 16Mhz Standardquarz?

JoE1205:
Was brauch ich da für einen? 16Mhz Standardquarz?

Du kannst auch von einem Arduino einen externen 16 MHz Takt anlegen.

Den externen Takt auf XTAL1 einkoppeln.

Hi, also das bootloader brennen hat ja jetzt wie bereits geschrieben geklappt.
Jedoch möchte ich nun über USB mit dem Mikrochip kommunizieren.
dazu hab ich folgende verbindung erzeugt:

GND (USB)<-> GND externe Stromversorgung
RXD (USB) <-> TX0 Pin 14
TXD (USB) <-> RX0 Pin 15
DTR (USB) <-> Reset Pin 9

Allerdings gelingt es mir nicht sketches per arduino IDE hochzuladen. lediglich über den programmer klappt es. Was läuft da jetzt schon wieder falsch? :frowning:

JoE1205:
Hi, also das bootloader brennen hat ja jetzt wie bereits geschrieben geklappt.
Jedoch möchte ich nun über USB mit dem Mikrochip kommunizieren.
dazu hab ich folgende verbindung erzeugt:

GND (USB)<-> GND externe Stromversorgung
RXD (USB) <-> TX0 Pin 14
TXD (USB) <-> RX0 Pin 15
DTR (USB) <-> Reset Pin 9

Allerdings gelingt es mir nicht sketches per arduino IDE hochzuladen. lediglich über den programmer klappt es. Was läuft da jetzt schon wieder falsch? :frowning:

Wie ist das zu verstehen ?

Du hast USB direkt an TX und RX angeschlossen ?

Wenn ja, dann kann das nicht funktionieren.

Du brauchst einen USB-Serial-Wandler dazwischen. Z.B. einen FTDI o.ä. Beispiel

Hi, ich hab so einen adapter dafür, wie das ding heißt weiß ich leider nicht:

Imgur

JoE1205:
Hi, ich hab so einen adapter dafür, wie das ding heißt weiß ich leider nicht:

Das Bild kann man nicht sehen.
Poste es hier direkt.

DTR musst du über einen 0,1 µF Kondensator anschließen. Den RST am Controller mit 10 k gegen +VCC.
Nie direkt verbinden.

Das bild hab ich jetzt per link eingefügt.

Den Widerstand zwischen RST auf VCC hab ich jetzt eingebaut.
Wie meinst du das mit dem Kondensator? Welche anschlüsse soll der verbinden?

JoE1205:
Das bild hab ich jetzt per link eingefügt.

Den Widerstand zwischen RST auf VCC hab ich jetzt eingebaut.
Wie meinst du das mit dem Kondensator? Welche anschlüsse soll der verbinden?

DTR und RST,
wie hier im Beispiel

Dann hab ich aber eigentlich alles richig angeschlossen.

schaltpla: Imgur: The magic of the Internet
Breadboard: http://imgur.com/gg63TTP
Einstellungen Arduino IDE: Imgur: The magic of the Internet
Fehlermeldung: Imgur: The magic of the Internet

Setze die Bilder bitte hier in das Forum rein.