AT90S2313 gegrillt :-(!?

T

Timm Linder

Guest
Hallo,

ich bin noch recht unerfahren im Bereich Elektronik, habe aber in den
letzten Tagen meine ersten Schritte gemacht und wollte mir einen
seriellen Atmel-Programmer basteln
(http://www.geocities.com/southbeach/Port/1592/adapter.htm - SerCon 2
Mini). Nun ist mir dabei leider ein kleiner Fehler unterlaufen, und
ich habe die Leitung DSR hinter den Widerstand R2 gelötet anstatt
davor (mittlerweile behoben!). Laut Adapter-Test (gibt's auf der
gleichen Website) müsste mein Programmer jetzt funktionieren, wenn ich
die Leitungen auf Low schalte, messe ich von GND - Pin etwa -0.7 bis 0
V, bei High etwa 3,6 bis 4V.

Wenn ich den AT90S2313 nun mit AT-Prog programmieren möchte, erkennt
dieser zunächst meinen Controller nicht (nur 00), und wenn ich den
Speicher des Controllers auslesen möchte, erhalte ich auch nur Nullen.
Wenn ich währenddessen mit dem Voltmeter zwischen MISO (=Output des
ľC) und GND messe, liegt praktisch keine Spannung vor.

Kurzum, meine Frage: Bevor ich mir bei Reichelt einen/mehrere neue
Controller bestelle (und wieder 5 Tage auf die Post warten muss...),
ist der Controller (durch den Fehler mit dem Widerstand) definitiv
zerstört worden? Oder könnte ich etwas übersehen haben?


Herzlichen Dank für eure Hilfe/Ratschläge im Voraus.
 
"Timm Linder" <timmlinder@yahoo.de> schrieb im Newsbeitrag
news:b32fa1da.0404151456.1ab64ef0@posting.google.com...
Auch Hallo,

ich bin noch recht unerfahren im Bereich Elektronik, habe aber in den
letzten Tagen meine ersten Schritte gemacht und wollte mir einen
seriellen Atmel-Programmer basteln
(http://www.geocities.com/southbeach/Port/1592/adapter.htm - SerCon 2
Mini).
Ich hab ca. vor einem Jahr mit den AVR's angefangen. Dazwischen immer wieder
lange Frustpausen ;-)

Bei mir hat's erst funktioniert als ich mein Steckbrett in die Ecke und die
Lochraster-Programmer in die Tonne gekloppt hab. Alles sauber auf selber
geätzter Platine aufgebaut und es hat geklappt...

Nun ist mir dabei leider ein kleiner Fehler unterlaufen, und
ich habe die Leitung DSR hinter den Widerstand R2 gelötet anstatt
davor (mittlerweile behoben!). Laut Adapter-Test (gibt's auf der
gleichen Website) müsste mein Programmer jetzt funktionieren, wenn ich
die Leitungen auf Low schalte, messe ich von GND - Pin etwa -0.7 bis 0
V, bei High etwa 3,6 bis 4V.
Wie hast du die Pegel gemessen? Multimeter oder Oszi?

Wenn ich den AT90S2313 nun mit AT-Prog programmieren möchte, erkennt
dieser zunächst meinen Controller nicht (nur 00),
Hatte ich auch ständig...

und wenn ich den Speicher des Controllers auslesen möchte, erhalte ich
auch nur Nullen.
Wenn ich währenddessen mit dem Voltmeter zwischen MISO (=Output des
ľC) und GND messe, liegt praktisch keine Spannung vor.
Also Multimeter. Soweit ich weiß wird zuerst der Resetpin auf Low (GND)
gezogen.
Dann wird versucht zu programmieren/lesen.
Das geht aber so schnell, daß man mit einem Multimeter fast keine Chance hat
das mitzubekommen.

Ich hatte damals die Pegel mit LED's versehen, damit ich zumindest sehe ob
was passiert.
Aber selbst das ist mit dem blosem Auge kaum zu sehen.

Mit dem Oszi wäre das kein Problem.

