Bootloader für ATMega88

Hallo,
ich versuche gerade einen Bootloader auf einen ATMega88 zu bekommen bis ich erstmal gemerkt habe das ich dafür einen extra Loader benötige und nicht den vom Arduino Uno (hab momentan erst angefangen mit dem programmieren) jetzt habe ich zwar etwas gefunden (und zwar hier Alternate CORE files for Arduino) und habe auch die Daten in den Ordner kopiert aber in den Boards habe ich immer noch keinen Mega88. Was habe ich falsch gemacht?

Gruss

Mit einem Atmega88 anzufangen ist die falsche Wahl. Übe erst einmal mit dem Uno (328).
Deine core-files sind 6 Jahre alt, würde behaupten dass die mit der neuen IDE überhaupt nicht mehr funktionieren

Den habe ich eigentlich nur genommen weil mir der in einem anderen Forum empfohlen wurde.
Ich fang mal von vorne an: Ich habe ein paar Güterwaggons für meine Modellbahn. Die Ladung ist mit einer einfachen Platine ausgestattet die das leuchten anfängt sobald diese auf dem Gleis stehen. Das fand ich zu öde und wollte LEDs haben die faden. Ich habe das ganze dann zuerst mit einem OP und einem TL494 realisiert. Das ganze tut aber nicht so wie ich es möchte also wollte ich einen uC.
Ich habe auch schon ein Programm gefunden das ich verwenden könnte für einen ATMega32. Im besagten Forum wurde aber gesagt das der Mega32 zu groß und alt sei (ich finde zwar nicht das er als SMD zu groß ist aber nun gut) und dann wurden die Mega 48/88/168/328. Dann dachte ich da leider falsch und habe mich für den 88er entschieden (war günstiger) und habe nicht gewusst das Arduino keinen Bootloader für den 88er hat. Bezahlt sind sie aber leider schon, deswegen würde ich die auch gerne verwenden.

Das Programmieren möchte ich aber trotzdem lernen, ich möchte mich nicht immer auf anderen verlassen müssen zumal mir das auch nicht so angenehm wenn ich wegem allem fragen muss.

Und "die" aus dem anderen Forum konnten dir da nicht weiter helfen?

Also auch meine Empfehlung, fange mit einem Uno an, da hast du eine große Unterstützung.

Natürlich kannst du auch denn 88er nutzen.
Und du brauchst keinen Bootloader.
Und auch keinen Quarz.
Die alten Quellen, welche du gefunden hast, kannst du auch nutzen, zumindest Teilweise.
Aber das kann schon eine größere Baustelle werden.

Ich würde mir eine eigene boards.txt machen.
Und den 88er mit einem ISP Programmer beschreiben.

Fang mit etwas an, wo du viel Unterstützung erhälst, so wie der Uno. Wenn du damit das kannst, was du willst, kannst du es viel leichter auf den 88 umsetzen.

Eben, betreibe den Controller "nackt" und prorammiere ihn über ISP z.B. mit einem USBasp, der wird auch von der IDE unterstützt (mache ich auch so)
Wieviele Pins und welche benötigst du für dein Projekt und wieviel Platz? Vielleicht kannst du ja auch einen Atiny nehmen, der ich noch kleiner :smiley:

Grundsätzlich würde auch ich empfehlen mit einem UNO anzufangen.

Natürlich kannst du auch verschiedenste "nackte" Mikrocontroller verwenden, aber es gibt - gerade wenn du noch nicht allzu viel Erfahrung hast - dabei viele Stolpersteine auf dem Weg, die oft für Frustartion sorgen.

Du kannst dann ja später auf den ATmega88 umsteigen.

Aber wenn du gerne sofort damit anfängst, kann ich dir diese Core empfehlen:MiniCore
Damit kannst du den ATmega88 mit der Arduino-IDE programmieren. Und einen Link zu einem Bootloade für den ATmega88 gibt es dort auch (obwohl du den - wie bereits erwähnt - ja nicht unbedingt brauchst).

Predator41:
Ich habe auch schon ein Programm gefunden das ich verwenden könnte für einen ATMega32. Im besagten Forum wurde aber gesagt das der Mega32 zu groß und alt sei (ich finde zwar nicht das er als SMD zu groß ist aber nun gut) und dann wurden die Mega 48/88/168/328. Dann dachte ich da leider falsch und habe mich für den 88er entschieden (war günstiger) und habe nicht gewusst das Arduino keinen Bootloader für den 88er hat. Bezahlt sind sie aber leider schon, deswegen würde ich die auch gerne verwenden.

Die hätten dir den noch älteren Atmega8 empfehlen müssen. Der wurde auf den ersten Arduinos benutzt. Er wird standardmäßig unter “Arduino NG or older” von der Arduino IDE unterstützt. Seine Benutzung ist deshalb weitgehend problemlos. Ich habe ihn schon mehrmals benutzt.

Viele verschiede Menschen mit unterschiedlichen Erfahrungen, viele verschiedene Vorschläge.

Predator41:
Das Programmieren möchte ich aber trotzdem lernen, ich möchte mich nicht immer auf anderen verlassen müssen zumal mir das auch nicht so angenehm wenn ich wegem allem fragen muss.

Hier mein Vorschlag aufgrund meiner Erfahrungen: Nimm einen UNO, um Programmieren zu lernen, der ist weit verbreitet und gut unterstützt.

Dann verwende den UNO als Programmiergerät (in der IDE: Beispiele/ArduinoISP) und programmiere damit einen ATtiny85 oder ATtiny4313 (Atmel ATtiny 85 mit Arduino (ArduinoISP) flashen und programmieren (Arduino IDE 1.6.4)). Die sind leider in den letzten Monaten teurer geworden, aber mit denen habe ich erfolgreich gearbeitet und sie brauchen keine externe Beschaltung wie Quarz oder so.

Wenn Du verstanden hast, wie das funktioniert, kannst Du Dich an ein weniger gut unterstütztes Modell wie den ATMega88 ranmachen.

Andere Vorschläge mögen besser sein, dies ist aber der mir bekannte, bei dem ich Dich unterstützen könnte.

PS.: Ich verwende gerne den Arduino Pro Mini, der mittels CP2102 Modul eine USB-Schnittstelle bekommt.

HotSystems:
Und "die" aus dem anderen Forum konnten dir da nicht weiter helfen?

Also auch meine Empfehlung, fange mit einem Uno an, da hast du eine große Unterstützung.

Naja, nicht so sonderlich. Vielleicht habe ich es auch nicht verstanden.

nix_mehr_frei:
Eben, betreibe den Controller "nackt" und prorammiere ihn über ISP z.B. mit einem USBasp, der wird auch von der IDE unterstützt (mache ich auch so)
Wieviele Pins und welche benötigst du für dein Projekt und wieviel Platz? Vielleicht kannst du ja auch einen Atiny nehmen, der ich noch kleiner :smiley:

Ich brauche 5 Pins an denen ich je 2 grüne LEDs in Reihe betreiben möchte. Die LEDs müssen nicht extrem hell sein.
Der uC kommt auf eine 94x28mm große Platine auf der noch ein Gleichrichter, 2 SMD-Elkos und ein Spg.regler sitzen.

agmue:
Viele verschiede Menschen mit unterschiedlichen Erfahrungen, viele verschiedene Vorschläge.Hier mein Vorschlag aufgrund meiner Erfahrungen: Nimm einen UNO, um Programmieren zu lernen, der ist weit verbreitet und gut unterstützt.

Dann verwende den UNO als Programmiergerät (in der IDE: Beispiele/ArduinoISP) und programmiere damit einen ATtiny85 oder ATtiny4313 (Atmel ATtiny 85 mit Arduino (ArduinoISP) flashen und programmieren (Arduino IDE 1.6.4)). Die sind leider in den letzten Monaten teurer geworden, aber mit denen habe ich erfolgreich gearbeitet und sie brauchen keine externe Beschaltung wie Quarz oder so.

Wenn Du verstanden hast, wie das funktioniert, kannst Du Dich an ein weniger gut unterstütztes Modell wie den ATMega88 ranmachen.

Andere Vorschläge mögen besser sein, dies ist aber der mir bekannte, bei dem ich Dich unterstützen könnte.

