Forum: Mikrocontroller und Digitale Elektronik Arduino UNO -> ATMega8


von Matthias P. (matthias_p65)


Lesenswert?

Hallo zusammen,

ich habe jetzt schon einige Zeit mit Suchen verbracht, aber inzwischen 
bin ich mehr verwirrt, als das ich eine Idee hätte, wie ich folgendes 
bewerkstelligen kann:

Ich habe ein Arduino UNO Board, mit dem ich eine kleine Schaltung auf 
einem Steckbrett aufgebaut habe.

Nun möchte ich diese Schaltung mit einem ATMega8 auf Lochraster aufbauen 
und das Arduino Programm auf den ATMega8 bringen. Geht das überhaupt? 
Und wenn ja wie?
Bisher habe ich direkt mit avr-gcc, avrdude und ISP gearbeitet.

Freue mich auf einen Schubser in die richtige Richtung

Gruß
Matthias

von Marius P. (marius_p)


Lesenswert?

Zuerst musst du den Bootloader auf den mega 8 brennen.
Den findest du im Hardware von Arduino.
!!! Du musst wirklich den für den atmega8 und nicht für einen anderen 
nehmen, sonst gehts nicht. !!!

Du kannst das Arduino ISP Sketch draufladen und dann mit AVRDUDE 
flashen.
Über Arduino mit " Burn Bootloader " gings bei mir nicht, ich habs zum 
schluss mit dem mysmartusb light (15€) gemacht.
Dann einfach gnd, vcc und tx und rx verbinden oder den mega 8 ins 
Arduino board einsetzen und normal draufladen.
Du musst aber bei board ng oder older auswählen, weil nur bei denen der 
atmega8 eingetragen ist.

von Matthias P. (matthias_p65)


Lesenswert?

Danke für die schnelle Antwort. :)

Nur damit ich das richtig verstehe:

1) Arduino als ISP verwenden (ISP Sketch verwenden)
2) Atmega8 mit Standard ISP beschalten
3) ATMega8 Bootloader mit Arduino ISB brennen
4) Arduino board RX/TX mit ATMega8 TX/RX verbinden und Programm 
hochladen

Richtig?

von Marius P. (marius_p)


Lesenswert?

3) jep, sollte mit avrdude recht gut gehen.
(du kannst auch irgendeinen anderen ISP programmer nutzen wenn du einen 
rumliegen hast)
4) jap, entweder den Atmega328p rausnehmen und mit juper Kabeln den 
Atmega8 dranhängen oder den Atmega8 gleich dort reinsetzen wo der 
Atmega328p war. (richtig rum reinstecken, auf die Kerbe auf einem Ende 
achten !)

Also stimmt eh wie du es gesagt hast, ansonsten viel spaß noch :)

von Matthias P. (matthias_p65)


Lesenswert?

Ich habe die SMD Variante, kann den 328 also nicht rausnehmen, sollte 
aber trotzdem so gehen, oder?

von Marius P. (marius_p)


Lesenswert?

Uh, naja, ausser Schritt 4.
Der Computer würde versuchen auf beide Atemags ein Programm auf den 
Bootloader zu bringen und beide würden antworten.
Das kann eigentlich nur Fehlermeldungen bringen usw.
Du kannst das Programm aber normal mit einem usb/seriell wandler auf den 
bootloader bringen.

von Matthias P. (matthias_p65)


Lesenswert?

Soweit so gut. Bootloader brennen hat geklappt. Sagt jedenfalls die 
Arduino IDE.

Das Programm über den Bootloader seriell brennen klappt nicht, ich 
bekomme stets die Meldung:

avrdude: stk500_getsync(): not in sync: resp=0xfc

Ich habe einen USB-Seriell Adapter verwendet und die Leitungen RxD, TxD 
und GND mit dem ATMega verbunden. Den ATMega habe ich normal über 5V 
versorgt und mit einem 16Mhz Quarz betrieben.

In Arduino habe ich als Board Arduino NG or older w/ ATmega8 
aingestellt.

Weiss da jemand weiter?

von Stefan F. (sfrings)


Lesenswert?

Vielleicht kommt die Software mit den USB-Seriell adapter nicht klar.

Du kannst den externen AVR parallel zum SMD Chip des Arduino Boardes an 
Rx und Tx anschließen. Dann sorgst DU noch dafür, dass der Reset Pin des 
SMD hips permanent aktiv ist, dann sind dessen Rx/Tx Leitungen ständig 
inaktiv.

von Matthias P. (matthias_p65)


Lesenswert?

Ldier bin ich zu keinem Ergebnis bekommen.

Ich bekomme stets die Meldung

avrdude: stk500_getsync(): not in sync: resp=0x00

Ich bin auch hiernach vorgegangen

http://arduino.cc/en/Tutorial/ArduinoToBreadboard

Das hier habe ich auch probiert:

http://electronics.stackexchange.com/questions/30999/how-can-i-fix-an-avrdude-not-in-sync-error-when-programming-arduino-via-usb-to-s

> Dann sorgst DU noch dafür, dass der Reset Pin des
SMD chips permanent aktiv ist

Ist er das nach der Schaltung in erst genanntem Link nicht sowieso?

Mir kommt es so vor, als ob der Bootloader nicht funktioniert, auch wenn 
die ArduinoIDE behauptet der sei korrekt installiert worden.

Weiterhin ist mir nicht ganz klar, ob ich den USB-nach-seriell-Adapter 
direkt an die RX/TX Leitungen des ATMega8 anschliessen kann. Ist da 
nicht ein MAX232 vonnöten?

von Michael (Gast)


Lesenswert?

Matthias P. schrieb:
> Den ATMega habe ich normal über 5V versorgt und mit einem 16Mhz Quarz
> betrieben.
Hast du den 16MHz Quarz nur angeschlossen oder auch als Taktquelle 
aktiviert?

von Matthias P. (matthias_p65)


Lesenswert?

Nicht explizit. Ich habe nur den Bootloader wie hier beschrieben:

http://arduino.cc/en/Tutorial/ArduinoToBreadboard

auf den Mega8 gebrannt.

von Matthias P. (matthias_p65)


Lesenswert?

So, ich hab's nochmal durchgekaspert und den Bootloader per ISP manuell 
auf dem ATMega8 installiert. Fuses habe ich dann auch mal für den 16MHz 
Quarz gesetzt.

Ich kann weder direkt per USB-Seriell-Adapter noch per Arduino Board den 
Sketch über den Bootloader installieren. Es läuft immer auf einen 
Timeout oder bekannte Fehlermeldung hinaus.

Ich hake das hiermit ab und werde künftig den altbekannten Weg über 
avr-gcc, avrdude und isp gehen.

Dank trotzdem an alle für eure Hilfe.

PS: Will jemand ein Arduino UNO haben?

von Matthias P. (matthias_p65)


Lesenswert?

Warum sagt mir eigentlich keiner, daß ich das Hex File, welches aus
Arduino rausfällt auch manuell per ISP brennen kann und den Bootloader 
gar nicht brauche? ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.