Kurzum, meine Frage: Bevor ich mir bei Reichelt einen/mehrere neue
Controller bestelle (und wieder 5 Tage auf die Post warten muss...),
ist der Controller (durch den Fehler mit dem Widerstand) definitiv
zerstört worden? Oder könnte ich etwas übersehen haben?
Checke zuerst mal deinen Aufbau nocheinmal genau durch.
Meine Fehlerliste ;-(

Benutzt du PC oder Laptop? (Laptop hat manchmal Probleme)
Stecker verwechselt? Männlich/Weiblich?
Widerstandswerte Ok?
Serielles Kabel gekreuzt/1:1?
Kabel vom Programmer zum Prozessor zu lang? (sollte glaub ich nicht länger
als 20cm sein)
Pinbelegung des Programmiersteckers ok?
Aufbau in Ordnung? -> Programmiersteckerfunktion durchprüfen und
Prozessorboard OHNE den Prozessor prüfen -> Vcc/Gnd an den richtigen Pins
Takt läuft und kommt am richtigen Pin an?
Resetpin des Prozessors mit 100K gegen Vcc, Resetpin des
Programmieranschlusses an den Resetpin des uC?
Prozessor verpolt? Hat mich einige gekostet ;-(
usw...

Ich benutze zur Zeit Ponyprog2000 (http://www.lancos.com/prog.html) und
einen parallelen Programmer (http://rumil.de/hardware/avrisp.html)- die 10
polige Version (zwischen jeder Signalleitung eine GND-Leitung), und ein
selber entworfenes Board mit einem AT90S4433 (pinkompatibel zum ATMega8).

Ponyprog ist in dieser Newsgroup zwar verschrien, aber funktioniert bei mir
einwandfrei.
Aufpassen muss man bei den FuseBits (in Ponyprog invertiert), am besten gar
nicht anrühren wenn nicht nötig.

Achso, für diesen Programmer im Ponyprog als Interface "parallel, Avr ISP
I/O" einstellen.
Beim Programmer unbedingt einen 74HCT244 statt einem 74HC244 verbauen.

Für mich hat sich's gelohnt das Ganze auf ner richtigen Platine
aufzubauen...

Herzlichen Dank für eure Hilfe/Ratschläge im Voraus.
Keine Ursache,

Chris
 
In article <b32fa1da.0404151456.1ab64ef0@posting.google.com>,
timmlinder@yahoo.de (Timm Linder) writes:
Hallo,

ich bin noch recht unerfahren im Bereich Elektronik, habe aber in den
letzten Tagen meine ersten Schritte gemacht und wollte mir einen
seriellen Atmel-Programmer basteln
Hast du keine Parallele Schnittstelle? Da besteht der Progammieradapter
im einfachsten Falle aus 5 Kabeln.

Mini). Nun ist mir dabei leider ein kleiner Fehler unterlaufen, und
ich habe die Leitung DSR hinter den Widerstand R2 gelötet anstatt
davor (mittlerweile behoben!).
Ich habe mir zwar die Schaltung lange angesehen aber leider nicht
R2 gefunden. Auf jeden Fall scheint DSR hier als Eingang zu
fungieren und somit keine Spannung führen. Der Controller
wird dadurch warscheinilch nicht zerstört worden sein.
Kann natürlich sein das durch die Schutzdioden zu viel
Strom geflossen ist und der uC jetzt im Latchup ist. Das solltest
du aber durch eine erhöhte Stromaufnahme merken .. btw. er wird
fix heiß.

Laut Adapter-Test (gibt's auf der
gleichen Website) müsste mein Programmer jetzt funktionieren, wenn ich
die Leitungen auf Low schalte, messe ich von GND - Pin etwa -0.7 bis 0
V, bei High etwa 3,6 bis 4V.
Die Schaltung ist relativ Komplex .. ich kann mir gut vorstellen das
du noch einen Fehler mit rein gebaut hast.

Wenn ich den AT90S2313 nun mit AT-Prog programmieren möchte, erkennt
dieser zunächst meinen Controller nicht (nur 00), und wenn ich den
Speicher des Controllers auslesen möchte, erhalte ich auch nur Nullen.
Aber der Takt funktioniert? Ich kenne das Progamm nicht .. aber wenn
mein Progamm keine Rückmeldung vom uC bekommt (so genau kenne ich
das Protokoll nicht) versucht es erst gar nicht die Signatur/Daten
zu lesen.

Ich vermute also das irgendwo in deiner Schaltung ein Fehler ist.
Was passiert wenn du keinen uC anschliesst und das Progamm aufrufst?

Wenn ich währenddessen mit dem Voltmeter zwischen MISO (=Output des
ľC) und GND messe, liegt praktisch keine Spannung vor.
Naja. Das ist kein Wunder weil es nur kurze Impulse sind und die
dein Multimeter u.U. nicht auflöst. Hast du evt. eine Oszi oder ein
analoges Gerät? (Wobei auch das u.U. zu träge ist aber du evt
einen Mittelwertablesen kannst)

Versuch doch mal eine LED mit einem Treiber davor an den Ausgang
anzuschliessen.

ist der Controller (durch den Fehler mit dem Widerstand) definitiv
zerstört worden? Oder könnte ich etwas übersehen haben?
Das kann ich dir nicht defenitiv sagen weil ich R2 nicht gefunden
habe :-o

Aber so ein Controller ist eigentlich relativ robust wenn er nicht
mit Überspannung in Kontakt kommt. Deswegen bevorzuge ich auch die
Paralelle Schnittstelle weil die keine +-12V liefert.

Ich würde dir ja empfehlen mal einen ganz einfachen Paralellen
Progammer aufzubauen. Evt. mit Widerständen zur Strombegrenzung.

Die Belegung solltest du sicher im Internet finden.

Tschüss
Martin L.
 
Hallo Martin,

danke für deine Antwort!

Hast du keine Parallele Schnittstelle? Da besteht der Progammieradapter
im einfachsten Falle aus 5 Kabeln.
Ich habe eine (die ist im Moment belegt, ok, das ließe sich ändern),
bevorzuge aber trotzdem aus unterschiedlichen Gründen die serielle (u.a.
wegen der Kurzschlussfestigkeit). Zur Not wäre ich natürlich auch noch
einmal bereit, es an der seriellen zu versuchen.

Ich habe mir zwar die Schaltung lange angesehen aber leider nicht
R2 gefunden. Auf jeden Fall scheint DSR hier als Eingang zu
fungieren und somit keine Spannung führen. Der Controller
wird dadurch warscheinilch nicht zerstört worden sein.
Ich vermute, du hast dir die falsche angeschaut - auf der Seite sind 3
Stück angegeben, ich spreche vom "Sercon 2 Mini" (ziemlich weit unten),
das ist die einfachste aller 3 Schaltungen.

Kann natürlich sein das durch die Schutzdioden zu viel
Strom geflossen ist und der uC jetzt im Latchup ist. Das solltest
du aber durch eine erhöhte Stromaufnahme merken .. btw. er wird
fix heiß.
Ich habe ab und zu daran gefühlt, warm ist das Ding eigentlich nicht
geworden.

Laut Adapter-Test (gibt's auf der
gleichen Website) müsste mein Programmer jetzt funktionieren, wenn ich
die Leitungen auf Low schalte, messe ich von GND - Pin etwa -0.7 bis 0
V, bei High etwa 3,6 bis 4V.

Aber der Takt funktioniert? Ich kenne das Progamm nicht .. aber wenn
mein Progamm keine Rückmeldung vom uC bekommt (so genau kenne ich
das Protokoll nicht) versucht es erst gar nicht die Signatur/Daten
zu lesen.
Hmm... was meinst du mit Takt? In der Schaltung ist ja gar kein Quarz o.
Ähnliches enthalten, das einen Takt geben könnte, oder verstehe ich da
etwas falsch!?

Ich vermute also das irgendwo in deiner Schaltung ein Fehler ist.
Was passiert wenn du keinen uC anschliesst und das Progamm aufrufst?
kein ľC, aber Adapter an der Schnittstelle: Adapter wird erkannt
(ansonsten erscheint eine Fehlermeldung), aber er liest nur Nullen -> es
scheint also auch mit ľC so zu sein, als wäre gar kein Controller
vorhanden!? (ja, das Ding sitzt richtig in der Fassung)

Wenn ich währenddessen mit dem Voltmeter zwischen MISO (=Output des
ľC) und GND messe, liegt praktisch keine Spannung vor.

Naja. Das ist kein Wunder weil es nur kurze Impulse sind und die
dein Multimeter u.U. nicht auflöst. Hast du evt. eine Oszi oder ein
analoges Gerät? (Wobei auch das u.U. zu träge ist aber du evt
Nein, leider besitze ich so etwas nicht - ich kann die Geschwindigkeit
im Programm allerdings auf "Very low" stellen, und an den anderen 3 Pins
(SCK, MOSI, Reset) ist eine Veränderung in der Spannung beim
Programmieren auch am Multimeter erkennbar.


Hmm, irgendwie weiß ich nicht weiter... trotzdem schon einmal vielen
Dank für die Hilfe.

PS:
Habe mir "sicherheitshalber" schonmal 3 neue ATs bestellt, trotzdem
wüsste ich aber gerne, wieso es im Moment nicht funktioniert...
 
Ich arbeite schon lange unter anderem mit AVR's.
Ich habe mir zweimal aus Spaß einen Programmieradapter
für RS232 gebaut und keiner davon hat funktioniert.
Es ist Glücksache ob Deine Schnittstelle die nötigen Pegel
liefern kann, beim einen funktionierts beim anderen nicht.

Bau einen Parallelportadapter, möglichst einen mit 74244
dazwischen, das funktioniert eigentlich immer.
Das ganze andere rumgebastel bringt mehr Ärger und Frust als
es wert ist.
Auch direkte Verbindung am Parallelport, mit Reihenwiderständen
geht meist, aber eben nicht immer.

Übrigens können auch Probleme mit dem Oszillator des AVR
die Ursache sein. Abhilfe: einen ATMega8 oder 16 verwenden,
die laufen von hause aus erst mal mit dem internen Oszillator,
und das sehr zuverlässig.
 
Bei mir hat's erst funktioniert als ich mein Steckbrett in die Ecke und die
Lochraster-Programmer in die Tonne gekloppt hab. Alles sauber auf selber
geätzter Platine aufgebaut und es hat geklappt...
Sehr aufmunternd, ich versuche es nämlich auf Lochraster ;-)

Also Multimeter. Soweit ich weiß wird zuerst der Resetpin auf Low (GND)
gezogen.
Ich hatte damals die Pegel mit LED's versehen, damit ich zumindest sehe ob
was passiert.
Aber selbst das ist mit dem blosem Auge kaum zu sehen.
Leider steht mir nur ein Multimeter zur Verfügung. Ich habe es jetzt mal
mit LEDs ausprobiert: Zunächst blinkt Reset ganz kurz auf (=Low, gegen
GND), erlischt dann wieder, dann blinkt SCK munter los. Nach ein paar
Sekunden blinkt dann allerdings wieder Reset auf - ich vermute, der
Programmer versucht da einfach noch einmal, den Schreibvorgang zu
starten!?

Benutzt du PC oder Laptop? (Laptop hat manchmal Probleme)
PC, habs an zwei verschiedenen PCs ausprobiert.

Stecker verwechselt? Männlich/Weiblich?
Ich denke nicht, laut Adapter-Test stimmt ja alles, was die Highs & Lows
an den Ausgängen betrifft...

Widerstandswerte Ok?
Jap

Serielles Kabel gekreuzt/1:1?
Habs auch mal mit einem gekreuzten Kabel versucht, dann wird der Adapter
gar nicht erst erkannt.

Kabel vom Programmer zum Prozessor zu lang? (sollte glaub ich nicht länger
als 20cm sein)
Pinbelegung des Programmiersteckers ok?
Aufbau in Ordnung? -> Programmiersteckerfunktion durchprüfen und
Prozessorboard OHNE den Prozessor prüfen -> Vcc/Gnd an den richtigen Pins
Hmmm... wie gesagt habe ich mich genau an den Aufbau des Sercon 2 Mini
gehalten, der auf der Seite beschrieben wird (mir fehlt dazu einfach
noch die Erfahrung, um da größere "Umbauten" vorzunehmen). Einen
Programmierstecker habe ich nicht, dafür habe ich eine IC-Fassung, oder
habe ich jetzt etwas falsch verstanden!?

Ich denke dass die Pinbelegung stimmt - die Angaben im Datenblatt
beziehen sich doch auf eine "Vogelperspektive", d.h. man sieht die
Oberseite des Controllers!?

Takt läuft und kommt am richtigen Pin an?
Ääääh... Takt - Bahnhof? Wo soll es da einen Takt geben? Sorry, da stehe
ich jetzt auf dem Schlauch...

Resetpin des Prozessors mit 100K gegen Vcc, Resetpin des
Programmieranschlusses an den Resetpin des uC?
s.o., habe mich genau an den Schaltplan gehalten

Prozessor verpolt? Hat mich einige gekostet ;-(
Ich denke nicht...


Dankeschön für die Tipps, werde das alles sicherheitshalber noch einmal
checken...
 
Am Fri, 16 Apr 2004 16:20:55 +0200 schrieb Timm Linder:

Aber der Takt funktioniert? Ich kenne das Progamm nicht .. aber wenn
mein Progamm keine Rückmeldung vom uC bekommt (so genau kenne ich
das Protokoll nicht) versucht es erst gar nicht die Signatur/Daten
zu lesen.

Hmm... was meinst du mit Takt? In der Schaltung ist ja gar kein Quarz o.
Ähnliches enthalten, das einen Takt geben könnte, oder verstehe ich da
etwas falsch!?
Vielleicht. Die AVR's müssen immer mit einem externen Takt
versorgt werden, wenn du sie programmieren willst. Das ist
anders als bei PICs, bei denen der Programmer den Takt
erzeugt. Also sollte der AVR in der Zielschaltung stecken,
in der es einen irgendwie gearteten Oszillator geben muss.
Der Programmer wird dann über einen ISP-Stecker oder einen
Zwischensockel mit der Schaltung verbunden.

Ich habe mir am Anfang einen dieser "D-SUB25 + 5 Widerstände"-
Programmer gebaut, damit dann einen AT90S2313 programmiert
und daraus einen AN910-Programmer für die serielle
Schnittstelle gebaut. Hat mich bisher noch nicht im Stich
gelassen: http://www.reucker-online.de/elektronik/atmel910.htm

MfG
Jan

--
Jan Reucker
email: jan dot reucker at web dot de
web: http://www.reucker-online.de
 
Takt läuft und kommt am richtigen Pin an?
Schande über mein Haupt... ich war so blöd und bin davon ausgegangen,
dass das Ding keinen zusätzlichen Taktgeber braucht (war ja in der
Schaltung nicht eingezeichnet, habe dabei vergessen, dass die ja
eigentlich für ISP gedacht ist), dann kann es natürlich nicht gehen.
Werde das also noch nachrüsten und dann funktioniert's hoffentlich...


Trotzdem noch einmal herzlichen Dank an alle, die versucht haben, mir
trotz meines ziemlich dummen Fehlers zu helfen ;-).
 
Hmm... was meinst du mit Takt? In der Schaltung ist ja gar kein Quarz o.
Ähnliches enthalten, das einen Takt geben könnte, oder verstehe ich da
etwas falsch!?

Vielleicht. Die AVR's müssen immer mit einem externen Takt
versorgt werden, wenn du sie programmieren willst. Das ist
anders als bei PICs, bei denen der Programmer den Takt
erzeugt. Also sollte der AVR in der Zielschaltung stecken,
in der es einen irgendwie gearteten Oszillator geben muss.
Der Programmer wird dann über einen ISP-Stecker oder einen
Zwischensockel mit der Schaltung verbunden.

Ich habe mir am Anfang einen dieser "D-SUB25 + 5 Widerstände"-
Programmer gebaut, damit dann einen AT90S2313 programmiert
und daraus einen AN910-Programmer für die serielle
Schnittstelle gebaut. Hat mich bisher noch nicht im Stich
gelassen: http://www.reucker-online.de/elektronik/atmel910.htm
Jo, auf die gleiche Idee hat mich jemand anderes gerade auch gebracht...
ich denke, daran sollte es liegen. Dankeschön!
 
Jan Reucker <valid.but.only.for.spam@gmx.net> schrieb:

Vielleicht. Die AVR's müssen immer mit einem externen Takt
versorgt werden, wenn du sie programmieren willst.
s/einem externen //

Es muß /irgendein/ Takt laufen. Alle neueren Controller generieren im
Auslieferungszustand einen Takt mit dem internen RC-Oszillator. Der
Nachfolgetyp ATtiny2313 übrigens auch.

Das ist anders als bei PICs, bei denen der Programmer den Takt
erzeugt.
Prinzipiell könnte bei AVR auch der Programmer den Takt erzeugen,
allerdings dürfte die Programmierung dann ziemlich gemütlich werden.
Ich habe aber mal irgendeine ISP-Schaltung gesehen, die XTAL1 mit auf
den Steckverbinder gelegt haben.

--
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