PS.: Ich verwende gerne den Arduino Pro Mini, der mittels CP2102 Modul eine USB-Schnittstelle bekommt.

Den Arduino Uno habe ich bereits vor mir stehen. Den habe ich mir geholt nachdem ich mit dem Programmer von myAVR nicht klar gekommen bin.
Wie bereits gesagt, ist mir der uC völlig egal solange ich die LEDs schön langsam zum pulsieren bekomme.

Den Arduino Uno habe ich bereits vor mir stehen.

Fein!

Dann stopfst du die schon genannte ATMega88 Hardware Lib in deine Arduino IDE
Machst den UNO zum ISP
Und beschreibst damit den 88er.
Kein Bootloder
Kein Quarz, einfach 1MHz intern (Auslieferungszustand des 88ers)

LEDs + Vorwiderstand an die PWM Pins.

Welche Probleme plagen dich da...?

combie:
Kein Bootloder
Kein Quarz, einfach 1MHz intern (Auslieferungszustand des 88ers)

Anstelle88.menu.clock.1MHz_internal.bootloader.extended_fuses=0xfc
88.menu.clock.1MHz_internal.bootloader.file=optiboot_flash/{build.mcu}/optiboot_flash_{build.mcu}{upload.speed}{build.f_cpu}.hex

dann dies? 88.menu.clock.1MHz_internal.bootloader.extended_fuses=0xff
88.menu.clock.1MHz_internal.bootloader.file=empty/empty.hex

Wäre ja wirklich einfach :slight_smile:

combie:
Fein!

Dann stopfst du die schon genannte ATMega88 Hardware Lib in deine Arduino IDE
Machst den UNO zum ISP
Und beschreibst damit den 88er.
Kein Bootloder
Kein Quarz, einfach 1MHz intern (Auslieferungszustand des 88ers)

LEDs + Vorwiderstand an die PWM Pins.

Welche Probleme plagen dich da...?

Wollte ich gerade mal probieren und dabei kam das heraus:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0
Beim Hochladen des Sketches ist ein Fehler aufgetreten

Der 328 auf dem Uno selber funktioniert aber noch wenn ich den Blinksketch lade.

Hast Du 10µF vom UNO-Reset gegen GND? Sketch ArduinoISP auf den UNO geladen?

Am UNO den 10µF Kondensator montiert?
Wirklich "Hochladen mit Programmer" benutzt?
Der normale Upload Knopft hilft dir nicht weiter.

Wollte ich gerade mal probieren und dabei kam das heraus:

Leider sehe ich nicht die Anschlussbelegung...

dann dies?
88.menu.clock.1MHz_internal.bootloader.extended_fuses=0xff
88.menu.clock.1MHz_internal.bootloader.file=empty/empty.hex

Das Auswählen, ja, aber nicht "Bootloader brennen" drücken.

combie:
Am UNO den 10µF Kondensator montiert?
Wirklich "Hochladen mit Programmer" benutzt?
Der normale Upload Knopft hilft dir nicht weiter.
Leider sehe ich nicht die Anschlussbelegung...

Das Auswählen, ja, aber nicht "Bootloader brennen" drücken.

Ok, das ich das ISP Sketch auf dem Uno brauche wenn ich einen anderen uC bespielen will, wusste ich nicht. Habe ich mal gemacht und der Elko ist auch drin. Geht aber trotzdem nicht.
Ich habe diese Anschlussbelegung verwendet da der Mega168 laut Datenblatt dem 88 identisch ist:

Ich habe jetzt mal meine Tiny45 ausprobiert. Die lassen sich ohne Probleme bespielen.

Atmega 8/88/328 sind doch vom Pinout gleich, nimmst also vom UNO den Chip raus und steckst den 88er rein.
Bootloader brennen und schon hast nen Duemilanove.

Die Core sind auch nicht zu alt, fals es immer die aktuellsten sein müssen.

Predator41:
Ich habe jetzt mal meine Tiny45 ausprobiert. Die lassen sich ohne Probleme bespielen.

Das ist dann schon ein gutes Zeichen dafür, dass dein Aufbau grundsätzlich funktioniert.