Forum: Mikrocontroller und Digitale Elektronik Kann ATmega128 nicht programmieren


von Torsten J. (olivegarden)


Lesenswert?

Hallo,

Kann mir jemand bei einer ATmega128-16AI Programmierung helfen? Also, 
habe einen AVR-Programmer hier (auf Basis des STK500) und alle 
notwendigen Kabel an den Chip (extern, da ISP auch nicht ging) angelötet 
(MOSI (PDI),MISO (PDO),SCK,RESET und VCC/GND per USB).

Bekomme aber in AVR-Studio immer die gleiche Fehlermeldung: ISP MODE 
ERROR (Entering programming mode.. FAILED! Leaving programming mode.. 
OK!) bzw. die Signatur: 0x00 0x00 0x00.

Kann mir jemand sagen, wo ich vielleicht einen Fehler habe oder was ich 
vergessen habe zu machen? Bitte um Hilfe.
Vielen Dank im Voraus.








Mfg

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

ISP Geschwindigkeit?!

von Torsten J. (olivegarden)


Lesenswert?

Habe alle Geschwindigkeiten ausprobiert - 1.2KHz, 4KHz, 57.6KHz, 
115.2kHz, 460.8KHz, 1.845MHz - aber bei keiner funzt es.

von Alex O. (Gast)


Lesenswert?

Hi!

Beim Atmega128 haben die in der Dokumentation eingezeichneten Pins MISO, 
MOSI und ich glaube auch SCK nicht die ISP-Funktion über, dazu sind 
andere Pins zu verwenden, die in der Dokumentation angeführt werden.

LG Alex

von Torsten J. (olivegarden)


Lesenswert?

Ja, MOSI ist beim ATmega128 PDI, MISO ist PDO und SCK und RESET bleiben 
gleich. Oder?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Genau so. Hast Du alle Spannungspins VCC, AVCC und GND angeschlossen? 
Hat der Mega128 einen Takt? Hast Du vielleicht versehentlich die Fuses 
verprogrammiert?

von weinbauer (Gast)


Lesenswert?

pen belegt?
M103 fuse?

von Torsten J. (olivegarden)


Lesenswert?

Nein, AVCC habe ich nicht angeschlossen. Kann ich dafür die gleiche 
Spannung, wie bei VCC benutzen - sprich gleich von da auch die Spannung 
für AVCC abgreifen?

Kann ich die Fuses verprogrammieren, wenn ich keinen Zugriff auf dem 
ATmega habe?

PEN ist nicht belegt. Wo schalte ich die M103 Fuse ab?

von ... (Gast)


Lesenswert?

PEN
PEN is a programming enable pin for the SPI Serial Programming mode, and 
is internally pulled high . By holding this pin low during a Power-on 
Reset, the device will enter the SPI Serial Programming mode. PEN has no 
function during normal operation.

von ... (Gast)


Lesenswert?

PDI=Pin 2
PDO=Pin 3
Reset=Pin 20

Torsten J. schrieb:
> Wo schalte ich die M103 Fuse ab?

Im AVR-Studio.

von Torsten J. (olivegarden)


Lesenswert?

Und wie schliesse ich den PEN an? Habe nen Beitrag gefunden, wo der PEN 
mit VCC direkt verbunden wird. Stimmt das?

Ja, habe Pin2 = MOSI, Pin3 = MISO, Pin11 = SCK, Pin20 = RESET, Pin21 = 
VCC und Pin22 = GND

von ... (Gast)


Lesenswert?

Schau dir im Datenblatt Seite300 und ff. Dort steht alles. Nennt sich 
dummerweise beim 128 SPI-Programming statt ISP.

von ... (Gast)


Lesenswert?


von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> Nein, AVCC habe ich nicht angeschlossen. Kann ich dafür die gleiche
> Spannung, wie bei VCC benutzen - sprich gleich von da auch die Spannung
> für AVCC abgreifen?

