Ich möchte mithilfe eines Arduino Uno (nicht Originalen) einen ATMEGA328P programmieren, wie es im Guide von der Arduino Website steht.
Meine Vorgehensweise:
Den vorhanden Controller entfernt
RX und TX zum zu programmierbaren Controller verbunden
In der IDE Arduino Duemilanove -> ATmega328 eingestellt.
Programmiert -> Fehlermeldung
Ich gebe dem Controller eine Taktfrequenz von 16,000 HZ vor.
Meine Fehlermeldungen:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x47
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x47
Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.
Meine Lösungsvorschläge ohne Erfolg:
)Einsetzen des zu Programmierenden Controllers in die Fassung auf der Printplatte -> Lässt sich nicht programmieren, aber die LED bei "L" blinkt in einer gewissen Frequenz.
)Auf den richtigen COM Port geachtet und eingestellt
Ich hoffe ihr könnt mir helfen, dass ich endlich meine Controller mit Bootloader programmieren kann =)
Der Atmega328 hat offensichtlich keinen Bootloader.
Den musst du erst per ISP-Programmer flashen.
Dazu kannst du auch den Uno verwenden, aber der Atmega kommt dann auf ein Steckbrett.
Das war meine erste Vermutung, da ich selbst schon auf derartige Fehler reingefallen bin.
Aber muss nicht sein.
Teste den einfach mal, indem du den Atmega auf den Uno setzt und flasht ihn.
Wenn das geht, ok.
Dann poste doch mal eine Schaltung, wie du den Uno mit dem Atmega verbunden hast. Aus der Beschreibung oben werde ich nicht schlau. Und auch ein Foto des Aufbaus.
Wie du die 22pF am Quarz verdrahtet hast ist nicht zu erkennen. Wo ist da der GND Anschluss an den Kondensatoren?
Und es fehlen 100nF Abblockkondensatoren an den Plusanschlüssen des Atmega.
Warum nimmst du nicht die äußeren Kontakte des Steckbrettes als +5V und GND?
Der GND für die 22pF (Bei mir sind es 18pF, sollte laut Arduino Website auch passen) ist das blaue Kabel, dieses ist der GND für die Kondensatoren und den Pin 8.
Ich habe die Reihen nicht genommen, weil ich so weiß das alle Kabel für z.B 5V miteinander verbunden sind.
Sind diese 100nF Abblockkondensatoren unbedingt notwendig ?
Ich habe jetzt probiert den Bootloader zu brennen mit einer Fehlermeldung:
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Fehler beim Brennen des Bootloaders.
Kann es sein das es daran liegt das der Arduino den ich besitze "nach gemacht" ist ?
Speedcore016:
Ich habe jetzt probiert den Bootloader zu brennen mit einer Fehlermeldung:
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Fehler beim Brennen des Bootloaders.
Hast du den einen USBasp angeschlossen? Ihn gibt es für wenige Euro z.B. bei Ebay und hilft ungemein, wenn man öfters mal einen Bootloader brennen will oder über ISP programmieren will.
Speedcore016:
Der GND für die 22pF (Bei mir sind es 18pF, sollte laut Arduino Website auch passen) ist das blaue Kabel, dieses ist der GND für die Kondensatoren und den Pin 8.
Ich habe die Reihen nicht genommen, weil ich so weiß das alle Kabel für z.B 5V miteinander verbunden sind.
Ok, 18 pF sind auch ok. Ich kann aber nicht erkennen, dass beide Kondensatoren an GND liegen.
Sind diese 100nF Abblockkondensatoren unbedingt notwendig ?
Wichtig schon, aber zum Testen geht es auch ohne.
Ich habe jetzt probiert den Bootloader zu brennen mit einer Fehlermeldung:
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Fehler beim Brennen des Bootloaders.
Kann es sein das es daran liegt das der Arduino den ich besitze "nach gemacht" ist ?
Dann zeig mal ein Bild, wie du es angeschlossen hast.
Der Uno sollte auch funktionieren.
Was hast du für einen Programmer eingestellt? Du musst Arduino as ISP einstellen.
Und den Sketch ArduinoISP vorher draufladen.
Und die langen Reihen des Steckbrettes sind jeweils durchverbunden.
Wenn das Foto die komplete Schaltung darstellt dann fehlen die TX/RX Verbindungen.
Du kannst über TX/RX den Bootloder nicht brennen, das geht nur über ISP.
wenn du den neuen µC in das Uno Board steckst und über die IDE wie gewohnt nicht flashen kannst, dann fehlt ihm der Bootloader. Kannste machen was du willst, geht nicht.
letzte Chance es selbst zu machen wäre hier:
mit einem ISP Programmer wäre das Leben jedoch erheblich einfacher.
Guck mal nach einem Atmel AVR mkII. Falls es den noch gibt. Oder frage mal sschulteworker, der verkauft einen, wenn ich mich recht entsinne. Das lohnt sich wenn man öfters mal was direkt flascht oder die Fuses verstellt oder sonstwas direkt machen möchte oder muß.
Es ist mir möglich den Bootloader aufzuspielen -> Erfolgreich durchgeführt
Trotz diesem Erfolges kommt eine Fehlermeldung:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xfb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xfb
Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.
"Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu (or "ATmega328 on a breadboard (8 MHz internal clock)" if you're using the minimal configuration described below). Then upload as usual."
Wenn ich nun Arduino Duelmilanove ausgewählt habe kommt dieser Error, aber wenn ich ganz normal auf Arduino Uno bin kann ich ohne Probleme hinüber laden. Und das war der Fehler daran.