PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AtMega 2560 mit Arduino Bootloader nutzen ohne Arduino Mega2560-Platine



Cysign
03.11.2015, 11:34
Hallo zusammen,

nachdem ich die letzten Tage vergeblich versucht habe, einen Mega2560 per ArduinoIDE zu nutzen, bin ich mit meinem Latein langsam am Ende.
Zuerst lies sich mein AVR ISP MKII nicht mehr mit Windows 10 nutzen. Von heut auf morgen war er in AtmelStudio nicht mehr zu finden.
Also habe ich einen Arduino als ISP verwendet, um per ArduinoIDE den Bootloader auf den Mega2560 aufzuspielen, was auch bei zwei µCs problemlos geklappt haben müsste nach Statusreport der IDE (sicherheitshalber zwei, da der eine schonmal verlötet und wieder entlötet wurde, und ich zur Kontrolle einen neuen Mega2560 zum Vergleich haben wollte).

Nun habe ich die Platine eines Uno genommen, um per Atmel 8u2-Chip der Uno-Platine den Mega (verbunden mit Vcc, Gnd, Reset, Rx, Tx) per IDE anzusprechen. Klappte leider nicht.
Also habe ich weiter getestet und einen FTDI-Usb-Adapter genommen, um damit den µC anzusprechen. Den sehe ich zwar problemlos in der IDE, aber ich bekomme die Kommunikation zwischen IDE und Mega2560 einfach nicht hin.
Verbunden habe ich den FTDI folgendermaßen:
FTDI Mega2560
TX - RX
RX - TX
Vcc - Vcc
Gnd - Gnc
DTR - 100nF - Reset

Per FT_Prog habe ich die PID 6001 überprüft, um auszuschließen, dass die Maleware-FTDI-Treiber diese auf 0000 gesetzt haben. Hier scheint alles in Ordnung zu sein.

Der Mega ist auf einem TQFP-zu-DIP-Breakoutboard und nebem einem ISP-Header habe ich einen Header für den FTDI angelötet, sowie zwei 22pF-Kondensatoren, die Xtal1/2 mit Masse koppeln. Zwischen den beiden Xtals ist noch ein 16Mhz-Quarz.

Hat jemand noch eine Idee, was ich versuchen könnte?

Hubert.G
03.11.2015, 12:50
Hast du auch die Fuses umgestellt damit der 16Mhz Quarz genutzt wird?
Ansonst wird der Bootloader nicht funktionieren.

Cysign
03.11.2015, 13:34
Ich dachte, die werdcen automatisch gesetzt, wenn man den Bootloader per ArduinoIDE hochlädt. Irre ich da?

Manuelles Aufspielen des Bootloaders über Atmel Studio bekomme ich derzeit nicht hin. Mein AVR ISP MKII wird von Studio 6 unter Win10 seit zwei Wochen nicht mehr erkannt (hab da auch schon andere Treiber versucht, Studio 6 neu installeirt... Studio 7 bekomme ich auf Grund des MS Visual Studio-Installers nicht installiert. Da suche ich derzeit noch den Fehler).

Hubert.G
03.11.2015, 14:17
Ich denke mal nicht das die Fuses über die ArduinoIDE mitgesetzt werden. Es sind ja auch über ISP verschiedene Sachen.

Cysign
04.11.2015, 01:15
Ich versuch das mit dem Studio 7 und meinem AVR ISP MKII jetzt nochmal auf nem anderen Rechner und wenns klappt, kann ich ja ne Runde mit den Fuses spielen ;)
Danke jedenfalls schonmal für den Hinweis.
Wenn AVRISP MKII und Studio laufen, kann ich ja von nem kompletten Arduino Mega2560-Board die Fuses etc. auslesen und für den blanken AtMega2560 übernehmen.
Ich finds nur komisch, dass ich auf dem Arduino-Board lediglich einen 12Mhz-Kristall sehe. Im Schaltplan für den Arduino Mega ist aber ein 16Mhz-Kristall eingezeichnet.
Interessant finde ich auch, dass in einigen Plänen noch ein 1MOhm-Widerstand zwischen Xtal1/2 verschaltet ist, in anderen nicht. Beide Möglichkeiten haben mich bisher nicht zum Ziel geführt.