>Ja, habe Pin2 = MOSI, Pin3 = MISO, Pin11 = SCK, Pin20 = RESET, Pin21 =
>VCC und Pin22 = GND

Immer ALLE Versorgungspins anschliessen! Der Mega128 hat weit mehr 
Spannungsanschlüsse, als nur Pin21 und Pin22. Auch wenn AVcc nicht 
angeschlossen ist, kann der Mega kaputt gehen! AVcc muß bei 
Vcc-0.3V...Vcc liegen.

von Torsten J. (olivegarden)


Lesenswert?

Okay, werde dann jetzt alle weiteren Vcc's und Gnd's anschliessen sowie 
AVcc und Pen an Vcc

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

PEN muß nicht angeschlossen werden. Das verwirrt nur.

von Torsten J. (olivegarden)


Lesenswert?

Danke für den Hinweis. Gebe gleich Bescheid, wenn's soweit ist.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

OK.

von Torsten J. (olivegarden)


Lesenswert?

So, habe jetzt folgende Belegung:

Pin21/52/64 = Vcc USB
Pin22/53/63 = Gnd USB
Pin2 = Mosi
Pin3 = Miso
Pin11 = Sck
Pin20 = Reset

Leider keinen Erfolg mit dem Auslesen der Signatur. Immer wieder der 
gleiche Fehler mit ISP MODE ERROR.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Mach mal ein Foto vom Aufbau und einen Screenshot vom AVR-Studio.

von ruepel (Gast)


Lesenswert?

Wahrscheinlich sind die Fuses für den Takt auf extern eingestellt.
Das kann man aber dummerweise nicht ändern, da das ISP ja nicht 
funktioniert.

Vielleicht einen separaten 2 MHz Quarzoszillator (Blechbüchse mit 4 
Beinen) an XTAL1 anschließen. Dann kriegt auch die ISP ihren Takt und 
das Programmieren der Fuses könnte funktionieren.

von Torsten J. (olivegarden)


Angehängte Dateien:

Lesenswert?

Also hier die Bilder - alle Kabel sind fest verlötet und berühren sich 
nicht.

Ist es besser einen Neuen zu kaufen und den zu programmieren?

von holger (Gast)


Lesenswert?

19102010144.jpg

Sach mal gehts noch?

von Torsten J. (olivegarden)


Lesenswert?

Das Kästchen SPIEN unter dem Reiter Fuses ist bei mir grau hinterlegt 
und es ist ein Fragezeichen drin. Hat das was zu bedeuten?

von Torsten J. (olivegarden)


Lesenswert?

Wieso? Ich wollt doch erstmal nen Zugang zum ATmega bekommen.

von Torsten J. (olivegarden)


Lesenswert?

MOSI, RESET und SCK bekommen vom Programmer nur 3,3 Volt. Kann damit 
trotzdem dieser 128er programmiert werden (wie in der Beschreibung 
vermerkt) oder müssen es wirklich zwischen 4,5 und 5,5 Volt sein?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Hast du GND des Programmers mit GND des ATmega128 verbunden? Ich sehe 
nur 4 Leitungen...

Gruß,
Magnetus

von ruepel (Gast)


Lesenswert?

Torsten J. schrieb:
> Das Kästchen SPIEN unter dem Reiter Fuses ist bei mir grau hinterlegt
> und es ist ein Fragezeichen drin. Hat das was zu bedeuten?

Das hat nichts zu bedeuten, weil Dein ISP nur Müll zurückliefert, es 
aber auch bei funktionierendem ISP so ist.

Ist der Hinweis mit dem externen Takt zu abwegig?

von Torsten J. (olivegarden)


Lesenswert?

Nein, habe GND über USB gezogen. Geht das oder muss GND über den 
Programmer laufen? Denn bei diesem Programmer liefert dieser an Pin2 
keine Volt (+) und daher muss der Chip extern mit Spannung versorgt 
werden.

