Forum: Mikrocontroller und Digitale Elektronik Neuling mit STK500 versucht einen Atmega8 zu programmieren


von Marcel R. (matze_89)


Lesenswert?

Hallo erstmal,

ich will in die µC-Welt einsteigen!

Zu mir, nennt mich Matze bin 20 und angehender
Elektrotechnik Student :)


Ich hab mich nen bissel umgelesen und hab mir das STK500
geholt, sowie einen USB-Seriell Adapter.
Außerdem habe ich mir noch das Büchlein geholt, was hier auf der
Seite empfohlen wird: Softwareentwicklung in C für Mikroprozessoren
und Mikrocontroller.
Und halt noch so Kleinkram:
3 Atmega8, 4MHz Quarz, Widerstände, Kondis, 7-Seg, und nen LCD

Hab mich hier auch an die Tutorials gewagt, zunächst Assambler.
Wenn ich ehrlich bin verstehe ich nur Bahnhof. Vllt kennt jemand ja
ne nette Seite zum Assambler Einstieg!
Dann ok, bevor du im Forum rumschreibst lernste dich in C ein,
Soweit so gut, ich hab mich mit dem Buch bissel in C eingelesen(hab C++ 
Kenntnisse).

Irgentwo hier im Forum mein ich hab ich nen Link zu der Seite von
Peter Flury gefunden. Der hat echt nette Beispiele, die mir geholfen 
haben.
Dann wollte ich zum Test sein Programm Helloled auf meinen Atmega8 
spielen.
Also kurzer Hand, in AVRStudio4 ein .c projekt erstellt, und den Code 
reinkopiert:
1
#include <inttypes.h>
2
#include <avr/io.h>
3
4
5
int main(void)
6
{
7
    uint8_t   led; 
8
    uint8_t   keys;
9
    
10
11
    DDRB  = 0xff;                  // use all pins on PortB for output 
12
    DDRD  = 0x00;                  // use all pins on port D for input
13
    
14
    PORTD = 0xff;                  // activate internal pull-up
15
    PORTB = 0xff;                  // set output high -> turn all LEDs off
16
    
17
    for (;;) {                     // loop forever   
18
        keys = ~PIND;              // read input port with switches
19
(active-low)
20
        
21
        if ( keys & 1 )
22
            led = 1;
23
        else if ( keys & 2 )       // priority encoder: if multiple switches are pressed,
24
            led = 2;               // only the lowest switch is recognized
25
        else if ( keys & 4 )
26
            led = 4;
27
        else if ( keys & 8 )
28
            led = 8;
29
        else if ( keys & 0x10 )
30
            led = 0x10;
31
        else if ( keys & 0x20 )
32
            led = 0x20;
33
        else if ( keys & 0x40 )     
34
            led = 0x40;             
35
        else if ( keys & 0x80 )      
36
            led = 0x80;
37
        else
38
            led = 0;
39
            
40
        if ( keys ) 
41
            PORTB = ~led;           // Set corresponding LED if switch pressed
42
    }
43
}

Nun im Handbuch steht, dass die Status LED beim Programmieren Orange 
Leuchten sollte. Nur die Power LED is an - Die LED an der Seite blinkt 
beim drücken des PROG Tasters 2?mal auf.
Das zweite, mal erkennt das Studio mein Board könnte schreiben, kann 
aber kein µC auswählen! Dann dachte ich Liegts am Studio, also WinAVR . 
hex erzeugt und dann mit myAVR_ProgTool versucht. Das geht, bis das 
mittendrin aufhört und stehenbleibt(hellrotes Ausgabefenster mit der 
Ausgabe, dass der Zugriff auf COM1(hab ich auf 115kBaud) verweigert sei.
Das ganze Funtioniert mit keinem Atmega8 und dem IC der dabei war!

Hier bilder vom Aufbau:
http://www.pictureupload.de/originals/pictures/220410110828_P4220599.JPG
http://www.pictureupload.de/originals/pictures/220410110959_P4220597.JPG
Was mache ich falsch?

Hoffe man kann mir helfen und reißt nich direkt meinen Neuling-Thread 
auseinander :)

von Chrisi (Gast)


Lesenswert?

Ich glaub dein ISP kabel ist falsch angesteckt, das muss, soweit ich 
weiß, vom untersten Pin-Header auf den Grünen gehen