Hubert.G
04.11.2015, 08:58
Ich habe einige Boards, aber auf keinem kann man lesen was auf dem Quarz steht, ist zu mini. Es ist ein "A" und noch etwas. Nach den Schaltplänen bin ich immer davon ausgegangen das es ein 16MHz Quarz ist.
Beim Studio und Windows bin ich konservativ, immer noch Win7 und Studio 4. Solange alles vernünftig läuft was ich brauche, wird es auch dabei bleiben.

Cysign
04.11.2015, 22:37
Ah, okay. Ich hab grade gesehen, dass da noch ein zweiter Quarz verbastelt ist, dessen Beschriftung aus zwei Buchstaben zu bestehen scheint. Aber selbst mit Fadenzähler ist das so schlecht aufgeprägt, dass man nur ein AU vermuten kann.

Wenn man Atmel Studio unter Windoofs10 als Admin installiert, bekommt man die Installation durchgeführt.
Mit dem Zadig-Treiber-Workaround kann man daraufhin sogar den AVRISP MKII sehen und nutzen.
Das einzige Problem was bleibt, ist die Visual Studio-Geschichte. Atmel Studio verabschiedet sich mit der Meldung:
Visual Studio
Licence: Prerelease Software
This licence has expired.

Manchmal hat man Glück und kann vor dieser Meldung die Fuses eines µC auslesen.
Und mein blanker Mega2560 hat die selben Fuses gesetzt wie ein fertig verlöteter und funktionierender Arduino2560.

30840

sind die Fuses nun für nen 8Mhz-Quarz gesetzt?
EXTXOSC_8MHZ_XX_16KCK_65MS sieht ziemlich danach aus.
Allerdings bin ich mir auch nicht im Klaren darüber, was ich an den Fues ändern sollte.

Eine andere Idee wäre noch direkt auf dem TQFP-Dip-Adapter einen kleinen non-Elektrolyt-Kondensator an die Stromversorgung zu klemmen, um sicherzustellen, dass mein Labornetzteil keine ungewollten Schwankungen rausschickt, wodurch das Problem entsteht ;)

Der Screenshot ist übrigens vom funktionierenden Arduino2560. Der blanke AtMega hat genau die selben Fuses, jedoch eine Spannung von 4,9V. Sogar die Device Signature ist die selbe - sollte das so sein? Oder lässt das eher auf einen Fehler beim Auslesen hindeuten?

Hubert.G
05.11.2015, 08:24
Die Fuses sind so OK. Die Devicesignatur ist bei allen 2560 gleich.
Ein neuer hat allerdings eine andere Fuse-Einstellung

Cysign
05.11.2015, 10:16
Hmmm...also reagiert der µC und die Fuses stimmen.
Die Lockbits sind auch nicht gesetzt. Woran könnte die Kommunikation denn noch hapern?
Dass es kein generelles Treibrproblem des CH340-Chips vom Uno-Board ist, weiß ich, da ich sonst auch keinen AtMega328 damit programmieren könnte. Und mit dem Usb-FTDI-Dongle (100nF auf der Resetleitung) konnte ich den Mega auch nicht beschreiben.
Gelegentlich blinken RX/TX auf dem Dongle schon etliche Male, wenn ich den Upload starte. Aber erfolggekrönt wars bisher nicht.

Hubert.G
05.11.2015, 14:58
Es könnte auch die Baudrate nicht stimmen, 115200
Hast du schon mal das Programm XLoader probiert?
http://www.xloader.russemotto.com/
Zum Programme übertragen ideal.