Habe GND beim Programmer auf Durchgang mit GND von USB gemessen und es 
ist Durchgang vorhanden - auf allen GND Pins des Programmer (4,6,8,10).

Woran kann ich erkennen, dass die Fuses auf Extern gestellt sind?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

OK jetzt wundert mich natuerlich nix mehr!
Schliess den AVR richtig an, dann wird er auch tun (sofern Du ihn noch 
nicht gekillt hast). Wenn Du sowas machen willst ("fliegender Aufbau") 
bist Du mit den DIL-Versionen wahrscheinlich besser beraten (da is 
allerdings bei 64k Schlss, aber die brauchst sowieso nich).

Du musst auch die Massen verbinden, d.h. verbinde GND von Deinem 
Programmer mit GND von Deiner USB-Speisung, sonst hat der kein 
Bezugspotential. Besser noch waere eine Speisung ueber VTARGET, falls 
Dein Programmer sowas ermoeglicht, dann brauchst Du die zusaetzliche 
Spannungsversorgung gar nicht.

So oder so, wenn Du damit experimentieren willst musst Du das Ding mal 
anstaendig in ne Schaltung einloeten, das bringt Dir so ja nichts...

Gruss,
Michael

von Torsten J. (olivegarden)


Lesenswert?

Immernoch das gleiche Bild. Also meinste, der ist hinüber?
Hatte den AVR schon in der Schaltung zu programmieren, aber da gabs auch 
nur diese Fehlermeldung. Deshalb hatte ich ihn ausgelötet und wollt ihn 
extern programmieren.

Denn manchmal lässt die Schaltung, in dem der ATmega eingebaut ist, kein 
ISP zu. Oder?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> Denn manchmal lässt die Schaltung, in dem der ATmega eingebaut ist, kein
> ISP zu. Oder?

Sicher, sicher... Die Schaltungen mit den ATmegas sind schon seeehr 
launisch!    =)

von Visitor (Gast)


Lesenswert?

Nur um wirklich sicher zu gehen :

1.) Bei deinem Programmer handelt es sich wirklich um einen ISP 
Programmer für AVR Prozessoren ?

Oder ist es evtl. ein JTAG Programmer ? (Habe solche in diesem Design 
z.B. bei SK-Tronik mal gesehen!)

2.) Wurde der Programmer im AVR Studio überhaupt erkannt oder liegt 
schon hier das Problem ?

3.) Sollte es sich tatsächlich um einen AVR kompatiblen JTAG Programmer 
handeln, so muss dieser nicht an den ISP Pin´s sondern an den 
entspechenden JTAG Pin´s (falls beim Mega128 vorhanden!) angeschlossen 
werden. Natürlich muss die JTAG Fuse aktiviert werden.

von Torsten J. (olivegarden)


Lesenswert?

Ja, der ist von SK-Tronic. Ist ein Diamex Prog-S Programmieradapter für 
AVR's.
Ist der okay?

Wenn ich mir zur Sicherheit noch nen AVR MKII besorge und dort das 
gleiche Fehlerbild kommt, ist dann der 128er hinüber oder wie schwer ist 
es, eine Signatur per AVR Studio zu bekommen?

von raketenfred (Gast)


Lesenswert?

Beim richtigen Anschluss und ohne Probleme mit Geschwindigkeit wegen 
Quarz etc, kriegst du die Signatur flott und problemlos

von Visitor (Gast)


Lesenswert?

Lt. 
http://www.srt-versand.de/elektronische-bauelementegeraete/cardtechnik/programmiergeraete/usb-isp-programmer-fuer-atmel-avr-atmega-attyni-at90.html

handelt es sich um einen ISP Programmer. Komisch finde ich halt, dass es 
auf der Seite noch einen "speziellen" Treiber zum Download steht. Hast 
du den evtl. noch nicht installiert ?

von Torsten J. (olivegarden)


Lesenswert?

Ja, habe den Treiber dafür installiert. Werd mir morgen mal den MKII 
besorgen und dann sehen, was bei dem alles geht oder nicht.

von Pete K. (pete77)


Lesenswert?

Löte mal ein paar Abblock-Kondensatoren an.

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ja funktioniert es nun oder nich?
Ich hab mal ne Platine fuer den Mega128 gemacht, die auch funktioniert 
(abgesehen vom DAC :P).

Kannst mal hier gucken:
http://viewvc.coremelt.net/viewvc/avr/avr_kurs/board/

Hab mal nen Bild der Schaltung angehaengt, das laesst sich im 
Heimverfahren herstellen. Ich denke Dein Problem ist hier, dass Du nicht 
richtig an die Sache heran gehst. Selbst wenn Du dieses "Konstrukt" zum 
Laufen bekommst was hilft es Dir?

Wenn Du keine Platinen herstellen kannst/willst, dann kauf Dir halt was 
fertiges oder fang mit einer einfachen Grundschaltung mit nem Mega88 
oder sowas an.

Greets,
Michael

von Torsten J. (olivegarden)


Lesenswert?

So, habe nen AVR MKII auftreiben können - leider immer noch dieselbe 
Fehlermeldung.

Sitze deshalb grad an nen neuem Aufbau, auf dem der 128er draufgelötet 
ist und werd dann bei Fertigstellung nen Bild von machen.

Hoffe somit, alle möglichen Fehler im Vorfeld entgültig aus dem Weg zu 
gehen.

von Torsten J. (olivegarden)


Angehängte Dateien:

Lesenswert?

So, im Anhang zu sehen der neue Aufbau, um den ATmega128 zu 
programmieren. Habe alle Verbindungen min. 3 gestestet - alle Vcc's 
sowie AVcc an Vcc USB, alle GND's an GND vom MK2, PEN über Jumper an Vcc 
möglich und die restlichen Datenleitungen (MOSI,MISO,SCK,RESET), wie in 
den Datenblättern (Chip / Programmer) beschrieben angeschlossen.

Leider immer noch dieselbe Fehlermeldung, wie schon zuvor. Ist der 128er 
hinüber oder doch noch nen C zwischen XTAL2 (23) und XTAL1 (24) klemmen?

Ist dann der C wirklich erforderlich, um wenigstens ne Sigantur zu 
bekommen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nochmal zum Mitschreiben: Der Controller benötigt zwingend einen Takt. 
Wenn Du also versehentlich beim ersten Programmieren die Fuses umgebogen 
hast, musst Du einen externen Takt von >1Mhz an den XTAL1-Pin anlegen 
und dann kannst Du mit einer ISP-Frequenz von kleiner 250kHz auf den 
Controller zugreifen. Dies gilt aber nur, wenn Du den Controller richtig 
angeschlossen und inzwischen nicht gegrillt hast. Alternativ nimm bitte 
einen anderen Controller mit DIP-Gehäuse, wie zum Beispiel den Mega8 
oder 88 und versuche, diesen anzusprechen, damit Du erstmal ein Gefühl 
dafür bekommst und weißt, ob Dein Programmer in Ordnung ist.

von Torsten J. (olivegarden)


Lesenswert?

Hallo,

Danke für die Antwort. Soll ich lieber einen Quarzoszillator an XTAL-1 
gegen Masse anschliessen oder einen Quarz mit XTAL-1 und XTAL-2 in 
Verbindung mit jeweils nem Kondensator gegen Masse anschliessen?

Welche von beiden Versionen ist besser und bei dem Quarzoszillator nimm 
ich da einen mit 4Mhz oder einen mit nem anderen Wert?

ATmega8 konnte ich parallel per AVRDUDE schon problemlos programmieren.

von Klaus W. (mfgkw)


Lesenswert?

Torsten J. schrieb:
> Soll ich lieber einen Quarzoszillator an XTAL-1
> gegen Masse anschliessen oder einen Quarz mit XTAL-1 und XTAL-2 in
> Verbindung mit jeweils nem Kondensator gegen Masse anschliessen?