gruß
Chrisi

von Chrisi (Gast)


Lesenswert?

d'oh sorry jetzt seh ich, dass es so ist

von Chris (Gast)


Lesenswert?

Marcel R. schrieb:
> Hoffe man kann mir helfen und reißt nich direkt meinen Neuling-Thread
> auseinander :)

Nein, nur wegen deiner Rechtschreibung :-)

Soweit man das auf dem doch recht unscharfen Bild erkennen kann, ist das 
ISP-Kabel richtig gesteckt und als Taktquelle ist der 
Software-Oszillator des STK500 gewählt.

Das AVR Studio findest also das STK500. Und dann? Was passiert wenn Du 
die Signatur des ATmega auslesen möchtest? Eine detaillierte 
Fehlerbeschreibung wäre schon hilfreich.

von spess53 (Gast)


Lesenswert?

Hi

>dass der Zugriff auf COM1(hab ich auf 115kBaud) verweigert sei.

Bist du sicher, das dein USB-RS232-Adapter auf COM1 liegt?

MfG Spess

von Marcel R. (matze_89)


Lesenswert?

>Das AVR Studio findest also das STK500

Nicht immer! Jetzt z.B. nicht!

http://www.pictureupload.de/originals/pictures/220410115732_fehler1.jpg
http://www.pictureupload.de/originals/pictures/220410120140_fehler2.jpg

Beim Zweiten link ist nich der korrekte µC auswählbar.

>Hi

>>dass der Zugriff auf COM1(hab ich auf 115kBaud) verweigert sei.

>Bist du sicher, das dein USB-RS232-Adapter auf COM1 liegt?

>MfG Spess

Definitiv, habs im Gerätemanger eingestellt.

von Chris (Gast)


Lesenswert?

AVRprog wird nur verwendet, um eine neue Firmware auf das STK500 
aufzuspielen. daher kannst Du auch keinen anderen Controller auswählen, 
da dort ein ATmega8535 verbaut ist.

Da du dich gar mit dem STK500 verbinden kannst (der andere Dialog), 
musst Du dort das Problem erst einmal in den Griff bekommen. Wähle dort 
mal explizit den korrekten Port aus.

von Peter D. (peda)


Lesenswert?

Unter Windows darf man keiner Anwendung die UART unterm Hintern 
wegziehen.
Also erst USB-RS232 Umsetzer einstecken, dann AVRStudio starten.


Peter

von Marcel R. (matze_89)


Lesenswert?

>AVRprog wird nur verwendet, um eine neue Firmware auf das STK500
>aufzuspielen. daher kannst Du auch keinen anderen Controller auswählen,
>da dort ein ATmega8535 verbaut ist.

Dann habe ich ein Problem. Ich war in der Annahme, dass das µC
Brenntool ist. Und habs damit versucht(Studio hat nich gemeckert). Jetzt 
hab ich wahrscheinlichLED Programm da drauf... wo kann ich die aktuelle 
Firmware herbekommen?

>Unter Windows darf man keiner Anwendung die UART unterm Hintern
>wegziehen.
>Also erst USB-RS232 Umsetzer einstecken, dann AVRStudio starten.


>Peter

Mach ich auch so

von Chris (Gast)


Lesenswert?

Marcel R. schrieb:
> Dann habe ich ein Problem. Ich war in der Annahme, dass das µC
> Brenntool ist. Und habs damit versucht(Studio hat nich gemeckert). Jetzt
> hab ich wahrscheinlichLED Programm da drauf... wo kann ich die aktuelle
> Firmware herbekommen?

Nein, wahrscheinlich nicht. Falls doch wäre das aber auch kein großes 
Problem:
AVR Studio -> Menü -> AVR Tools User Guide -> STK500... -> 
Troubleshooting -> Manual Firmware Upgrade

von spess53 (Gast)


Lesenswert?

Hi

>Dann habe ich ein Problem....

Einfach das STK aus- und wieder einschalten. Dabei Status-Led 
beobachten. Wenn rot-orange-grün-aus-grün kommt ist alles IO.

MfG Spess

von Marcel R. (matze_89)


Lesenswert?

