Go Down

Topic: Kann ich ein ATMega32 mit dem Arduino UNO bootloaden und programmieren? (Read 5935 times) previous topic - next topic

xJan45x

Guten Abend,
Ich habe heute beim aufräumen meinen ATMega32(Eigentlich atmega1284p) wieder gefunden. Ich habe bis jetzt eigentlich nur mit dem Atmega328p gearbeitet, ist es denn auch möglich auf denn atmega32 mit dem Arduino UNO(Ich denke mal das geht nur auf ein Breadboard da der 32 ja mehr als 28 pins hat) einen Bootloader auf denn atmega1284p zu brennen?
Und diesen dann auch zu programmieren? Ich nutzte ja Atmel Studio und programmiere ja über avrdude, und nutzte das UNO board nur als Programmer. Geht das dann, genau so wie beim 328p mit dem programmieren? Also Reset an Reset, GND and GND, +5 auf VCC und RX und TX an die RX und TX Pin am Atmega32? Denn beim Atmel Studio muss ich ja denn Prozessor auswählen denn ich verwende.
Ist es denn möglich denn Bootloader über die Arduino IDE zu brennen?

Ich denke mal da muss man dann ein neues Board oder so erstellen, oder?

Und wie ist das denn mit der Bootloader Datei?

Kann mir da einer helfen? Ich würde diesen nähmlich gerne für größere Projekte nutzen.


Mfg Jan.

Serenifly

Was jetzt? Atmega32 und Atmega1284 sind zwei völlig verschiedene Dinge. Für letzteren gibt es einen Arduino Core

Nick Gammon hat einen 1284 Bootloader:
http://www.gammon.com.au/bootloader

xJan45x

Sorry, verschrieben. Es ist der ATMega32l im PDIP gehäuse

Andere Frage: Kann es sein das der ATMega32l keine Pin Change Interrupts hat?

combie

Du kannst deinen UNO zum ISP Gerät machen.
Einen Bootloader brauchst du dann nicht.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Theseus

Hallo,

du kannst mal das folgende ausprobieren: ATmega-DIP40-in-Arduino-IDE-1.64


Ein Programmer wie der UsbAsp kostet in China nur 1-2Euro. In meinen Augen ist die Atmega32 Einbindung in erster Linie interessant, wenn man den Atmega auch in der IDE programmieren will.

xJan45x

Ein Programmer wie der UsbAsp kostet in China nur 1-2Euro. In meinen Augen ist die Atmega32 Einbindung in erster Linie interessant, wenn man den Atmega auch in der IDE programmieren will.
Hallo, ich würde eigentlich gerne das Arduino UNO Board nutzten. Der ATmega32l hat kein Bootloader er ist im Werkszustand. Also ich müsste erstmal ein Bootloader brennen.

Und das mit dem Programmieren geht ja denn wieder über SCK, MISO, MOSI und RESET zum brennen. Und zum Programmieren dann über RX , TX und Reset.

Aber wie kann ich denn die IDE umstellen damit der Atmega32l richtig gebrannt wird. Muss ich in der boards.txt datei ein neuen eintrag machen? Und denn Bootloader runterladen?

Kann ich eigentlich auch denn Bootloader des ATMega328P auf denn AtMega32L brennen?

Theseus

Hallo, ich würde eigentlich gerne das Arduino UNO Board nutzten. Der ATmega32l hat kein Bootloader er ist im Werkszustand. Also ich müsste erstmal ein Bootloader brennen.
Der Atmega32 ist ja wesentlich größer als der 328. Wie bekommst du den in den Uno? Zur seriellen Programmierung bieten sich serielle Adapter wie FTDI oder CP2102 an.


xJan45x

Der Atmega32 ist ja wesentlich größer als der 328. Wie bekommst du den in den Uno? Zur seriellen Programmierung bieten sich serielle Adapter wie FTDI oder CP2102 an.
Ich habe ja denn Arduino UNO. Um denn Atemega32 zu programmieren würde ich ihn auf ein Breadboard aufbauen und dann die Kabel vom Arduino zum Breadboard am Controller anschließen. Aber ich brauche aber denn Bootloader. Oder?

Währe das so denn richtig:
- Boards.txt bearbeiten
- Arduino IDE starten
- Arduino ISP Sketch auf Atmega328p hochladen.
- Board umstellen auf denn Atmega32
- Arduino Mode auf "Arduino as ISP"
- Bootloader brennen?
- Vorher halt die richtigen Kabel an denn Controller angeließen, RESET, SCK, MISO, MOSI

mfg jan.

agmue

Atmega32 kenne ich nicht, aber ATtiny85, sollte genauso funktionieren.
Aber ich brauche aber denn Bootloader. Oder?
Der Bootloader wartet nach Reset eine Weile, ob per serieller Schnittstelle ein neuer Sketch angeboten wird. Wenn ja, wird dieser in den Flash-Speicher kopiert, wenn nein, wird der vorhandene Sketch gestartet.

Da Dein Atmega32 vermutlich mittels ISP seinen Sketch erhält, ist kein Bootloader notwendig.

Wenn ich also in der IDE "Bootloader brennen" wähle, wird dann aber doch eine Datei mit einem leeren Bootloader benötigt. Beispiel ATtiny85 mit 8 MHz benötigt die Datei \hardware\tiny\avr\bootloaders\empty\empty85at8.hex
In Boards.txt steht "attiny85at8.bootloader.file=empty85at8.hex"

