Forum: Mikrocontroller und Digitale Elektronik STK500 Problem - Status LED aus


von Simon (Gast)


Lesenswert?

Hallo,

habe folgendes Problem. Wenn ich mein STK500 anstecke leuchtet die 
RESET-Led kurz auf und die STATUS-Led leuchtet gar nicht (sollte normal 
von rot auf grün wechseln). Die Spannungen an der Buchse und am 5V 
Regler hab ich überprüft und es fließt auch kein hoher Strom (nur 100mA 
die STK500 auch im Normalbetrieb benötigt) -> es liegt auch kein 
Kurzschluss vor.
Des weiteren habe ich probiert die Firmware aufs STK500 zu spielen. 
./STK500/upgrade.exe. er erkennt zwar dass ein Programmer verbunden 
ist(Programmer connected at com1), aber ich bekomme nur eine 
Fehlermeldung (programming failed).

Was könnte das Problem sein?

mfg Simon

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Klingt ja arg danach, als hättest du den ATmega8535 geplättet.

Hast du mal nachgemessen, ob die internen 5 V auch da sind?  Da sind
zwei verschiedene Spannungsregler drauf für die Versorgung des Targets
und für die Versorgung des STK500 selbst.

von Simon (Gast)


Lesenswert?

Spannung am 78m05 = 5V
Spannung am lm317 links daneben = 10v
Spannung direkt am AT90S8535 = 5V zwischen PIN 5 und 6.
Wie kann man sich den 8535 zerstören. Hab eigentlich immer nur normal 
ISP programmiert. Hat sonst noch jemand eine idee?

mfg simon

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Also Simon nochmal langsam zum mitschreiben: Die Statusled leuchtet 
garnicht mehr, also auch nicht Orange, rot oder blinkend? Hast Du mal 
saemtliche Bauteile (also die Programmiersockel) freigeraeumt und auch 
sonst nichts weiter angeschlossen ausser die Spannung. Funktioniert es 
dann? Wenn nicht, hoert sich das nicht gut an...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ja, wichtig ist natürlich, dass das ISP-Kabel abgezogen ist.  Der
gleiche Bus wird vom ATtiny2313 zum Firmwareupgrade des ATmega8535
benutzt.

von Simon (Gast)


Lesenswert?

ja ich habe außer der spannungsversorgung und dem seriellen kabel an 
rs232-ctrl nichts am stk500 angesteckt. die jumper sind auch 
standardmäßig eingesteckt. würde es sinn machen den at90s8535 zu 
tauschen und ist es möglich einen atmega8535 an diese stelle einzulöten 
(habe eine ältere version des stk500) bei den neuen sind jetzt atmega 
drin.

mfg simon

von Simon (Gast)


Lesenswert?

was ich noch vergessen habe. ja die status led leuchtet gar nicht

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon wrote:

> würde es sinn machen den at90s8535 zu
> tauschen und ist es möglich einen atmega8535 an diese stelle einzulöten
> (habe eine ältere version des stk500) bei den neuen sind jetzt atmega
> drin.

Du musst dann aber den Bootloader im AT90S1200 anpassen, da der
ATmega8535 anders programmiert wird.  Wenn du den AT90S1200 gleich
noch durch einen ATtiny2313 austauschst, könnte ich dir das Hexfile
für einen passenden AVR910-kompatiblen Bootloader geben (selbst auf
einem STK500 getestet).

von Simon (Gast)


Lesenswert?

ja wenn es keine andere möglichkeit gibt und ein tausch von den zwei 
chips wahrscheinlich was bringt, mach ich das. es wäre fein wenn du mir 
das hex-file schicken könntest. wie programmier ich die chips dann? 
gibts da eine anleitung?

mfg simon

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Zum Programmieren wirst Du einen funktionierenden Programmer 
benoetigen... und pass auf dass Du den selben Fehler nicht nocheinmal 
machst, les am besten mal das Handbuch ;)

von Simon (Gast)


Lesenswert?

Durch meinen Freundeskreis komme ich leicht zu einem anderen STK500 oder 
JTAG ICE mkii. Es ist also kein Problem, dass ich einen funktionierenden 
Programmer brauche. Es ist auch nicht so, dass ich das STK500 zum ersten 
mal in der Hand habe oder mit Elektronik gar nichts auf dem Hut habe. 
Ich kann mir auch nicht erklären wie es kaputt wurde. Ich habe es meiner 
Meinung nach ordnungsgemäß verwendet und das sowie ich es immer gemacht 
habe (und das schon häufig).
mfg simon

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Simon wrote:

> Durch meinen Freundeskreis komme ich leicht zu einem anderen STK500 oder
> JTAG ICE mkii. Es ist also kein Problem, dass ich einen funktionierenden
> Programmer brauche.

OK, Hexfile ist im Anhang.

Die ISP-Schnittstelle des AT90S1200/ATtiny2313 ist leider nicht
komplett herausgeführt.  Der nicht bestückte 6-pinnige Stecker
neben dem Bootloader ist die ISP-Schnittstelle des ATmega8535.
Für den ATtiny2313 musst du dir mal im Schaltplan (steht in der
STK500-Hilfe mit drin) die /RESET-Leitung separat rausfusseln und
die per Draht an den ISP-Stecker des Masters verdrahten.  Die anderen
Pins des ISP-Steckers kannst du 1:1 benutzen.

Bevor du das alles zerlötest, kannst du ja nochmal mit einem avrdude
rangehen.  "Program"-Knopf drücken und einschalten.  avrdude sollte
sich dann verbinden können:
1
$ avrdude -c avr910 -P /dev/ttyUSB0 -p m8535 -ut
2
3
Found programmer: Id = "AVR ISP"; type = S
4
    Software Version = 4.0; Hardware Version = 1.2
