Hallo!
Ich habe gerade angefangen mich mit arduino zu beschäftigen. Ich habe schon einige sketches geschrieben und alle haben auf meinem Duemilanove-Board funktioniert. Nun hätte ich das ganze aber gerne etwas kompakter und preiswerter. Natürlich könnte ich einfach auf ein kleineres Arduino-Board umsteigen, aber das möchte ich nicht. Ich habe viel gegooglet und bin darauf gekommen, dass man mit dem Duemilanove bootloader brennen kann. Ich habe mir danach einen atmega8-16PU besorgt. Diesen möchte ich jetzt minimal als Arduino verwenden. Wenn ich das richtig gelesen habe kann man hier den internen Oscilator des Atmega 8 verwenden anstatt einen quarz, sodass für den aufbau nur eine Spannungsversorgung und der Atmega selbst nötig ist.
Nun bin ich (vergeblich) auf der Suche nach so einem Bootloader und einer (übersichtlichen und für ziemliche Anfänger gerechten) Anleitung, wie das ganze zu bewerkstelligen ist.
Ich stelle mir vor, den bootloader zu brennen und danach die Sketches mit einem ftdi-board (https://www.sparkfun.com/products/9716) einfach wie auf das normale Arduino-Board auf den Atmega8 zu spielen.
Ich kannte bisher auch nur das Preissegment das Uwe genannt hatte.
Aber für 3 € würde ich mir das selber brennen nun wirklich nicht "antun" ...
... es sei denn ich bräuchte wirklich Stückzahlen.
Ja genau, da ich aus österreich bin ist es schwerer für mich an vorgebrannte atmegas zu kommen. Den atmega 8 (leer und neu) bekomme ich für 2,50 € in einem geschäft. alles andere müsste ich für über 8 € plus versandkosten bestellen
EDIT: Das bootloaden hat dank der ersten 2 Antworten funktioniert (Ardoino schreibt: DONE BURNING BOOTLOADER)
Jetzt versuche ich mal das Blink-Programm mit dem FTDI board auf den atmega 8 zu bekommen!
EDIT: JAAAAAAAAAAAAAAAAAAAAAAAA! Die led Blinkt!!!! DANKE, so jetzt noch ein zweites Testprogramm
Noch ein Problem. Der Bootloader ist schon auf dem atmega 8, das blink-programm habe ich mit dem sparkfun ftdi board upgeloaded (einfach RX und TX vom atmega und ftdi verkabelt).
Jetzt läuft das BLINK-Programm auf dem Atmega 8, aber ich möchte jetzt wieder ein programm hochladen. Aber das Blink-Programm läuft fröhlich weiter und die arduino software bricht ab. Ich denke das liegt an dem reset? Wie muss ich das ftdi mit dem atmega verkabeln, dass der atmega wieder auf neue programme wartet? Was habe ich falsch gemacht?
wieder so eine superschnelle und tolle hilfe wie vorhin wäre super! Und nochmal danke, dass das schon so ziemlich funktioniert!
Wenn der Bootloader erst mal drauf ist, kann man damit auch die Sketche neu laden. Das ursächliche Problem wird höchstwahrscheinlich, wie du schon richtig vermutet hast, die Reset-Beschaltung sein. Schau dir mal den Schaltplan vom Duemilanove im Hardwarebereich der Hauptseite an, so könntest du das für den automatischen Reset beim Programmieren nachbauen. Alternativ kannst du auch nur den entsprechenden Reset-Taster einbauen (auch im genannten Schaltplan) und jedes Mal per Hand resetten.
der atmega ist auf einem Steckbrett! Das mit dem manuellen reset habe ich bereits versucht, das heißt ich habe sobald "Binary sketch size:..." von dem arduinoprogramm gekommen ist den reset-pin kurz mit GND verbunden. danach hört die led für einige sekunden auf zu blinken (das laufende programm wird unterbrochen) aber anstatt das neue draufzuladen fangt die led wieder an zu blinken und dann kommt die fehlermeldung:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Was soll ich noch versuchen, kann es sein, dass es doch kein resetfehler ist?
Das könnte natürlich ein Fehler in deinem Drück-Timing sein. Versuche es bitte einmal, den Reset-Taster so lange zu halten, bis der Kompilierungsprozess abgelaufen ist und dann "Upload" in der Statusleiste erscheint. Dann erst loslassen.
Wenn manuelles Reset nicht hilft, stimmt da gibt es sowas (LockBits) dass der Flash-Speicher gegen Auslesen, Überschreiben, ... geschützt werden kann.
... avrdude ist dein Freund ...
nein, dass kann kein resetfehler (timingfehler) sein, ich habe jetzt den autoreset des duemilanove nachgebaut, und auch hier merkt man wie der atmega resetet wird (led hört für ein paar sekunden auf zu blinken) aber wieder die fehlermeldung:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
michael_x: leider weiß ich nicht was du meinst, ich bin leider Newbie