ATMega8 parallel programmieren, weil seriell nicht geht

H

Heiko Weinbrenner

Guest
Hallo!

Ich dreh so langsam durch.

Ich hab schon wieder ein ATMega8 Prototyp-Board gebastelt:

Schaltplan:
http://mitglied.lycos.de/drcaveman/schaltplan.gif

Platine:
http://mitglied.lycos.de/drcaveman/platine.gif

Das serielle Programmieren funktioniert wieder nicht. Das wäre der
dritte Prozessor, den ich beim Einlöten zerstört haben müsste- das kann
ich nicht glauben!

Auf der Platine sind bis jetzt nur die Brücken, sowie R2, R3 und R4
bestückt, aber das sollte ja nichts machen.

Ich habe auch mal das Oszilloskop auf die Signale angesetzt:

Resetsignal:
http://mitglied.lycos.de/drcaveman/reset.jpg

Miso:
http://mitglied.lycos.de/drcaveman/miso.jpg

Mosi:
http://mitglied.lycos.de/drcaveman/mosi.jpg

Auf dem Bus ist auf jeden Fall etwas los, sieht für mich aber irgendwie
komisch aus.

So, jetzt will ich es mal parallel versuchen, STK500 ist vorhanden.
Meine Frage:

Sind die PJUMP-Jumper dafür da, dass PROG DATA auf PortB[5:0] und
PortC[1:0] aufgesplittet wird?

BSEL2 schließe ich an PC2 an. Dann greife ich vom STK500 den
Oszillatortakt ab (XTAL1-Jumper) und leite diesen auf XTAL1. Genau so
greife ich /Reset ab (PortC[6]) und gebe diesen auf Reset. Das sollte
doch so gehen oder?

Danke, Heiko!
 
Das serielle Programmieren funktioniert wieder nicht. Das wäre der
dritte Prozessor, den ich beim Einlöten zerstört haben müsste- das kann
ich nicht glauben!
Tja, beim ATMega8 gibt es durch falsches Programmieren der Fuses gleich
mehrere Möglichkeiten sich auszusperren und dadurch das serielle Pro-
grammieren zu verhindern:

Reset-Fuse: Schaltet den Reset-Pin ab. Dann kann das serielle Protokoll
nicht mehr ansetzen.
SPIEN-Fuse: Schaltet das serielle Programmieren ab. Ohne Worte.

Mit den OSC-Fuses kann man ganz leicht auch den internen OSC stilllegen;
das könnte man mit einem externen Takt aber kompensieren.

Ich weiß schon warum ich mir einen parallelen Programmer für das Ding ge-
baut habe....

Wenn Du es mit einem 4. Exemplar seriell probieren willst würde ich endlich
auf eine vernünftige Software umsteigen...

cu,

Aguja

www.PROuC.de => Free AVR-, PIC- & 8051-Programmers, Apps & more * neu:Forum
 
Zunächst fällt mir auf, daß du die leitungen an XTAL1 und 2 wohl noch an
PORTB geführt hast.
Muß denn die externe Takterzeugung sein ? Tut die denn ihren Zweck ?
Der ATMEGA8 hat doch eine interne Taktquelle bis 8 MHz (ab Werk auf 1 MHz
gestellt).

Als nächstes fällt mir auf, daß die Leitung an PC6/Reset keine beschriftung
hat. Das muss zwar bei EAGLE-CAD nicht unbedingt sichtbar sein, die Leitung
muss aber einem Netz zugeordnet sein.

Könnte es sein, daß Deine Schaltung kein reset vom ISPCON kriegt. Dann
könntest Du glaube ich generell nicht programmieren. Meines Wissens muss
RESET während der ISP-programmierung LOW sein.

Gruß Nico

"Heiko Weinbrenner" <nospamtome@ish.de> schrieb im Newsbeitrag
news:412ddf0a@news-fe-01...
Hallo!

Ich dreh so langsam durch.

Ich hab schon wieder ein ATMega8 Prototyp-Board gebastelt:

Schaltplan:
http://mitglied.lycos.de/drcaveman/schaltplan.gif

Platine:
http://mitglied.lycos.de/drcaveman/platine.gif

Das serielle Programmieren funktioniert wieder nicht. Das wäre der
dritte Prozessor, den ich beim Einlöten zerstört haben müsste- das kann
ich nicht glauben!

Auf der Platine sind bis jetzt nur die Brücken, sowie R2, R3 und R4
bestückt, aber das sollte ja nichts machen.

Ich habe auch mal das Oszilloskop auf die Signale angesetzt:

Resetsignal:
http://mitglied.lycos.de/drcaveman/reset.jpg

Miso:
http://mitglied.lycos.de/drcaveman/miso.jpg

