Forum: Mikrocontroller und Digitale Elektronik Eigenes Board mit Arduino programmieren ATmega2560


von Simon X. (simon1720)


Angehängte Dateien:

Lesenswert?

Guten Tag
Ich habe ein eigenes Board entwickelt, mit einem Mikrocontroller 
ATmega256016Au damit ich diesen auch mit dem Arduino Studio (IDE) 
programmieren kann fügte ich noch den Chip FTDI232R hinzu. Nachdem ich 
mich erkundigt habe wie man den Chip richtig anschliesst versuchte ich 
es genau auf die gleiche Art. Um den Atmega2560 auch programmierfähig zu 
machen habe ich den Bootloader von Arduino über die ISP Schnittstelle 
geladen. Bootloader: (STK500 Mega 2560).
Arduino Studio Einstellungen:
Board: Arduino/Genuino Mega or Mega 2560
Prozessor: ATmega2560
Port: Jeweilige USB
Programmer: nicht sicher habe jeden ausprobiert.

Ich habe auch mal nach dem FTDI232 gemessen mit einem UART-USB. Das 
Studio sendet sechs mal hintereinander 0xF9. Ich denke der ATmega müsste 
daraufhin sicher antworten. Aber nichts. Langsam bin ich mit meinem 
Latein am ende. Den ich sehe weder einen Fehler au der seite des Schemas 
noch wieso der Bootloader nicht funktionieren sollte. Im Anhang ist auch 
noch das Schema von dem FTDI232 die UART Geht direkt an den ATmega2560 
UART0.
Kennt sich jemand mit dem aus oder hatte jemand schon ein ähnliches 
Problem.
Bitte um Hilfe

Danke im voraus

von Brain 2.0 (Gast)


Lesenswert?

Hat denn das Flashen des Bootloaders funktioniert ?

von Hilf Hilf (Gast)


Lesenswert?

Anfänger verbinden oft Tx mit Tx und Rx mit Rx.

Das wäre nicht so gut.

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> Bitte um Hilfe

Im Driver des FT232 müsste man vieleicht noch die richtige
Baudrate einstellen (vermutlixh 115200), das macht die Arduino
IDE sicher nicht von selbst.

von Simon X. (simon1720)


Lesenswert?

Ja das Atmel Studio hat dies korrekt programmiert und wird auch korrekt 
wieder gelesen.

von Simon X. (simon1720)


Lesenswert?

Diese sind korrekt gekreuzt.

von Simon X. (simon1720)


Lesenswert?

und wie stellt man die richtige Baudrate ein bei dem FTDI232? bzw. wo 
her weiss ich wie viel das Arduino Studio macht.

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> wo her weiss ich wie viel das Arduino Studio macht.

Dem ist das wurscht.

Der Bootloader braucht eine definierte Baudrate.

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> wie stellt man die richtige Baudrate ein bei dem FTDI232?

Geräte-Manager --> Anschlüsse --> dein_FT232_Port -->
--> Anschlusseinstellungen

von Brain 2.0 (Gast)


Lesenswert?

Und warum flashst du den nicht komplett mit ISP ?

von Simon X. (simon1720)


Lesenswert?

Oke also dem ist das egal und wie sehe ich was für eine Baudrate in dem 
Hex file enthalten ist.

von Simon X. (simon1720)


Lesenswert?

Ich möchte nur noch mit dem Arduino Studio den flashen und nicht einen 
externen programmer dafür nehmen.

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> und wie sehe ich was für eine Baudrate in dem
> Hex file enthalten ist.

Alle Arduino Bootloader arbeiten mit 115200 (evtl.
wenige Ausnahmen).

von Simon X. (simon1720)


Lesenswert?

Ich habe in Windows die einstellung vorgenommen mit 115200. Jedoch 
funktioniert dies immer noch nicht jetzt sendet das Arduino Studio 
vollgendes.

0x1B 0x01 0x00 0x01 0x0E 0X01 0X14

Aber ohne erfolg den AVR zu programmieren. Benutze ich ev. den falschen 
programmer im Arduino Studio?

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> Aber ohne erfolg den AVR zu programmieren.