- Arduino IDE starten
- Arduino ISP Sketch auf UNO hochladen.
- in der IDE Board umstellen auf Atmega32
- Arduino Mode auf "Arduino as ISP"
- die richtigen Kabel zwischen UNO und Atmega32 anschließen, RESET, SCK, MISO, MOSI
- Kondensator an Reset von UNO
- Bootloader brennen, um die Fuses zu setzen, wenn nicht Auslieferungszustand verwendet werden soll.
- Sketch übertragen
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

combie

Quote
Aber ich brauche aber denn Bootloader. Oder?
Siehe: (von eben)
Du kannst deinen UNO zum ISP Gerät machen.
Einen Bootloader brauchst du dann nicht.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

xJan45x

Atmega32 kenne ich nicht, aber ATtiny85, sollte genauso funktionieren.Der Bootloader wartet nach Reset eine Weile, ob per serieller Schnittstelle ein neuer Sketch angeboten wird. Wenn ja, wird dieser in den Flash-Speicher kopiert, wenn nein, wird der vorhandene Sketch gestartet.

Da Dein Atmega32 vermutlich mittels ISP seinen Sketch erhält, ist kein Bootloader notwendig.

Wenn ich also in der IDE "Bootloader brennen" wähle, wird dann aber doch eine Datei mit einem leeren Bootloader benötigt. Beispiel ATtiny85 mit 8 MHz benötigt die Datei \hardware\tiny\avr\bootloaders\empty\empty85at8.hex
In Boards.txt steht "attiny85at8.bootloader.file=empty85at8.hex"

- Arduino IDE starten
- Arduino ISP Sketch auf UNO hochladen.
- in der IDE Board umstellen auf Atmega32
- Arduino Mode auf "Arduino as ISP"
- die richtigen Kabel zwischen UNO und Atmega32 anschließen, RESET, SCK, MISO, MOSI
- Kondensator an Reset von UNO
- Bootloader brennen, um die Fuses zu setzen, wenn nicht Auslieferungszustand verwendet werden soll.
- Sketch übertragen

Also nochmal für mich:
Ich suche im Internet nach dem Bootloader des ATMega32.
Erstelle dann ein neuen Eintrag in der Boards.txt
Code: [Select]

mega32-16.name=ATmega32-External 16mhz
mega32-16.build.mcu=atmega32
mega32-16.build.f_cpu=16000000L
mega32-16.build.core=arduino:arduino
mega32-16.build.variant=mega32

mega32-16.upload.tool=avrdude
mega32-16.upload.maximum_size=32000

mega32-16.bootloader.low_fuses=0xEF
mega32-16.bootloader.high_fuses=0x89
#mega32-16.bootloader.extended_fuses=0xFD

Stelle die IDE auf "Uno" und lade das Arduino ISP Sketch hoch(Im sockel ist ein Atmega328p). Nachdem das fertig ist schließe ich die Kabel(RESET, SCK, MISO, MOSI) an mit denn Digitalen Pin 13,12,11, und 10 an meinen Atmega32. Dann stelle ich die IDE auf "ATmega32 External 16 Mhz" ein. Ändere denn Programmiermodus zu "Arduino as ISP" und klicke auf "Bootloader brennen"(Im Sockel ist der 328p und auf dem breadboard der Atmega32) und dann müsste das doch funktioniert, oder? Habe ich dort was falsch verstanden?

mfg jan

agmue

Es fehlt m. E. sowas:
Code: [Select]
attiny85at8.bootloader.path=empty
attiny85at8.bootloader.file=empty85at8.hex
attiny85at8.bootloader.tool=arduino:avrdude

Das merkst Du aber spätestens, wenn die IDE meckert.

Wenn der ATmega32 auf "externer Taktgeber" steht, müßte auch noch Pin9 an XTAL1.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

xJan45x

Es fehlt m. E. sowas:
Code: [Select]
attiny85at8.bootloader.path=empty
attiny85at8.bootloader.file=empty85at8.hex
attiny85at8.bootloader.tool=arduino:avrdude
Das merkst Du aber spätestens, wenn die IDE meckert.
Also ich muss das dann nur anpassen
mega32-16.bootloader.path="C:\Users\Jan\Documents\Arduino\bootloaders\"? Oder welcher Path muss da rein?
mega32-16.bootloader.file=atmega32.hex(Noch nicht im Internet gefunden)
mega32-16.bootloader.tool=arduino:avrdude

Aber wenn ich das so mache wie ich es eben beschrieben habe

Stelle die IDE auf "Uno" und lade das Arduino ISP Sketch hoch(Im sockel ist ein Atmega328p). Nachdem das fertig ist schließe ich die Kabel(RESET, SCK, MISO, MOSI) an mit denn Digitalen Pin 13,12,11, und 10 an meinen Atmega32. Dann stelle ich die IDE auf "ATmega32 External 16 Mhz" ein. Ändere denn Programmiermodus zu "Arduino as ISP" und klicke auf "Bootloader brennen"(Im Sockel ist der 328p und auf dem breadboard der Atmega32) und dann müsste das doch funktioniert, oder? Habe ich dort was falsch verstanden?
funktioniert das aber oder?

Mfg jan.

agmue

funktioniert das aber oder?
Wenn der IDE der ATmega32 bekannt wäre, dann würde das eventuell unter Berücksichtigung zusätzlich von Pin9 so funktionieren, vermute ich zumindest.

Wenn Du aber die Boards.txt erweitern mußt, dann sind da noch mehr Dinge notwendig. Es gibt jemanden, der sich durchgebissen hat: Neue MCU und Pin Mapping

Recht langes Thema, aber mit happy end  :)
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Go Up