Mosi:
http://mitglied.lycos.de/drcaveman/mosi.jpg

Auf dem Bus ist auf jeden Fall etwas los, sieht für mich aber irgendwie
komisch aus.

So, jetzt will ich es mal parallel versuchen, STK500 ist vorhanden.
Meine Frage:

Sind die PJUMP-Jumper dafür da, dass PROG DATA auf PortB[5:0] und
PortC[1:0] aufgesplittet wird?

BSEL2 schließe ich an PC2 an. Dann greife ich vom STK500 den
Oszillatortakt ab (XTAL1-Jumper) und leite diesen auf XTAL1. Genau so
greife ich /Reset ab (PortC[6]) und gebe diesen auf Reset. Das sollte
doch so gehen oder?

Danke, Heiko!
 
Heiko Weinbrenner schrieb:

[AVR isp-Probleme]

Hi

da aus MISO was rauskommt würde ich mal tippen das deine
Programmiersoftware irgendwie nicht richtig will. Was verwendest du denn?

Außerdem erscheinen mir die 4,7k Serienwiderstände dann doch etwas hoch.

--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Nicolas Nickisch schrieb:

Hallo!

Zunächst fällt mir auf, daß du die leitungen an XTAL1 und 2 wohl noch an
PORTB geführt hast.
Muß denn die externe Takterzeugung sein ? Tut die denn ihren Zweck ?
Der ATMEGA8 hat doch eine interne Taktquelle bis 8 MHz (ab Werk auf 1 MHz
gestellt).
Extern ist um einiges genauer, besonders wenn man über 1MHz geht.

Als nächstes fällt mir auf, daß die Leitung an PC6/Reset keine beschriftung
hat. Das muss zwar bei EAGLE-CAD nicht unbedingt sichtbar sein, die Leitung
muss aber einem Netz zugeordnet sein.
Könnte es sein, daß Deine Schaltung kein reset vom ISPCON kriegt. Dann
könntest Du glaube ich generell nicht programmieren. Meines Wissens muss
RESET während der ISP-programmierung LOW sein.
Reset ist durchgeroutet.

Danke!

MfG, Heiko.
 
Aguja schrieb:


Tja, beim ATMega8 gibt es durch falsches Programmieren der Fuses gleich
mehrere Möglichkeiten sich auszusperren und dadurch das serielle Pro-
grammieren zu verhindern:

Reset-Fuse: Schaltet den Reset-Pin ab. Dann kann das serielle Protokoll
nicht mehr ansetzen.
SPIEN-Fuse: Schaltet das serielle Programmieren ab. Ohne Worte.

Mit den OSC-Fuses kann man ganz leicht auch den internen OSC stilllegen;
das könnte man mit einem externen Takt aber kompensieren.
Ich hab den noch nie vorher programmiert, der kam so aus seine
Verpackung (wie die anderen Beiden vorher auch).

Ich weiß schon warum ich mir einen parallelen Programmer für das Ding ge-
baut habe....
Ich hab einen gekauft.

Wenn Du es mit einem 4. Exemplar seriell probieren willst würde ich endlich
auf eine vernünftige Software umsteigen...
STK500 und AVRStudio halte ich für sehr vernünftig...

Danke!

MfG, Heiko.
 
Matthias Weißer schrieb:

Hallo!

da aus MISO was rauskommt würde ich mal tippen das deine
Programmiersoftware irgendwie nicht richtig will. Was verwendest du denn?
AVRStudio an STK500.

Außerdem erscheinen mir die 4,7k Serienwiderstände dann doch etwas hoch.
Ist aus einem ATMEL Design Guide (DOC2521).

Danke!

MfG, Heiko.
 
In article <412ddf0a@news-fe-01>,
Heiko Weinbrenner <nospamtome@ish.de> writes:
Hallo!

Das serielle Programmieren funktioniert wieder nicht. Das wäre der
dritte Prozessor, den ich beim Einlöten zerstört haben müsste- das kann
ich nicht glauben!
Wie lang ist dein Programmierkabel?
Clock scheint sehr empfindlich zu sein.
Bei mir hat es sich so ausgewirkt daß beim lesen die gelesenen Daten
der Adresse entsprachen.

Ein 390pF Kondensator zwischen Clock (in deinem fall vor dem R auf der PC-
seite) und Masse hat das Problem gelöst.
Auch ein nur 30 cm langes passives Kabel funktionierte.

p.s. Hast su geprüft ob der Oszilator sauber schwingt.
Lange Leiterbahnen können da schon stören.

--
MFG Gernot
 
"Heiko Weinbrenner" <nospamtome@ish.de> schrieb im Newsbeitrag
news:412ddf0a@news-fe-01...
Hallo!

Ich dreh so langsam durch.