Wie ist der Reset des 2560 beschaltet?

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> Benutze ich ev. den falschen programmer im Arduino Studio?

Probier doch einfach alle durch.

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> Benutze ich ev. den falschen programmer im Arduino Studio?

Die Boot Fuses des 2560 müssen auch noch gesetzt werden ....

von Simon X. (simon1720)


Angehängte Dateien:

Lesenswert?

Dies ist die Schaltung beim Reset des Atmega2560

von Simon X. (simon1720)


Angehängte Dateien:

Lesenswert?

Fuses wurden ebenfalls gesetzt.

von Simon X. (simon1720)


Lesenswert?

Und noch zur Ergänzung/Korrektur der clock divider /8 wurde entfernt.

von Hilf Hilf (Gast)


Lesenswert?

Simon X. schrieb:
> Fuses wurden ebenfalls gesetzt.

Simon X. schrieb:
> der clock divider /8 wurde entfernt.

Dann fällt mir nichts mehr ein.

von Timo N. (tnn85)


Lesenswert?

1. Es heißt Arduino IDE und Atmel Studio. Arduino Studio gibt es nicht 
und führt komplett zu Verwirrung.

2. Einfacher wäre es, wenn man deinen kompletten Schaltplan sehen würde 
und nicht nur ein paar Ausschnitte. Die Frequenz des Quarzes ist z.b. 
auch gar nicht angegeben.

3. Die Frage ist auch, welchen Programmer du überhaupt besitzt? Mit 
welchem Programmer programmierst du die Fuses in Atmel Studio? Das oben 
im Programming Tool bei Atmel Studio bei "Tool" "Simulator" drin steht, 
macht mich stutzig, ob du überhaupt einen Programmer besitzt.

4. Ob die Fuses so stimmen, weiß ich auswendig nicht. Das sollte aber 
leicht zu googlen sein.


5. Wie sieht dein Layout aus?

6. Klären wir erst mal die oberen Fragen

von Simon X. (simon1720)


Lesenswert?

Also ich benutze das Atmel Studio mit dem ICE-Debugger von Atmel selbst 
mit dem vorgegebenen Stecker(ISP). Der Quarz ist 16MHz. auf dem Boar 
existieren keine weiteren Komponenten außer Stecker, jedoch denke ich 
kaum, das Stecker einen Einfluss haben. Der USB wird auch nicht gestört 
den, dass was ich au einem USB ausgebe kann ich direkt an dem 
Mikrocontroller wieder messen.

von Timo N. (tnn85)


Lesenswert?

Naja, wenn du den Schaltplan und Layout nicht zeigen willst...
Ich wäre immer vorsichtig mit solchen Vermutungen, dass es daran nicht 
liegen kann etc.

Wurde der Bootloader denn jetzt erfolgreich aufgespielt bzw. woher weißt 
du das? Irgendwie hab ich die Vermutung, dass das nicht geklappt hat.

Falls nein:
Atmel ICE gibt es ja als Programmmer in Arduino zur Auswahl. Warum 
STK500? Ich selbst hab den Programmer nicht.

Die Frage mit den Fuses bleibt bestehen. Wieso steht da "Simulator" im 
Programmierdialog der Fuses? Bist du sicher, dass du die programmiert 
hast und nicht nur irgendwas mit dem Simulator simuliert?

Simon X. schrieb:
> Der USB wird auch nicht gestört
> den, dass was ich au einem USB ausgebe kann ich direkt an dem
> Mikrocontroller wieder messen.

? Du meinst damit am FT232 kommt hinten was an Tx und Rx raus, wenn du 
was genau machst?

von Simon X. (simon1720)


Lesenswert?

Also das Bild wurde aufgenommen, als der ICE wieder entfernt wurde 
Einstellungen gleich jedoch steht simulator. Er wurde aber korrekt 
geladen. Dies habe ich wieder geprüft mit verify. Der Stk500 Bootloader 
ist für den Atmega2560 oder sehe ich dies falsch?
Ja wen man über die Konsole etwas schreibt und man an RX/Tx auf der 
anderen Seite an dem Microkontroller misst, kommt das selbe wie man 
hinein schreib somit funktioniert diese Verbindung einwandfrei.

