PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino-Bootlader für ATMega16/32



oderlachs
07.07.2013, 09:01
Ja ich muss mal hier fragen, da ich in englishsprachigen ArduinoForen, ein wenig (zu) dumm aus der "EnglishSprache" schaue ;)

Ich habe einen MMduino UNO (http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=1166)der poln. Firma Propox (http://www.shop.propox.com/index.php?d=produkt&id=2899) und möchte den mit einem ATmega16/32 DIL40 betreiben, darum wurde er auch gekauft. Nun habe ich schon Tagelang, na besser Stundenlang , alles probiert was ich den Anleitungen dazu entnehmen konnte ohne Erfolg. es geht mir darum vorhandene µCs zu verbauen. Die Programmierung sollte auch seriell passieren, weil das später per RF oder IR geschehen soll, um das Gerät in wetterdichtem Gehäuse programmieren/abfragen kann.

Die Bord.txt habe ich geändert, nach denm Angaben der jeweiligen Forenbeiträge, ohne Erfolg. Muss noch mehr in der ArduinoIDE geändert werden?
Wer damit schon Erfolg hatte, den bitte ich doch dankbar um Hilfe.

Gruss

Gerhard

Nachtrag 1: Später soll mit dem Gerät ein alter Lappy( Win98 ) arbeiten, kennt jemand Software die unter Win98 noch Hex-Dateien seriell übertragen kann.

Nachtrag 2: Hier wird beschrieben, (http://fritzing.org/projects/the-atmega32l-programming-the-beast/) komme nicht so ganz klar mit dem Englischen

Searcher
07.07.2013, 10:07
Welchen µC konkret nutzt Du denn nun, und hast Du da schon den Bootloader drauf geflashed?

Gruß
Searcher

oderlachs
07.07.2013, 10:36
Atmega32 ohne BL , weil es ja nicht klappt. Den BL kann ich per ISP auf dem Propox-Board mittels USBASP oder USBTinyISP flashen, bzw als vorhandene HEX per STK500 den µC direkt auf dem STK brennen.

Gerhard

Searcher
07.07.2013, 11:52
Mir ist noch nicht klar, wo das eigentliche Problem liegt. Ich geh mal davon aus, das Du auf dem MMduino UNO den ATmega32 gesteckt hast und dann über ISP den Bootloader drauf geflashed hast? Den richtigen?

Danach die Fuses gesetzt, damit der Bootloader arbeiten kann? Was klappt nicht?

Gruß
Searcher

joar50
07.07.2013, 12:30
Hallo,
wenn ich dich richtig verstehe, willst du auf einen ATMEGA32 einen Arduino Bootloader flashen.
Weiß nicht ob das möglich ist, da mir kein Arduino Bootloader für ATMEGA32 bekannt ist. Du wirst nur einen
"freien" Bootloader fläshen können, ob dann die Arduino-IDE noch funktioniert ist fraglich.

oderlachs
07.07.2013, 17:48
Genau Joar50 , so ist das gemeint. Es geht auch im Grunde so mit der Arduino-IDE, ich glaube ja nicht jeden Forenbeitrag, aber es ist gewiss das es geht. Ich bin ja wie schon gesagt nur zu dähmlich die englishen Beiträge richtig zu deuten/zu verstehen.
In der Board.txt Datei in der Arduino IDE werden die entsprechenden Konfigurierungen zu den Boards/µC festgelegt und in den Pinout Dateien die Pins der jeweilgigen CPU, also µC, festgelegt. ich komme da nur nicht so recht mit den Zusammenhängen zurecht. Habe mir eine Arduino-IDE installiert die nur erst mal dafür da ist, die/den Bootloader zu brennen.
Ich denke das ich da einen grundlegenden Fehler irgendwie mache und diesen nicht erkenne. Darum habe ich mal nachgefragt ob schon wer anderes damit gearbeitet und Erfolge dabei hatte.

Gruss

Gerhard

joar50
08.07.2013, 10:49
Hallo,
habe mich bis jetzt nur mit dem Arduino mit ATMEGA328 beschäftigt.
Meines Wissens nach liegen die vorhandenen Bootloader im arduino-xxx/hardware/arduino/bootloaders- Verzeichnis als .hex Datei in den entsprechenden Unterverzeichnissen. Bei mir Version 1.0.1.
Da gibt es aber keine für ATMEGA32. Daher ist mir unklar welchen Bootloader du verwenden willst.
Gib doch mal einen Link von einer der englischsprachigen Seiten an. (Bin auch nur ein DDR-Kind mit 2 Jahren Englisch in der Schule und einem gut gehendem Wörterbuch)

oderlachs
08.07.2013, 11:11
Hallo joar50 !
Freut mich , dass Du Dich damit beschäftigst, ich möchte Dir aber keine unnötige Arbeit mit meiner Fragerei bereiten. Ja ich kenne mich eigendlich ganz gut zum Thema Arduino aus. Für den Atmega32 (http://retrointerfacing.com/?p=30) Bootloader(TUTUT) (https://sites.google.com/site/qeewiki/friends-tutorials/hexskews-atmega32l-bootloader) wird der modifizierte ATmega168 BL verwendet. Als erstes wird die Board.txt geändert, dann muss die Arduino Pin Datei geändert werden, da muss ich mich noch besser mit befassen.

Mit den ATmega8/168/328 ist alles kein Problem. Ich habe es geschafft sogar die Arduino BL auf µC zu brennen, die auf dem STK500 stecken, ebenfalls lassen sich diese Mittels Arduino-IDE auch seriell auf dem STK programmieren, mann muss nur immer vorher den STK500-RESET drücken.
Leider bin ich zZt nicht in der Lage mich damit kontinuierlich hintereinander zu befassen, es fehlt einfach die Zeit momentan..

Gruss und Dank

Gerhard

PS: Hier ein weiterer LINK (http://www.avr-developers.com/corefiles/index.html)

joar50
08.07.2013, 11:33
Hallo,
danke für die Links. Ist ja eine interessante Sache. Werde mich mal damit beschäftigen und einen Versuchsaufbau mit ATMEGA32 auf einem Steckbrett testen.
Wird natürlich heute nichts mehr. Ich schreibe sobald ich mehr weiß.
Evtl. kann dir ja auch einer der Spezialisten hier im Forum weiter helfen.
Sollte das Thema nicht von allgemeinem Interesse sein, kannst du mich auch per PN erreichen.

Was mir gerade noch einfällt, hast du beim ATMEGA32 die Fuses entsprechend den Angaben in der Boards.txt geändert?

oderlachs
08.07.2013, 14:46
Nun habe ich mich erst mal generell mit dem Thema Bootloader ausserhalb von Arduino & co. befasst. In Bascom gibt es ein Beispiel das ist aber grösser 4k und das kann ich mit meiner DemoVersion nicht verarbeiten.
Es muss doch irgendwie erst mal zu schaffen sein auf einen ATmega32 oder 16 einen BL zu flashen, auch unabhängig von Arduino. Das die Hardware ansonsten intakt ist , zeigt ja das ich ATmega8,168,328 ohne probleme auf dem STK mit BL flashen kann, oder diese auch auf dem MMDuino von Propox(Pl). Nur eben die beiden 40 Beiner lassen sich davon nicht überzeugen....
Muss mal wieder einen tag aussetzten , Gedanken ordnen.. ;)

Gruss und Danke fürs Mitmachen bei der Lösung

Gerhard

joar50
08.07.2013, 16:01
Leider auch wieder in englisch, aber schau mal hier (http://www.procyonengineering.com/embedded/avr/bootloader/index.html).
Auch hier (http://www.mikrocontroller.net/articles/Bootloader#AVR) gibt es etliche Links und Erklärungen.

oderlachs
08.07.2013, 17:25
Also auf dem ATmega32 habe ich mit Bascom einen BL brennen können, auch das Testprogramm kann ich mit dem Bascom BL Programmer hochladen auf das STK500/ATmega32 und macht auch das was es soll. Die oben im Link(1) aufgeführten BL funzen nicht..(bei mir).
Joar ich schreib Dich mal per mail an OK ?

Gerhard

joar50
08.07.2013, 19:48
Hallo,
Du kannst mich gern per Mail anschreiben. Hatte ich ja schon gesagt.
Antwort kommt aber erst morgen Nachmittag, frueher wird es nichts.
Antworte dir jetzt vom Smartphone.

joar50
09.07.2013, 15:42
Hallo,
du hast Post

oderlachs
09.07.2013, 15:55
Danke Joar !
Aber ich möchte mal hier kundtun, dass ich es endlich geschafft habe einen Atmega32 mit einem ArduinoBootloader zu versehen und erste Testprogramme laufen schon. Man muss ein bischen "trixen" mit der Reset-Taste, meist ist die vom Arduino verwendete Resetanschaltung auf Protoboards oder Entwicklerboards(STK500 u.ä.) nicht vorhanden.
Auf jedenfall macht sich aus einem Olimex-P40-USB (https://www.olimex.com/Products/AVR/Proto/AVR-P40-USB/) dann leicht ein "Ardumega" der wenig kostet, vor allem für denjenigen, wer mit Leiterplattenherstellung und SMD Bestückung, egal aus welchem Grunde auch immer, auf "Kriegsfuss" steht.
Viele Beispiele aus dem Web gehen (bei mir) gar nicht, wer weiss auch warum, ich werde meine "Mixture" aus den verschiedenen Anleitungen zusammenfassen und zur Verfügung stellen , falls wer Bedarf hat...

Gerhard

Atmega16 und 644 ist noch nicht getestet durch mich...nach meinen Urlaub. Ist zu heiss jetzt ;)

Nachtrag: Den "Resettrick" kann man umgehen, wenn vom USBChip bzw RS232 folgende Nachrüstung von 2 Bauteilen zum RESET-Pin des µC gemacht wird:
Schaltbildauszug: von Arduino2009 (c) 25985

Das Projekt wird hier (http://robot.oderlachs.de/bootloader/bootloader.html) beschrieben (Webseite ist in Entstehung)