Das kannst du dir aussuchen.
Es müssen nur die Fuses dazu passen.
Quarz ist etwas billiger als ein Oszillator, aber bei einem Stück...

>
> Welche von beiden Versionen ist besser und bei dem Quarzoszillator nimm
> ich da einen mit 4Mhz oder einen mit nem anderen Wert?

Das steht die ebenfalls frei.
Langsamer spart ein paar mA Strom, schneller rechnet halt schneller.
Der genaue Wert ist höchstens interessant, wenn man ein genaues
Timing braucht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> Soll ich lieber einen Quarzoszillator an XTAL-1
> gegen Masse anschliessen oder einen Quarz mit XTAL-1 und XTAL-2 in
> Verbindung mit jeweils nem Kondensator gegen Masse anschliessen?

WENN der Controller verfust ist, ist der Oszillator die einzig 
mögliche Wahl, da der Controller nicht unbedingt auf exernen Quarz, 
sondern auf externen TAKT gefust ist. Darauf wurde aber weiter oben 
schon längst hingewiesen.

von Torsten J. (olivegarden)


Lesenswert?

Hab versucht den 128er mit nem 14,7456 Mhz Quarz + Kondensatoren 
anzusprechen, aber ohne Erfolg. Werd mir jetzt noch nen 4Mhz Oszillator 
besorgen. Vielen Dank für Infos.

Werd mich wieder melden, sofern ich den ausprobiert und getestet habe.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> Hab versucht den 128er mit nem 14,7456 Mhz Quarz + Kondensatoren
> anzusprechen, aber ohne Erfolg.

Hätte ich Dir vorher sagen können. Ääh, hab ich auch...

Hast Du keinen 555er oder einen CD/74HC4093, dem Du die paar MHz 
entlocken könntest?

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Torsten J. schrieb:
> Hab versucht den 128er mit nem 14,7456 Mhz Quarz + Kondensatoren
> anzusprechen, aber ohne Erfolg. Werd mir jetzt noch nen 4Mhz Oszillator
> besorgen. Vielen Dank für Infos.
>
> Werd mich wieder melden, sofern ich den ausprobiert und getestet habe.

Und anbei nochmal die Minimalbeschaltung mit Quarzoszillator zum 
Nachkontrollieren.

fchk

von Torsten J. (olivegarden)


Lesenswert?

Nein, leider nicht - habe nichts dergleichen hier zu Haus.

von Sepp (Gast)


Lesenswert?

Wenn ich den geposteten Stromlauf ansehe, frage ich mich ob
Mosi/Miso richtig angeschlissen sind. Im Stromlauf gehen
die nicht an Mosi/Miso vom µP, sondern an dessdn TxD/RxD.
Dann kann es nicht gehen.

von Torsten J. (olivegarden)


Lesenswert?

Beim ATmega64/128 ist das anders - siehe Datenblatt. Dort liegen MOSI 
und MISO an PE0(TxD) und PE1(RxD).

von Torsten J. (olivegarden)


Angehängte Dateien:

Lesenswert?

So, habe den ATmega auch mit nem 4Mhz Quarz + 100nF Kondensator nicht 
angesprochen bekommen. Dann habe ich mir nen anderen 128er besorgt und 
siehe da, dieser lässt sich problemslos auslesen, programmieren usw.

Er läuft entweder mit intern OSC, extern OSC oder extern Crystal.
Das Problem, was ich jetzt nur noch habe, ist, dass ich ihn trotz "Ext. 
Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms" nicht in 
der Originalschaltung zum Laufen bringe. Dort hängt der 128er an XTAL2 
und 1 an einem 14,7456MHz Quarz + 22pF Kondensatoren. Auf der 
Programmierplatine funzt alles, aber in der Originalschaltung nicht.