Ich hab schon wieder ein ATMega8 Prototyp-Board gebastelt:

Schaltplan:
http://mitglied.lycos.de/drcaveman/schaltplan.gif

Platine:
http://mitglied.lycos.de/drcaveman/platine.gif

Das serielle Programmieren funktioniert wieder nicht. Das wäre der
dritte Prozessor, den ich beim Einlöten zerstört haben müsste- das kann
ich nicht glauben!
Das ist mir mit meinen 2 AtMega8 noch nie passiert.
Gibt es einen bestimmten Grund, warum du keine Sockel verwendest ?
 
Jens Welbert schrieb:

Hallo!

Das ist mir mit meinen 2 AtMega8 noch nie passiert.
Gibt es einen bestimmten Grund, warum du keine Sockel verwendest ?
Weil meine in TQFP32 sind :)

MfG, Heiko.
 
Am 26.08.04 15:00 schrieb Heiko Weinbrenner:
Hallo!

Ich dreh so langsam durch.

Ich hab schon wieder ein ATMega8 Prototyp-Board gebastelt:

Das serielle Programmieren funktioniert wieder nicht. Das wäre der
dritte Prozessor, den ich beim Einlöten zerstört haben müsste- das kann
ich nicht glauben!
Programmierst du über einen RS232-Programmieradapter? Als letzte Lösung
hat bei mir da nur noch ein Max232 als Treiber geholfen, wobei ich
allerdings sagen muss, dass mein Kabel vom Rechner 4 Meter lang ist.

Gruß
Michael
 
Matthias Weißer schrieb:

Hallo nochmal!

da aus MISO was rauskommt würde ich mal tippen das deine
Programmiersoftware irgendwie nicht richtig will. Was verwendest du denn?

Außerdem erscheinen mir die 4,7k Serienwiderstände dann doch etwas hoch.
So, hab das ganze jetzt mal auf gut Glück parallel angeschlossen- das
ging! Da war ich schon einmal beruhigt. Dann habe ich mir alle Fuses
angesehen- alle waren für serielles programmieren richtig eingestellt.
Also hab ich jetzt durch trial and error herausgefunden, dass der
4,7kOhm Widerstand an MISO wohl zu hoch ist! Da ist der Mega8 wohl zu
schlapp.

Aber ich bin doch nicht doof- 4,7k steht im design guide
(http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf)

Jetzt, wo ich es nochmal lese, weiß ich aber nicht mehr so recht, ob die
Widerstände dort richtig sind... Soll nun der "Programmer" direkt an den
AVR und die anderen "Devices" mit Widerständen "angekoppelt" werden oder
soll der "Programmer" über die Widerstände angekoppelt werden?

Danke nochmal für den Hinweis!

MfG, Heiko.
 
Michael Kamper schrieb:

Hallo!

Programmierst du über einen RS232-Programmieradapter? Als letzte Lösung
hat bei mir da nur noch ein Max232 als Treiber geholfen, wobei ich
allerdings sagen muss, dass mein Kabel vom Rechner 4 Meter lang ist.
STK500.

Jetzt geht es, der Grund ist in der zweiten Antwort auf Matthias Weißers
Posting zu finden. Eine Erklärung wäre jetzt noch fein :)


Danke an alle!

MfG, Heiko.
 
Heiko Weinbrenner schrieb:

Jetzt, wo ich es nochmal lese, weiß ich aber nicht mehr so recht, ob die
Widerstände dort richtig sind... Soll nun der "Programmer" direkt an den
AVR und die anderen "Devices" mit Widerständen "angekoppelt" werden oder
soll der "Programmer" über die Widerstände angekoppelt werden?
Also ich lese das so das der Programmer direkt an den AVR kommt und der
SPI-Bus über die 4,7kOhm Serienwiderstände entkoppelt wird.


--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Matthias Weißer schrieb:

Also ich lese das so das der Programmer direkt an den AVR kommt und der
SPI-Bus über die 4,7kOhm Serienwiderstände entkoppelt wird.
Wenn man ein wenig darüber nachdenkt, dann ist das auch irgendwie
ersichtlich...

Außerdem bestätigt sich das jetzt auch bei meinem ATMega64 Board- es
läuft jetzt :)

Gut, dann stelle ich mich jetzt noch ein wenig in die Ecke!

Danke für eure Hilfe!

MfG, Heiko.
 
aguja@despammed.com (Aguja) schrieb:

SPIEN-Fuse: Schaltet das serielle Programmieren ab. Ohne Worte.
Die kann man aber nicht via ISP programmieren (wohl aber via JTAG,
oder eben parallel).

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
Kristian Köhntopp, de.comp.os.unix.misc
 

Welcome to EDABoard.com

Sponsor

Back
Top