ich habe hier ein altes ausgeschlachtetes 3D-Drucker Board "Geeetech GT2560", was sich wegen der Schrittmotortreibervorbereitung für ein aktuelles Projekt von mir eignen würde.
Im Grunde ist es ein Arduino Board mit einem ATmega2560 und entsprechendem Bootloader.
Leider bekomme ich die Hex nicht mit AVRDUDE auf den Controller. Geflasht werden muss der Chip mit dem STK500v2 Protokoll. Wähle ich hierzu den Programmer "wiring" (in AVRDUDE), kann ich zwar die Chipkennung auslesen...
1
>>>:avrdude.exe-cwiring-PCOM3-b57600-pm8
2
Detected1e9801=ATmega2560
...aber nicht nicht den Flash-Speicher programmieren:
Ich habe es auch mal mit der Arduino-IDE probiert, auch die kann ihn nicht flashen. Die Fehlermeldungen sind anders...es kommt hier dieser typische "not in sync"-Fehler, der mit AVRDUDE auch beim STK500v1 Protokoll kommen würde. Den Reset-Knopf zeitpassend zum Flashen loslassen, funktioniert hier in diesem Fall nicht als Workaround.
Komischerweise geht mit Bascom alles einwandfrei, wenn ich den Arduino STK500v2 Programmer wähle. Der Chip wird erkannt und kann auch das mit C erstellte Programm rüberflashen.
Ich würde hier aber gerne Bascom rauslassen...auch ist es etwas umständlich, während der Programmentwicklung die C-Kompilate ständig über Bascom zu flashen.
Das Programm würde ich gerne in C schreiben, nicht in dem Arduino-C++ und nicht in Bascom.
Hätte vielleicht jemand einen Tip, was ich falsch mache? Per ISP kann ich das Teil leider nicht bespielen...dazu fehlen die Anschlüsse.
Danke für den Hinweis, das mit der ISP-Möglichkeit über den SD-Card Anschluss habe ich glatt übersehen. Sebastian, vielen Dank für den Auszug aus dem Schaltplan.
Jetzt wollte ich es mal ausprobieren und bekomme es aber leider wieder nicht hin. Verwendet habe ich den Atmel-ICE...sowohl mit AVRDUDE, als auch mit Microchip-Studio bekomme ich keine Verbindung zum Controller bzw. kann die Signatur nicht auslesen. Der Programmer misst lediglich 0,3-0,5 V an der Platine.
Kennt sich jemand mit dem Atmel-ICE aus? Bisher verwendete ich lediglich den ISP-Adapter für die standardisierte ISP-Pfostenbuchse. In diesem Fall sind die ISP-Anschlüsse ja anders auf der SD-Buchse verteilt, so habe ich den anderen Adapter verwendet...ich nehme schon an, dass die aufgedruckten Ziffern dem entsprechenden Pin eines ISP-Anschluss entsprechen?! :)
Die Platine habe ich natürlich auch mit Strom versorgt.
Ebenso habe ich für VCC den Pin 1 des daneben liegenden LCD-Anschlusses probiert.
Hättet ihr noch einen Rat für mich?
So, es funktioniert jetzt :)
Falls jemand mitliest und zufällig das gleiche Board hat...die Pfosten-Buchsen sind (zumindest bei mir) falsch herum aufgelötet. So habe ich die Pins natürlich vertauscht.
ich nehme schon an, dass die
aufgedruckten Ziffern dem entsprechenden Pin eines ISP-Anschluss
entsprechen?! :)
Die entsprechen der Nummer im Flachbandkabel. 1 ist mit einem roten Streifen markiert.
Wie sieht denn Dein sonst genutzter ISP-Adapter aus? Dein Atmel-ICE hat ja kein Flachbandkabel in 0.05"-, sondern eins im 0.025"-Raster, so daß es mit entsprechender Schneidklemmbuchse auf Stiftleisten im 0.05"- statt des üblichen 0.1"-Raster passt.
Dazu gehört also sowieso ein Adapter. Sieh Dir den mal genau an ...
Kannst du denn am Pin 1 ohne angeschlossenen Programmer
(Atmel ICE) die 3.3V nachweisen (Voltmeter)? Und mit
Programmer (Messung mit Voltmeter) bricht die Spannung
dann ein? Dann hast du ein Verkabelungs-Problem.
Wir haben jetzt zeitgleich geschrieben, den Fehler konnte ich zwischenzeitlich finden (steht weiter oben geschrieben).
Harald, im Anhang ein Foto vom üblichen ISP-Adapter des Atmel-ICE.
Um das ganze noch zu vervollständigen...
Ich habe jetzt den Bootloader über die Arduino-IDE mittels des AVRISP mkII neu geflasht, dass wieder alles Arduino-Konform ist.
Geändert hat sich jetzt, dass ich den Controller über 115200 baud anstatt 57200 baud ansprechen kann. Damit meine ich, dass ich über AVRDUDE zumindest bei 115200 baud die Signatur auslesen kann. Das Flashen (über USB/Bootloader) hat zunächst wieder nicht mit AVRDUDE geklappt. Ein Beispielprogramm über die Arduino-IDE konnte ich jedoch flashen (nutzt ja ebenso AVRDUDE)...diese nutzt 115200 baud für den 2560 (wohl der Grund, warum es vorher nicht klappte).
Dabei ist mir aufgefallen, dass die Arduino-IDE zusätzlich den Kommandozeilenparameter "-D" verwendet, um den Flash-Speicher NICHT zu löschen.
Mit diesem Parameter funktioniert es jetzt auch außerhalb der Arduino-IDE, also pur mit AVRDUDE bzw. AVRDUDESS (was ich verwende).
Es ist also alles gelöst und das Projekt kann anlaufen :)
Falls noch jemand eine Info hätte (rein zum Verständnis), wieso man den Flash-Speicher beim ATmega2560 nicht löschen sollte bzw. was da mit und ohne dem Parameter "-D" genau passiert, würde mich freuen.
Ich habe zwar eine Beschreibung für diesen Parameter gefunden, werde aber daraus nicht wirklich schlau. So wie ich das verstehe, sollte der "-D" Parameter eigentlich nicht verwendet werden :)
1
-D
2
Disable auto erase for flash. When the -U option with flash memory is specified, avrdude will perform a chip erase before starting any of the programming operations, since it generally is a mistake to program the flash without performing an erase first. This option disables that. Auto erase is not used for ATxmega devices as these devices can use page erase before writing each page so no explicit chip erase is required. Note however that any page not affected by the current operation will retain its previous contents.
Tue dir und uns allen einen Gefallen: Zeige echte Fotos vom Aufbau,
keine irreführenden Fake-Fotos.
Dann tue dir und uns allen bitte ebenso den Gefallen, die Fotos genauer anzusehen und den geschriebenen Text zu verinnerlichen, bevor du eine solche Formulierung verwendest.
Die Fotos sind natürlich echt und waren der tatsächliche Aufbau. Wenn du das sogenannte Fake-Foto genauer angesehen hättest, wirst du auch sehen, dass unter der Platine noch eine Stromleitung hervorkommt. Da ich den Stecker für die offizielle Buchse aktuell nicht da habe, habe ich vorübergehend für Tests eine Ersatzleitung angelötet. Ja, auf dem Foto hatte ich leider das Netzteil ausgesteckt, daher leuchtet keine LED...das Foto diente jedoch lediglich dazu, um den Anschluss der nummerierten Stecker zu zeigen. Ich habe es aus diesem Grund explizit dazu geschrieben, dass ich es mit Strom versorgt habe.
Wie du sicherlich auch gelesen hast, hat sich das ganze auch aufgeklärt.
Wastl hatte den richtigen Riecher, der Fehler lag am Board...die Pegel haben gar nicht gepasst.
Wer hätte gedacht, dass die ganze Buchse verdreht aufgelötet ist, wenn in früherer Anwendung die Funktion mit Display und SD-Kartenleser funktioniert hat...auf den separaten Komponenten waren die Buchsen wahrscheinlich auch verkehrt herum.
Falls noch jemand eine Info hätte (rein zum Verständnis), wieso man den
Flash-Speicher beim ATmega2560 nicht löschen sollte bzw. was da mit und
ohne dem Parameter "-D" genau passiert, würde mich freuen.