Das Programm sagt mir immer "not in Boot Mode". Habe ich denn bestimmte 
Fuses falsch gesetzt?

Anbei nen Bild von den notwendigen PonyProg Einstellungen und denen, die 
ich in AVR-Studio (angepasst) übernommen habe (bei M103C sowie WDTON 
wurde kein Haken gesetzt - AVR Studio (hat nicht ganz raufgepasst)).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> Das Programm sagt mir immer "not in Boot Mode". Habe ich denn bestimmte
> Fuses falsch gesetzt?

Huh?! Der Mega128 hat keinen "Boot mode", höchstens der Programmer (also 
der mkII). Mir scheint, Du bringst hier was durcheinander.

von Torsten J. (olivegarden)


Lesenswert?

Hab alles hinbekommen. Es lag am MKII - ich musste per 
Parallelprogrammer die Daten auf'm 128er brennen. Hatte mir dann noch 
schnell einen SimplyParallelProgrammer gebastelt. Jetzt klappt's 
wunderbar.

Danke an Alle.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> Es lag am MKII

Mit Sicherheit nicht.

von Michael j. (Gast)


Lesenswert?

Hallo!

habe mir vor kuzem den selben avr Programmer (foto) gekauft wie du 
anfangs beschrieben hast, und habe das selbe Problem, bzw die selben 
Fehlermeldungen im AVR-Studio!

meine Frage an dich , ob du nun alles mit dem MKII machst oder ob du es 
mitd dem diamex prog s auch hinbekommen hast!?

mfg

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Torsten J. schrieb:
> 4Mhz Quarz + 100nF Kondensator

Am Quarz? Da gehören ca 20-30pF hin.

von Torsten J. (olivegarden)


Lesenswert?

Christian H. = Also die Aussage mit dem 4Mhz Quarz war unvollständig - 
ich meinte einen Quarzoszillator + 100nF Kondensator.


Michael j. = Den Diamex Programmer (hatte den Grünen), kannst Du wieder 
zurückschicken, der geht nicht. Zum einen brauchte der 128er 4,5 bis 5,5 
Volt zum Programmieren und laut Anleitung sollte es auch mit den 3 Volt 
gehen.

Zum Auslesen der Signatur konnte ich den Diamex benutzen - musste aber 
4KHz als ISP-Geschwindigkeit einstellen. Aber zum Einen würde das ne 
ganze Ecke dauern, um den 128er mit dieser Gewschwindigkeit zu 
programmieren und zum Anderen, kam bei allen Geschwindigkeiten (auch 
4KHz) immer ne Fehlermeldung beim Programmieren.

Nimm den AVR MKII, der ging diesbezüglich ohne Probleme (bis 1MHz).

von Michael j. (Gast)


Lesenswert?

Hab meinen Prog Diamex-s doch zum laufen gebracht! :)

 Versuch mit avrdude µController auslesen hat funktioniert!
 Nach längerem herumspielen im avrstudio funktionierte er 
schlussendlich!


Problem war: keine der Vorgeschlagenen ISP-Frequenzen funktionierte!
57,6 khz zu schnell und 4 khz zu langsam! => Lösung war eine Frequenz 
dazwischen welche man manuell eingeben musste! 28,36 kHz!!!! damit kann 
man dann im Avrstudio arbeiten!

Programmieren funktioniert auch mit 3,3 V bei meinem Atmega88!

vl hilft dass mal jemandem!

von Jörg H. (Gast)


Lesenswert?

Danke,Danke,Danke, Michael j.!!!!!!

Habe endlich meinen AtMega168 zum laufen/blinken gebracht.

Ich hab EWIG mit diesem Programmer rumgefummelt, alles 97 mal neu 
verdrahtet, MISO/MOSI usw. gecheckt, --- nix, immer "Entering 
Programming mode: FAILED"

Der Trick mit den 28,36 kHz (wo haste die denn her ???) war der absolute 
Knaller !!!

Nochmal danke...

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.