>Nein, wahrscheinlich nicht. Falls doch wäre das aber auch kein großes
>Problem:
>AVR Studio -> Menü -> AVR Tools User Guide -> STK500... ->
>Troubleshooting -> Manual Firmware Upgrade

Danke, es lebt wieder :)

Nun ja.
> http://www.pictureupload.de/originals/pictures/220410115732_fehler1.jpg

Der Fehler besteht noch, hier nen Ausschnitt ausm Gerätemanger:

http://www.pictureupload.de/originals/pictures/220410124456_fehler3.jpg

von Chris (Gast)


Lesenswert?

Hm, die Verbindung scheint ja eigentlich zu funktionieren wenn das 
Aufspielen einer neuen Firmware klappt. Starte ich AVRprog im Studio 
ohne angeschlossenes STK500 kommt nämlich die Meldung "No supported 
board found".

Die benötigten Anschlusseinstellungen für COM1 sollte das AVR Studio 
doch selbst setzen. Da musst Du nichts ändern.

Wenn COM1 wirklich der korrekte Port ist habe gerade auch keine Idee 
mehr.

von Marcel R. (matze_89)


Lesenswert?

>"No supported board found".

Das steht dann bei mir auch!
Das überspielen ging ohne Probleme. ~2min hat es gedauert.

Komisch!
Wenn ich das STK einschalte ohne den Programm Button zu drücken bekomme 
ich eine Verbindnung, mit Programm nicht. confused!

/e
>Wenn COM1 wirklich der korrekte Port ist habe gerade auch keine Idee
>mehr.

Hab mal weiter im Gerätemanger gegraben, vllt findet sich da was:

http://www.pictureupload.de/originals/pictures/220410130726_fehler.jpg

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


Lesenswert?

Marcel R. schrieb:
> Wenn ich das STK einschalte ohne den Programm Button zu drücken bekomme
> ich eine Verbindnung, mit Programm nicht

Das ist auch okay so. Der Program-Button dient nur dem manuellen 
Firmwareupdate. Lies doch mal die Doku zum STK500, die in der 
AVR-Studio-Hilfe zu finden ist.

von Chris (Gast)


Lesenswert?

Marcel R. schrieb:
> Wenn ich das STK einschalte ohne den Programm Button zu drücken bekomme
> ich eine Verbindnung, ohne nicht. confused

Bitte was? Ohne bekommst Du eine Verbindung und ohne nicht? Was denn 
nun? Drücke dich klar und verständlich aus!

http://www.mikrocontroller.net/articles/Netiquette

von spess53 (Gast)


Lesenswert?

Hi

> confused!

Wenn du dein unsystematisches Vorgehen meinst, dann ja.

MfG Spess

von Marcel R. (matze_89)


Lesenswert?

>Das ist auch okay so. Der Program-Button dient nur dem manuellen
>Firmwareupdate. Lies doch mal die Doku zum STK500, die in der
>AVR-Studio-Hilfe zu finden ist.

Mhm, ich hab mir das Handbuch auf der CD durchgelesen. Das hab ich dann 
wohl ganz falsch verstanden!

>Bitte was? Ohne bekommst Du eine Verbindung und ohne nicht? Was denn
>nun? Drücke dich klar und verständlich aus!

>Wenn du dein unsystematisches Vorgehen meinst, dann ja.

Entschuldigung.

Ich wollte damit sagen, dass ich eine Verbindung zwischen STK und
dem Studio herstellen kann, wenn ich nur das Board einschalte und weiter 
nichts verändere.
Wenn ich den Programm Button drücke, während ich das Board starte 
bekomme ich keine Verbindung.

von Chris (Gast)


Lesenswert?

Marcel R. schrieb:
> Ich wollte damit sagen, dass ich eine Verbindung zwischen STK und
> dem Studio herstellen kann, wenn ich nur das Board einschalte und weiter
> nichts verändere.

Dann funktioniert es doch auch :-) Dort solltest Du dann in der Lage 
sein den richtigen Controller einzustellen und dessen Signatur 
auszulesen. Wenn das klappt kannst Du ihn auch programmieren.

von spess53 (Gast)


Lesenswert?

Hi

>Mhm, ich hab mir das Handbuch auf der CD durchgelesen.

Das aktuellste findest du in der Hilfe zu AVR-Studio.

>Wenn ich den Programm Button drücke, während ich das Board starte
>bekomme ich keine Verbindung.

