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.
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.
Theseus:
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?
xJan45x:
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.
Theseus:
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
Atmega32 kenne ich nicht, aber ATtiny85, sollte genauso funktionieren.
xJan45x:
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.
agmue:
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
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?
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
xJan45x:
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?
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
Ich habe einfach mal die Standard IDE-Dateien gegen die Dateien ausgetauscht (vorher Sicherheitskopie) und schon kannte die IDE den ATmega32. Man muss etwas feinfühliger vorgehen, damit sie nicht die normalen Arduinos dabei vergisst.
Ich habe einfach mal die Standard IDE-Dateien gegen die Dateien ausgetauscht (vorher Sicherheitskopie) und schon kannte die IDE den ATmega32. Man muss etwas feinfühliger vorgehen, damit sie nicht die normalen Arduinos dabei vergisst.
Hallo nochmal!
Ich habe nun in meiner IDE die ganzen Boards. Ich hätte noch 3 Fragen wäre echt cool wenn du mir da auch nochmal helfen könntes:
Muss das Arduino ISP Sketch auf denn Atmega328p geladen werden der auf denn UNO im Sockel sitzt?
Muss man das in etwa so machen:
UNO Board auswählen und AVRISP mkII und richtigen Port
Arduino ISP Sketch auf denn Atmega328p(Der auf dem Sockel des UNO ist, Oder muss garkein Sektch hochgeladen werden? Und somit auch kein Prozessor im Sockel des UNOs stecken) hochladen
RESET, MOSI, MISO und SCK anschließen an denn Atmega32.
Board auf ATMega32 wählen und Clock auf 16 Mhz external(BOD 2.7V)
Das ISP-Sketch kommt auf den 328 des Unos. Der wird mit dem Atmega32 verbunden. Der Uno arbeitet dann als ISP-Programmierer.
Ob die gezeichnenete Grafik richtig ist, weiß ich nicht. Aber solange man keine Kurzschlüsse baut oder völlig abwegige Pins verbindet, kann nicht viel kaputt gehen- es funktioniert höchstens nicht.
Vom Eindruck her, würden mir Abblockkondensatoren fehlen. Falls der 32 nicht auf internen 8Mhz-Oszillator steht und so weiterhin laufen soll, fehlt ein Quarz. Ich würde mich an Schaltungen für den Stand-Alone 328 orientieren (Beispiel).
Theseus:
Das ISP-Sketch kommt auf den 328 des Unos. Der wird mit dem Atmega32 verbunden. Der Uno arbeitet dann als ISP-Programmierer.
Ob die gezeichnenete Grafik richtig ist, weiß ich nicht. Aber solange man keine Kurzschlüsse baut oder völlig abwegige Pins verbindet, kann nicht viel kaputt gehen- es funktioniert höchstens nicht.
Vom Eindruck her, würden mir Abblockkondensatoren fehlen. Falls der 32 nicht auf internen 8Mhz-Oszillator steht und so weiterhin laufen soll, fehlt ein Quarz. Ich würde mich an Schaltungen für den Stand-Alone 328 orientieren (Beispiel).
OKay danke.
Ich wiederhole nochmal nur damit ich das auch richtig verstehe.
Auf das UNO Board kommt ein ATMega328P auf diesen Lade ich das Arduino ISP Sketch.
Dann stelle ich auf "Arduino as ISP" und das Board auf "ATMega32" und denn Clock auf "16 mhz external"
Schließe alle Kabel an(Also, 13, 12, 11 und 10 und diese dann an SCK, MISO, MOSI, RESET)
Brenne denn Bootloader
Und der Atmega328p der auf dem UNO Board ist, ist so zu sagen nur der "Treiber" für das ISP also wenn ich Burnbooter mache wird am Atmega328p nix geändert oder so, oder?