5
Programmer supports auto addr increment.
6
7
Programmer supports the following devices:
8
    Device code: 0x69 = ATMEGA8535
9
10
avrdude: AVR device initialized and ready to accept instructions
11
12
Reading | ################################################## | 100% 0.00s
13
14
avrdude: Device signature = 0x1e9308
15
avrdude: current erase-rewrite cycle count is -50462977 (if being tracked)
16
avrdude> d flash
17
>>> d flash 
18
0000  00 00 01 01 02 02 03 03  04 04 05 05 06 06 07 07  |................|
19
0010  08 08 09 09 0a 0a 0b 0b  0c 0c 0d 0d 0e 0e 0f 0f  |..          ....|
20
0020  10 10 11 11 12 12 13 13  14 14 15 15 16 16 17 17  |................|
21
0030  18 18 19 19 1a 1a 1b 1b  1c 1c 1d 1d 1e 1e 1f 1f  |................|
22
23
avrdude> quit
24
>>> quit 
25
26
avrdude done.  Thank you.

So ungefähr sieht das Bild aus, wenn der ATmega8535 gelockt ist.  Ganz
alte STK500 haben den nicht gelockt, da kannst du dann wirklich den
ROM-Inhalt auslesen.

Du musst allerdings -p 8535 angeben bei dir.  Obige Angaben stammen
von einem echten STK500-Bootloader, nicht vom dem Hexfile, das ich
dir hier dranhängt.

von Simon (Gast)


Lesenswert?

Habe mir jetzt den ATTINY2313 und den ATMEGA8535 bestellt. Wie 
funktioniert das jetzt genau? Muss ich den tiny mit dem, im vorhergenden 
post angehängt hex-file flashen? Was geschieht mit dem atmega? Wäre um 
eine etwas detailliertere Anleitung sehr dankbar.

mit freundlichen Grüßen
Simon

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Simon wrote:

Vorab: guck dir mal den Schaltplan des STK500 an, der ist als PDF in
der AVR-Studio-Hilfe-Datei zum STK500 eingebettet.

> Muss ich den tiny mit dem, im vorhergenden
> post angehängt hex-file flashen?

Ja.  Direkt neben dem ATtiny2313 befinden sich 6 Löcher für einen
ISP-Stecker.  Den lötest du rein, und darüber kannst du den ATtiny2313
programmieren.  Das fiese ist nur, dass du den am Ende auf externen
Takt stellen musst, damit die Baudrateneinstellungen funktionieren,
aber seinen externen Takt bezieht er vom ATmega8535 und dem dort
angeschlossenen Resonator, den man erst einmal aktivieren muss.  (Das
war beim Vorgänger AT90S8535 noch anders, der hatte keinen internen
Takt, sodass er sofort mit dem Resonator los lief.)

Der ATmega8535 hat seine ISP-Anschlüsse auch auf diesem ISP-Stecker,
aber sein /RESET ist natürlich ein anderes.  Damit du den
programmieren kannst, musst du dessen /RESET also separat an deinen
ISP-Programmer klemmen.  Das ist im Schaltplan mit dem Netz /MCURST
bezeichnet, das liegt an Pin 24 (/RESET) vom ATmega8535, Pin 16 (PB4)
vom ATtiny2313, an der Verbindung von R203/C207, an einem leeren
Footprint für R213, sowie an Pin 4 der D201.  R203, der leere R213 und
D201 befinden sich allesamt direkt nebeneinander, das dürfte daher die
beste Stelle sein, an der man dieses Signal abgreifen kann.

Wenn du die Löterei sparen willst, kannst du auch folgendes versuchen:
Du programmierst den Bootloader in den ATtiny2313 und seine lfuse so,
dass er zwar noch vom internen RC-Oszillator läuft, aber dass die
CKDIV8-Fuse abgeschaltet wird.  Dann programmierst du als erstes den
Bootloader, den ich in diesem Posting angehängt habe.  Der ist für
einen Takt von 8 MHz statt 7,3 MHz gebaut, ansonsten ist er gleich.
Danach kannst du über die PROGRAM-Taste und die serielle Schnittstelle
entweder mit avrprog.exe oder mit AVRDUDE erstmal die Fuses des
ATmega8535 so einstellen, dass sein Keramikresonator arbeitet.  An
dieser Stelle dann musst du nochmal den externen ISP-Programmer
benutzen, stellst den ATtiny2313 auf externen Takt ein und
programmierst ihm den Bootloader, den ich bei letzten Mal gepostet
habe.

Abschließend dann die Firmware via AVR Studio reinprügeln.

von Philipp D. (phili)


Lesenswert?

Liebes Forum,
auf mehreren unserer STK500 scheinen nur die AT90S1200 defekt  zu sein 
(falsche Signatur beim Auslesen über den eigens zu bestückenen 
ISP-Header). Die STKs gehen direkt nach dem einschalten der 
Versorgungsspannung in den Programmiermodus, obwohl weder der 
Prog-Jumper gesetzt noch der Knopf gedrückt ist.

Nach dem Löschen des S1200 blinkt die Status-LED auf den Boards 
vertraut. Die Kommunikation geht natürlich nicht mehr, da der gelöschte 
S1200 jetzt die Daten nicht mehr umsetzt.

Ist es auch möglich, nur den S1200 geben einen tiny2313 zu tauschen und 
den AT90S8535 beizubehalten? Kann ich dazu obige Firmware verwenden oder 
gibt es dann Probleme bei der Kommunikation PC <-> AT90S8535?

Es wäre schön, wenn hier jemand noch einmal ein paar Sätze zu möglichen 
Varianten des Mikrocontroller-Tausches machen könnte.

Liebe Grüße
Phili

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.