Weil dann der Bootloader für ein Firmwareupdate gestartet wird.

MfG Spess

von Marcel R. (matze_89)


Lesenswert?

Danke für eure Hilfe/Geduld!

Es hat funktioniert, das LED Programm läuft.

Ich werd mir mal das übersetzte Handbuch zu Gemüte führen.

von Chris (Gast)


Lesenswert?

Marcel R. schrieb:
> Ich werd mir mal das übersetzte Handbuch zu Gemüte führen.

Mein Tip: Lern Englisch! Datenblätter übersetzt dir auch keiner. Im oben 
angesprochenen E-Technik Studium wirst Du übrigens auch nicht drumherum 
kommen :-)

von Marcel R. (matze_89)


Lesenswert?

>Mein Tip: Lern Englisch! Datenblätter übersetzt dir auch keiner. Im oben
>angesprochenen E-Technik Studium wirst Du übrigens auch nicht drumherum
>kommen :-)

Ich such andauernd Datenblätter für Bauteile raus.
Das ist aber immer das selbe: Parameter, die Kurven,
Beispielschaltungen und halt die Maße von dem betreffenden Bauteil.
Da kann man sich eingewöhnen.
Da hast du Recht, dass ich noch was an meinem Englisch tun muss.
Vor allem auf das Fach bezogen, kennst du da passende Literatur?
Fachwörter...usw.

von Martin (Gast)


Lesenswert?

Hallo,
und wo genau war das Fehler??
im dein erstes Bild ist der Power LED an aber der Target LED leuchtet 
nicht, wenn der Jumper (von Target) gesetz ist (wie in dein Bild) muss 
er auf alle Fehler leuchten.

von Marcel R. (matze_89)


Lesenswert?

Hallo Martin,

Ich habe 2 Fehler gemacht.

1. Ich habe die Firmware des STK überschrieben. Die kann man wie oben 
beschrieben wiederherstellen. Das hatte sich dadurch geäußert, dass beim 
einschalten des STK die Status LED nicht von rot über orange nach grün 
gewechselt hat.

2. Ich habe mich verlesen und gedacht, dass ich zum beschreiben des µC 
den Programm Button drücken muss. Man muss einfach nur das Board 
anmachen.

Hoffe das Hilft dir.

von Chris (Gast)


Lesenswert?

Marcel R. schrieb:
> Vor allem auf das Fach bezogen, kennst du da passende Literatur?
> Fachwörter...usw.

Ich persönlich denke, dass das Lesen von Fachliteratur (z.B. 
Datenblätter) dafür die beste Methode ist. Zum Übersetzen einzelner 
Wörter genügt eigentlich LEO. Ich habe hier zwar auch ein Fachwörterbuch 
für E-Technik von Langenscheidt liegen, aber das benutze ich doch eher 
selten.
In nächster Zeit wirst Du ja auch sicher häufiger hier rein schauen :-)
http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Falls Du Interesse an einem guten Buch in Bezug auf Elektronik allgemein 
hast, dann schaue dir mal folgendes an (kann man ja auch erst einmal nur 
ausleihen):
Horowitz/Hill: The Art of Electronics
Das ist zwar mittlerweile schon etwas in die Jahre gekommen, aber meiner 
Meinung nach das englischsprachige Standardwerk schlechthin.

Viel Erfolg!

von Marcel R. (matze_89)


Lesenswert?

>Falls Du Interesse an einem guten Buch in Bezug auf Elektronik allgemein
>hast, dann schaue dir mal folgendes an (kann man ja auch erst einmal nur
>ausleihen):
>Horowitz/Hill*: The *Art of Electronics*
>Das ist zwar mittlerweile schon etwas in die Jahre gekommen, aber meiner
>Meinung nach das englischsprachige Standardwerk schlechthin.

>Viel Erfolg!

Danke für den Tipp!

von Peter D. (peda)


Lesenswert?

Chris schrieb:
> Horowitz/Hill: The Art of Electronics

Also mich hat das nicht überzeugt.
Die Schaltungen sind nicht immer nachbausicher.
Ist quasi ein westlicher Hagen Jakubaschk.

Man sollte die Schaltungen nur als Anregungen verstehen und muß sie dann 
selber nochmal gründlich überdenken.


Peter

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.