von Vende (Gast)


Lesenswert?

löst der reset vom FTDI232R beim upload aus?
eventuell manuell den mega reseten beim upload.
reicht vielleicht die stromversorgung vom usb nicht aus?

von Timo N. (tnn85)


Lesenswert?

Die Frage ist immer noch, ob der Bootloader von der Arduino IDE 
erfolgreich auf den ATmega geflasht wurde.
Das muss ja in der Ausgabe gestanden haben.
Das ist bisher noch nicht sicher. Der TO ist aber schon einen Schritt 
weiter und testet die serielle Verbindung zwischen FTDI und ATmega.
Bevor der Bootloader nicht funktioniert, hat das aber keinen Sinn.

Aktueller Bootloader für Arduino:
https://github.com/Optiboot/optiboot

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Laut dem Screenshot ist BOOTRST nicht gesetzt und dadurch wird der 
Bootloader nach einem Reset nicht ausgeführt.

von Simon X. (simon1720)


Lesenswert?

Timo N. schrieb:
> Die Frage ist immer noch, ob der Bootloader von der Arduino IDE
> erfolgreich auf den ATmega geflasht wurde.
> Das muss ja in der Ausgabe gestanden haben.
> Das ist bisher noch nicht sicher. Der TO ist aber schon einen Schritt
> weiter und testet die serielle Verbindung zwischen FTDI und ATmega.
> Bevor der Bootloader nicht funktioniert, hat das aber keinen Sinn.
>
> Aktueller Bootloader für Arduino:
> https://github.com/Optiboot/optiboot

Also der Bootloader wird nicht über die IDE geladen sondern mit dem 
Atmel Studio. Und bevor ich den Bootloader in frage stelle wäre es ja 
sinnvoll zu sehen funktioniert überhaupt der Baustein wie er sollte.

von Simon X. (simon1720)


Lesenswert?

Andreas W. schrieb:
> Laut dem Screenshot ist BOOTRST nicht gesetzt und dadurch wird der
> Bootloader nach einem Reset nicht ausgeführt.

Würde dies bedeuten wen durch ein Programm der IDE der Mikrocontroller 
in Boot Modus versetzt wird, das dies nur ein Mal machbar wäre, weil ja 
ein Reset durchgeführt wird nach dem beenden des Uploads des Sketchs.

von Timo N. (tnn85)


Lesenswert?

Simon X. schrieb:
> Also der Bootloader wird nicht über die IDE geladen sondern mit dem
> Atmel Studio. Und bevor ich den Bootloader in frage stelle wäre es ja
> sinnvoll zu sehen funktioniert überhaupt der Baustein wie er sollte.

Huh? Warum nutzt du nicht die Arduino IDE zum flashen des Bootloaders? 
Davon bin ich jetzt ausgegangen von dem was du geschrieben hast. Du hast 
nur geschrieben, dass du die Fuses in Atmel Studio setzt. Du hast nie 
geschrieben, dass du auch den Bootloader in Atmel Studio geflasht hast.
Welchen denn überhaupt?
Arduino IDE nimmt dir doch das ganze Setzen der Fuses etc ab. Warum 
machst du es nicht über die IDE. Dafür gibt es doch die Funktion.

Simon X. schrieb:
> Würde dies bedeuten wen durch ein Programm der IDE der Mikrocontroller
> in Boot Modus versetzt wird, das dies nur ein Mal machbar wäre, weil ja
> ein Reset durchgeführt wird nach dem beenden des Uploads des Sketchs.

Nein, es bedeutet, dass der Mikrocontroller als allererstes mal den 
Programmbereich aufruft, in dem der Bootloader steht. Wenn er dann auf 
dem Flashkanal (hier der UART) nicht z.b. irgendeine bestimmte Sequenz 
(z.b. das 0xF9  - ich weiß nicht was das genau bei dem Bootloader von 
Arduino ist) erkennt, die nur vor dem Flashen eines neuen Sketches von 
der Arduino IDE gesendet wird, dann macht er mit deiner normalen 
Anwendung weiter. Basics of Bootloading. Das musst du also aktivieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.