Cysign
05.11.2015, 16:44
Vor Ewigkeiten mal um GRBL auf nen Arduino Nano zu schubsen.
Kann ich denn von der Arduino-IDE hex-Files exportieren? Ich hab da keine Möglichkeit gefunden...

Hubert.G
05.11.2015, 17:37
Die Dateien werden nur temporär gespeichert und nach dem Upload gelöscht.

Cysign
06.11.2015, 00:06
Hmmm....okay. Ich hab ejtzt mal den Speicher von dem ArduinoMega-Board ausgelesen und per Atmel Studio hochgeladen, um auszuschließen, dass die Bootloader-Dateien defekt sind. Leider immer noch keine Veränderung.

Könnte es evtl. sein, dass mein Quarz beim Löten Schaden genommen hat?
Gibts ne Möglichkeit das zu testen?
Laut Atmel Studio (irgendwo unter Device Programmung gabs die Möglichkeit, auf 8Mhz zu testen) solls da kein Problem geben.
So langsam weiß ich nur nicht mehr, was ich noch machen könnte.
Es kann doch kein Hexenwerk sein, 2 Kondensatoren und einen Quarz an einen Mega2560 anzudocken und ihn per ArduinoBootloader anzusprechen.

Ich glaube, ich teste morgen mal auf nem Breadboard, ob ich nen 328 am Breadboard ansprechen kann. Vielleicht liegts ja auch grade am FTDI-Dongle oder dem Kondensator auf der Reset-Leitung (wobei der gemessene 100nF hat).
Wenn das auch nicht klappt, nehm ich wieder ein Uno-Board um die Übertragung zu testen.

Cysign
07.11.2015, 01:21
So, nachdem ich nun Atmel Studio und sämtliche Visual Studio-Komponenten nochmal komplett deinstalliert habe und Atmel Studio 7 nun schon zum dritten Mal "als Administrator" installiert habe, lief es dann auch endlich ohne Visual Studio Lizenzprobleme.

Mit zadig_2.1.2 habe ich dann dem AVRISP MKII einen anderen Treiber zugeordnet, womit er in Atmel Studio unter Windows 10 problemlos lief (okay fast, einmal hatte ich minimal Probleme beim Upload des Arduino-Bootloaders mit Atmel-Studio, was mir Atmel Studio durch die Verifizierungsfunktion auch gleich mitgeteilt hatte - erneutes Hochladen hat Abilfe geschaffen).

In Atmel Studio habe ich dann gesehen, dass bei einem meiner beiden Test-AtMega2560 ein Lockbit gesetzt war. Also µC löschen und Lockbit freigeben, nochmal Bootloader hochladen.

Nun habe ich meinen FTDI-USB-Adapter wieder auf Seite gelegt und nochmal die Platine des Arduino Uno (ohne AtMega328) als Usb-Wandler genutzt und siehe da: Es klappt.
Eine lange Odyssee geht also zu Ende und ich kann endlich weiter basteln ;)

Vielen Dank nochmal für die Hilfe!
Ich hoffe, dass dieser Beitrag dem ein oder anderen Hilfe, seinen Atmel AVRISP MKII unter Windows 10 ans Laufen zu bringen.
Hierzu wird Zadig gestartet, dann unter Options All devices aktivieren.
Nun den AVRISP MKII auswählen und den libusb-Treiber auswählen. Nach einem Klick auf "Driver" noch wenige Sekunden warten und Atmel Studio (wichtig: Als Administrator installieren!) verrichtet seinen Dienst mit dem Programmer wie gewohnt :) :idea:



//Edit:
Hier noch entsprechende Links, damit ihr nicht so lange suchen müsst:
http://atmel.force.com/support/articles/en_US/Workaround/Atmel-tools-not-listed-in-Atmel-Studio-7-in-Windows10?q=windows+10&l=en_US&fs=Search&pn=1

http://zadig.akeo.ie/