Hallo Leute ich habe ein Problem und benötige mal eure Hilfe.
Ich habe mir 4 Atmega328-PU bestellt und wollte damit eine Schaltung aufbauen und programmieren.
Für die Schaltung brauche ich zwar nur einen aber das ist ja auch erstmal egal.
Da ich noch wenig Erfahrungen au diesem Gebiet habe hab ich mich erstmal ausführlich belesen.
Zum programmieren benutze ich einen Arduino Uno.
Eigenartigerweise konnte ich auf den 1.einen Bootloader (wobei ich mir nicht sicher bin ob ich diesen benötige) installieren und bei allen anderen geht das nicht und ich bekomme die Fehlermeldung :
avrdude: stk500_recv(): programmer is not responding
Auf eine Seite im netz stand das man für die Programmierung eines externen Atmega auf diesem keinen Bootloader braucht.Das verrückte ist nur das ich auf den Atmega mit BL den Blinkskech übertragen kann und bei allen andern nicht.
Die Atmega sind alle samt nagelneu.Kann es sein das die alle defekt sind oder stelle ich mich mal wieder zu dusselig an?
Mein Aufbau
Ich habe nun den Atmega auf das breadbord gesteckt 16 MHZ Quarz zwischen 9 und 10 mit 22p nach Masse angeschlossen. Einen 10 K widerstand an von Pin 1 nach Masse
Pin 22 und 7 zum 5V Aduino GND an 22 und 8
für Bootloader flashen :MC auf Arduino gesteckt Pin 10 nach 1 am Atmega 11 nach 17 ,12-18 & 13-19
Sketch:Arduino ISP
Programmer:Arduino as ISP
Board:
Atmega328 on Breadboard bzw.
ArduinoDuemilanove w/ Atmega328 bzw.
Arduino Nano w/ Atmega328
Prozessor Atmega 328
Für Sketch flashen:
MC entfernt RX nach Pin 2 TX nach Pin3 (auch mal getauscht) und Reset nach Reset
Ich denke, hier verwechselst du einiges.
Um den Atmega mit dem Uno as ISP zu Flashen, brauchst du RX und TX nicht.
Da nimmst du ISP.
Arduino ISP
Um RX (D0) und TX (D1) zu verwenden, benötigst du einen USB-Serial-Wandler.
z.B. USB-Serial-Wandler
Auch benötigst du auf dem Steckbrett noch Keramikkondensatoren 100nF von +5V gegen GND, wie im angehängten Bild.
hi,
wenn Dein UNO einen gesteckten 328er hat, kannst Du auch einfach diesen programmieren und dann runternehmen und einen von Deinen neuen drauf, bootloader und weitermachen...
gruß stefan
Prinzipiell brauchst du keinen Bootloder, wenn du per ISP flasht und nicht über die serielle Schnittstelle - ABER bei der Installation des Bootloaders werden auch die Fuses gesetzt. Das muß einmalig geschehen.
Die IDE kannst du mit verschiednenen Files noch aufbohren, damit sie mehr Controller unterstützt und das dann wahlweise mit Quarz oder internem Takt.
Stellvertretend ist das hier für die Tinys erläutert:
Bei Atmegas muß in Boards.txt jeweils noch was eingefügt werden.
Das sieht dann so z.B. aus:
##############################################################
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.maximum_data_size=2048
atmega328bb.upload.speed=57600
atmega328bb.bootloader.tool=arduino:avrdude
#atmega328bb.bootloader.tool=avrdude
atmega328bb.upload.tool=avrdude
atmega328bb.bootloader.low_fuses=0xE2
#atmega328bb.bootloader.low_fuses=0xFF
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
#atmega328bb.build.core=arduino:arduino
atmega328bb.build.core=arduino
#atmega328bb.build.variant=arduino:standard
atmega328bb.build.variant=standard
###Experimental name:
atmega328bb.build.board=AVR_BARE
##############################################################################
atmega88.name=ATmega88
atmega88.upload.protocol=arduino
atmega88.upload.maximum_size=7168
atmega88.upload.speed=19200
atmega88.bootloader.low_fuses=0xe2
atmega88.bootloader.high_fuses=0xdf
atmega88.bootloader.extended_fuses=0x00
atmega88.bootloader.path=atmega88
atmega88.bootloader.file=atmega/ATmegaBOOT_88_m88.hex
atmega88.bootloader.unlock_bits=0x3F
atmega88.bootloader.lock_bits=0x0F
atmega88.build.mcu=atmega88
atmega88.build.f_cpu=8000000L
atmega88.build.core=arduino
atmega88.build.variant=standard
##############################################################
In so einem Block steht oben der Name, mit dem man in der IDE dann das Board auswählt, dann kommt der abzüglich Bootloader noch verfügbare Speicherplatz im Controller, die Uploadgeschwindigkeit per seriell, die Fuses, die Quarzfrequenz (braucht der Compiler damit z.B. 1000 milis dann auch 1 Sekunde sind, die individuelle Hardware-ID, Ort und Name des Bootloaders usw.
man sollte sich immer die alte Boards.txt irgendwo sichern, ehe man dran rumfummelt. Prinzipiell ist die bei einer Neuinstallation wieder da, aber wenn man so nach und nach mehrere Dutzend Controller da eingefügt hat, ist das schon herb, wenn man sich das "zersägt"
Ok ...dann schau ich mal nach 100 nf Kondensatoren und versuch´s noch mal.
Die Seite hatte ich auch schon besucht.Nur sind da ja auch die Kondensatoren nicht zu sehen.
Man lernt halt immer noch was dazu.
Bei deinem Kommentar am ende währe mir fast der Kaffe aus der Hand gefallen.Der ist echt schön.
Vielen dank mal schauen ob es jetzt klappt.
Ich kann zwar keine näheren Angaben zur Behebung möglicher Fehler machen - aber mir sind hier zwei Dinge aufgefallen (oder waren das nur Schreibfehler?):
Im Titel (und im Text) lese ich immer AT Mega 328-PU ... bisher habe ich aber in anderen Beiträgen den harten Hinweis gelesen, dass es ein AT Mega 328P-PU sein muss. Ist hier vielleicht schon etwas faul?
Einen 10 K widerstand an von Pin 1 nach Masse
Ähm, muss der nicht an PLUS gebracht werden?? Mit einem Anschluß nach Masse wird dat nie nix... denke ich mal. Oder waren es tatsächlich nur Dreckfuhler?
darkangel_:
Ok ...dann schau ich mal nach 100 nf Kondensatoren und versuch´s noch mal.
Die Seite hatte ich auch schon besucht.Nur sind da ja auch die Kondensatoren nicht zu sehen.
Man lernt halt immer noch was dazu.
Bei deinem Kommentar am ende währe mir fast der Kaffe aus der Hand gefallen.Der ist echt schön.
Vielen dank mal schauen ob es jetzt klappt.
Die Kondensatoren sind auf sehr vielen Tutorials nicht vorhanden, sind aber zur Entstörung wichtig.
Du musst aber darauf achten, wenn du nicht über ISP flashst, benötigst du den Bootloader.
Wie hast du denn den Atmega geflasht, auf dem der Blinksketch läuft?
Hallo Eisbär jetzt bin ich etwas verwirrt.Ich kann also den MC 328 rausnehmen einen anderen von den neuen 328er nehmen , den einstecken und gleich mit dem arduino uno programmieren ohne Breadboard ?
Kann ich auch gleich den Sketch übertragen und den 328 zurück in meine Schaltung auf den Breadboard stecken?
darkangel_:
Hallo Eisbär jetzt bin ich etwas verwirrt.Ich kann also den MC 328 rausnehmen einen anderen von den neuen 328er nehmen , den einstecken und gleich mit dem arduino uno programmieren ohne Breadboard ?
Kann ich auch gleich den Sketch übertragen und den 328 zurück in meine Schaltung auf den Breadboard stecken?
Dazu muss aber ein Bootloader drauf sein.
Hallo Rudi
du hast recht der Wiederstand ist auch an + und das P hab ich wohl unterschlagen.
Ist aber auch verdammt klein geschrieben und mein letzter Sehtest ist auch schon ne Weile her.
Falls du Gefallen daran finden solltest, Schaltungen ohne den Arduino, mit Controllern "zu Fuß" aufzubauen, dann besorge dir den USBasp, oder einen Clone davon. Dann brauchst du den UNO nicht als ISP-Programmer "missbrauchen". Der USBasp wird von der Arduino IDE bereits unterstützt, es fällt eine Fehlerquelle beim Upload weg und wenn man geduldig ist und 3-4 Wochen Zeit hat, kostet ein Clone aus China unter 2€
Dazu dann noch einen 10 auf 6 Adapter und man ist auf Alle Eventualitäten vorbereitet. Auch ein Arduino, der sich nicht mehr ansprechen lässt, kann in den allermeisten Fällen so wiederbelebt werden 
HotSystems:
Die Kondensatoren sind auf sehr vielen Tutorials nicht vorhanden, sind aber zur Entstörung wichtig.
Du musst aber darauf achten, wenn du nicht über ISP flashst, benötigst du den Bootloader.
Wie hast du denn den Atmega geflasht, auf dem der Blinksketch läuft?
Das ist schon eine weile her und ich habe zwischendurch immer wieder andere Einstellungen in der Arduino Software versucht aber der Aufbau auf dem breadboard war so wie du es beschrieben hast nur ohne die
Kondensatoren.
Ein Elko zwischen 10 und 47µF zusätzlich zum 100n KerKo am Controller kann ebenfalls nie schaden. Es sind Centbeträge, aber die Schaltung arbeit zuverlässig und stabil.
darkangel_:
Das ist schon eine weile her und ich habe zwischendurch immer wieder andere Einstellungen in der Arduino Software versucht aber der Aufbau auf dem breadboard war so wie du es beschrieben hast nur ohne die
Kondensatoren.
Damit kannst du dann, richtige Verdrahtung vorrausgesetzt, den Bootloader oder auch den Sketch per ISP flashen.
darkangel_:
Hallo Eisbär jetzt bin ich etwas verwirrt.Ich kann also den MC 328 rausnehmen einen anderen von den neuen 328er nehmen , den einstecken und gleich mit dem arduino uno programmieren ohne Breadboard ?
Kann ich auch gleich den Sketch übertragen und den 328 zurück in meine Schaltung auf den Breadboard stecken?
Na klar kannst du den vom UNO runter nehmen, es sei denn der UNO ist eine SMD Variante.
Als erstes muss der Bootloader drauf, sonst klappt es mit dem Sketch Upload nicht.
Dann kannst du wie gewohnt mit dem UNO auf dem neuen Atmega 328 Sketche Uploaden.
Wenn aber der Atmega auf eine Platine aufgelötet wird (oder auf dem Sockel drauf kommt), würde ich ein USBasp aus China empfehlen, fals ein 10 Poliger Stecker dabei sein sollte, einfach ein Adapter auf 6 Poligen für 1€ dazu bestellen.
Ach ich bin ein Trottel hab die ganze Sache falsch verstanden. Ich hab den isp Sketch au mein Uno gespielt in der Annahme ich spiele auf den externen Atmega damit den Bootlader. Dann hab ich einen neuen Sketch geöffnet und auf hochladen geklickt. Damit dann den ISP Sketch au dem Uno wieder überschrieben.Dabei hätte ich doch nur auf Hochladen mit Programmer klicken müssen.
Na vielleicht hilfst ja jemand der ähnliche Probleme und Anfänger ist so wie ich.
Dank an alle die mir geholfen haben und frohe Ostern