Das STK500 verwirrt mich.

Gast #812753
Lesenswert?

Morgen!

Um das STK500 zu testen, habe ich auf einem ATtiny13v ein simples 
Testprogramm laufen lassen, welches einfach alle Pins von Port B auf 0 
setzt und PortB mit dem LED-Anschluss verbunden um die LEDs zum leuchten 
zu bringen. Als das nicht funktioniert hat, habe ich die Spannungen an 
den Pins gemessen, die befanden sich alle in etwa auf dem Level von GND. 
Um die LEDs zu testen habe ich die Pins am LED-Anschluss nacheinander 
mit dem GND von Port B verbunden. Auch da verhielt es sich wie erwartet, 
die LEDs leuchteten. Nur, wenn ich PortB mit dem LED-Anschluss verbinde 
leuchtet nichts. Was ist da los?
Gast #812828
Lesenswert?

Ja, der Port ist auf Ausgang geschaltet und der ATtiny lässt sich 
programmieren. Wenn ich alle Ports auf 1 setze, liegt der Pegel von rund 
5 V an. An der Pinleiste liegen die Pegel ebenfalls an. Alles verhält 
sich wie erwartet, außer, dass die mit dem 10-adrigen Kabel 
angeschlossenen LEDs nicht leuchten. Auch wenn ich das Programm auf 
einem jungfräulichen ATtiny schibe, ändert sich nichts. Daran kann es 
auch IMHO nicht liegen, da die Pegel an den Pins ja die Werte haben, die 
sie haben sollen.
#812864
Lesenswert?

Du weißt aber, dass die LEDs nicht direkt geschaltet sind sondern über 
je einen Transistor?

Dass die Spannung am Port zusammenbricht, lässt mich vermuten, dass der 
Port doch nicht richtig auf Ausgang geschaltet ist (DDRB muss auf $FF 
gesetzt werden), sondern dass Du Die Pegel über die internen 
PullUp-Widerstände schaltest.

...
Gast #812887
Lesenswert?

Es befindet sich wirklich und wahrhaftig nur dieser eine Controller auf 
dem Board und ja, auch die LEDs habe ich, wie bereits erwähnt, mit PORT 
B verbunden, wenn ich die LEDs leuchten sehen wollte...

Der Code sieht so aus, alle Ports sind als Ausgänge konfiguriert, was, 
wenn ich das Datenblatt richtig verstanden habe, die pull-up Widerstände 
automatisch ausschaltet, richtig?
1
.include "tn13def.inc"
2

3
.org 0
4

5
ldi r16, 0xFF
6
out DDRB, r16
7

8
ldi r16, 0b00000000
9
out PORTB, r16
10

11
ende:    rjmp ende
Gast #812895
Lesenswert?

Ich glaube, mich an einen Fall hier erinnern zu können, wo jemand x-mal 
versehentlich die falsche Datei gebrannt hat.  IIRC war es auch ein 
AVRStudio-Nutzer.  Mangels weiterer Ideen: check das mal.
Gast #812902
Lesenswert?

Das ist es leider auch nicht. Ich habe das schon mehrfach gecheckt und 
auch jetzt bin ich zu dem Ergebnis gekommen, dass es das nicht sein 
kann. Dafür spricht auch, dass ich testweise alle Ports auf 1 gesetzt 
habe und dann nachgemessen habe, was wie erwartet funktioniert hat.
Gast #812974
Lesenswert?

also wenn du die leds anschließt und an den pins dann eine spannung 
misst, liegt es daran, dass die treibertransistoren der leds einen 
pullup haben.
steckt der attiny vllt im falschen sockel o_O?
Gast #813058
Lesenswert?

>Das ist doch der Richtige, oder?

(AVRStudio, STK500) Ein erfolgreiches Flashen des Programms wird ja mit 
einigen OK-Meldungen im Programmierfenster bestätigt.  Wenn die 
ordnungsgemäß erscheinen, steckt der ATtiny13 definitiv im richtigen 
Sockel.
#813062
Lesenswert?

Wenn das Prüfen der Signatur und das Verify klappt, dann ist es der 
richtige Sockel und die richtigen Verbindungen.

Ansonsten unter AVRStudio -> Hilfe -> STK500 nachsehen, da ist alles 
aufgelistet.


Um zu überprüfen, ob man wirklich das richtige hex-File brennt, das 
hex-File löschen, dann muß der Programmer ne Fehlermeldung bringen.
Dann neu compilieren und brennen.


Peter
Gast #813068
Lesenswert?

Ich benutze zum Übersetzen (unter Linux) den AVRAssembler2, emuliert 
über wine, da ich avr-gcc bisher noch nicht compiliert bekommen habe und 
avra sich standhaft geweigert hat den Code zu übersetzen, da es mit 
bestimmten Direktiven der ATMEL Bibliotheken nicht einverstanden war.
Flashen tu ich mit avrdude. Der überprüft den Code nach dem flashen 
ebenfalls.
#813100
Lesenswert?

mikromaik wrote:

> Flashen tu ich mit avrdude. Der überprüft den Code nach dem flashen
> ebenfalls.

Stell ihn mal auf die Probe, mach mal nur Verify und dann ändere was im 
Code und mach nochmal Verify, ob er dann meckert.


Ich hab immer nur AVRStudio benutzt, kann also zu anderen Programmen 
nichts sagen.

Mit AVRStudio hatte ich jedenfalls noch nie Probleme.


Peter
Moderator Persönliche Seite #813191
Lesenswert?

Peter Dannegger wrote:

> Stell ihn mal auf die Probe, mach mal nur Verify und dann ändere was im
> Code und mach nochmal Verify, ob er dann meckert.

Ist doch Ulk, Peter.  Wenn das verify im AVRDUDE ging, dann ist der
Code da auch drin.

Mr. mikromaik, wenn du den GCC nicht compiliert bekommst, guck dir mal
das Buildscript hier an:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=42631

Wenn das auch nicht funktioniert, dann poste im GCC-Forum die
Fehlermeldungen, die du bekommen hast.

Ansonsten kannst du ja hier mal das Hexfile posten, mit dem du testest.
Gast #813561
Lesenswert?

Ich habe es jetzt! Endlich! Die AvrAssembler2 defaultmäßig ausspuckt 
habe ich bisher als raw binary auf den Controller geschoben.
Jetzt habe ich statt des default-Formats Intel Hex erzeugt und die Datei 
dann als eben jene geflasht. Die LEDs leuchten jetzt!

Danke euch allen!
#813739
Lesenswert?

Jörg Wunsch wrote:
>> Stell ihn mal auf die Probe, mach mal nur Verify und dann ändere was im
>> Code und mach nochmal Verify, ob er dann meckert.
>
> Ist doch Ulk, Peter.  Wenn das verify im AVRDUDE ging, dann ist der
> Code da auch drin.

Nö, ist kein Ulk.

Dann ist zwar irgendein Code drin, aber ob es auch der ist, an dem er 
gerade arbeitet ???


Peter
Gast #2160848
Lesenswert?

Hallöchen,

ich krame diesen Thread mal wieder aus, weil ich in einem der Beiträge 
gelesen habe, dass das STK die ausgänge invertieren würde...

Tatsächlich fällt mir etwas ähnliches auch gerade bei meinem kleinen 
Programmchen auf, aber in der Anleitung zum STK500 habe ich das wohl 
bisher übersehen...

...mit anderen Worten: wenn ich mit dem STK500 etwas testweise aufbauen 
debuggen möchte, dann muss ich für die spätere Umsetzung alles nochmal 
invertieren?

mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren