Forum: Mikrocontroller und Digitale Elektronik STK500 + AVR Studio


von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Vorgeschichte:

Ich habe mit Netduino / Arduino ein wenig Erfahrung im 
Microcontroller-Bereich gesammelt. Da dacht ich mir, ich versuch mich 
mal direkt am µC. Also in ebay einen STK500 gekauft und einen Atmel 
ATmega8L-8PU.

Ich habe alles angeschlossen (nach: 
http://wiki.mech.uwa.edu.au/upload/2/28/ATMega8_pinout.gif und 
http://www.mikrocontroller.net/wikifiles/9/97/Avr-isp-pinout.png ).

USB Treiber installiert, AVR Studio 6 installiert.

Nun fangen die Probleme an:

Ich bin nach dieser Anleitung vorgegangen:

http://www.pololu.com/docs/0J36/3.b

Code copy & pasted und gleich der erste fehler:
1
#define F_CPU 20000000    // AVR clock frequency in Hz, used by util/delay.h
2
#include <avr/io.h>
3
#include <util/delay.h>
4
 
5
int main() {
6
    DDRD |= (1<<DDD1);          // set LED pin PD1 to output
7
    while (1) {
8
        PORTD |= (1<<PORTD1);   // drive PD1 high
9
        _delay_ms(100);         // delay 100 ms
10
        PORTD &= ~(1<<PORTD1);  // drive PD1 low
11
        _delay_ms(900);         // delay 900 ms
12
    }
13
}

'DDD1' undeclared (first use in this function)

gegoogled und nichts gefunden.

Okay, dann hab ich den Code geändert, dass er kompilierbar wurde. (nicht 
zum benutzen, sondern nur zum versuchen, ob der ISP geht)

Also "Extras" -> "Add STK500" -> "Port COM11" -> Apply
das ging schonmal.

danach "Extras" -> "Device Programming" -> "STK500", "ATmega8A" und 
"ISP"  ausgewählt.
"Apply" geklickt -> Fehler: "Unable to connect to tool STK500 (COM11)"
"Failed to open COM11. Error 0x2."


Könnt ihr mir helfen? :(

PS: Im Anhang ist die verkabelung auf dem Breadboard.


Grüße und schonmal Danke,

Tom

von STK500-Besitzer (Gast)


Lesenswert?

>'DDD1' undeclared (first use in this function)

Die Fehlermeldung ist auch falsch...
Guck dir mal das Datenblatt zu deinem Controller an. Dann suchst bitte 
den PortD!

von STK500-Besitzer (Gast)


Lesenswert?

>"Extras" -> "Device Programming" -> "STK500", "ATmega8A"

Atmega8A != Atmega8L!

Du musst schon das richtige Device auswählen.

von spess53 (Gast)


Lesenswert?

HI

Das ist aber kein STK500.

MfG Spess

von STK500-Besitzer (Gast)


Lesenswert?

spess53 schrieb:
> Das ist aber kein STK500.

soll wohl was kompitables sein...

von avr (Gast)


Lesenswert?

Erinnert an das AVRLab von Ulli.

avr

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Erstmal danke für die antworten!

Ich kann nur ATmega8 oder ATmega8A auswählen. Was mach ich dann?

Dieser ist der ISP:

http://www.ebay.de/itm/150786990315

@Post 1: wie gesagt, das ist mein erstes mal direkt mit AVR, ich hab 
keine Ahnung was du mir sagen willst Oo

Im Anhang nochmal die (falsche? oO) Fehlermeldung im VS.

von STK500-Besitzer (Gast)


Lesenswert?

Tom schrieb:
> Was mach ich dann?

Den Atmega8 ohne A nehmen und es vermeiden, eine Taktfrequenz größer als 
8MHz zu benutzen.

von STK500-Besitzer (Gast)


Lesenswert?

Tom schrieb:
> @Post 1: wie gesagt, das ist mein erstes mal direkt mit AVR, ich hab
> keine Ahnung was du mir sagen willst Oo

Hast du mal im Quellcode nach "DDD1" gesucht?

von Thomas E. (thomase)


Lesenswert?

Tom schrieb:
> danach "Extras" -> "Device Programming" -> "STK500", "ATmega8A" und
> "ISP"  ausgewählt.
> "Apply" geklickt -> Fehler: "Unable to connect to tool STK500 (COM11)"
> "Failed to open COM11. Error 0x2."
Früher, also damals, als man noch so richtig schön mit echtem C++ 
PC-Programme geschrieben hat, konnte man die Schnittstellennamen als 
Alias nur von COM1 bis COM9 eingeben sonst musste man den Devicenamen
nehmen: "\\\\.\\COM127".
Das ist heute auch noch so. Nur daß .Net einem die Arbeit und das 
Nachdenken dafür abnimmt.
Wenn der Programmierer des Treibers für deinen Programmer, der sicher in 
richtigem C++ geschrieben wurde, allerdings nur die Aliase für die COM 
verwendet hat, kannst du nur die COMs von 1 bis 9 verwenden.
In der Beschreibung auf der e-bay-Seite steht auch "COM1..COM9"
Muss nicht unbedingt so sein. Aber schliesse das mal aus, indem du den 
Comport umbenennst.

Ausserdem fehlen auf deinem Breadboard die Stützkondensatoren.

mfg.

von Tom (Gast)


Lesenswert?

Danke für die Info mit dem COM Port!
ich habe den Port auf COM2 geändert. Nun kommt ein anderer Fehler:

"The signature of the attached tool is AVRISP_2, which is unexpected."

In welchem Quellcode soll ich nach "DDD1" suchen? Was ist das überhaupt?


Danke!

von Thomas E. (thomase)


Lesenswert?

Tom schrieb:
> Also in ebay einen STK500

> "The signature of the attached tool is AVRISP_2, which is unexpected."
Die Verbindung klappt dann ja zumindest.
Das, was du gekauft hast, ist aber auch kein STK500 sondern ein 
AVRISPMKII-Klon.
Du kannst natürlich Pech haben, daß das Studio 6 sich weigert mit 
irgendwelchen Nicht-Original-Atmel-Tools zusammen zu arbeiten. Studio 4 
ist da wesentlich toleranter.

mfg.

von Thomas E. (thomase)


Lesenswert?

Tom schrieb:
> In welchem Quellcode soll ich nach "DDD1" suchen? Was ist das überhaupt?

Das ist die Nummer von Bit 1 im DDRD-Register.
Also "#define DDD1 1".

> DDRD |= (1<<DDD1);          // set LED pin PD1 to output
Gib einfach "DDRD |= (1 << 1);" ein und gut.

mfg.

von holger (Gast)


Lesenswert?

>In welchem Quellcode soll ich nach "DDD1" suchen? Was ist das überhaupt?

Genau, was ist DDD1 eigentlich? Wenn du nicht weisst was
das ist dann schreib es nicht hin. Schreib das hin was
da hingehört.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Okay, danke. Habe den ATmega8, nicht ATmega8A ausgewählt und es ging.

hab jetzt mal zum testen avr studio 4 istalliert und scheitere bereits 
beim erstellen eines Projektes. Was ist davon das richtige für meinen 
ISP?

Grüße

Tom

von holger (Gast)


Lesenswert?

>hab jetzt mal zum testen avr studio 4 istalliert und scheitere bereits
>beim erstellen eines Projektes. Was ist davon das richtige für meinen
>ISP?

>Das, was du gekauft hast, ist aber auch kein STK500 sondern ein
>AVRISPMKII-Klon.

Der kann nicht debuggen. Falsches Fenster ausgewählt.

von Thomas E. (thomase)


Lesenswert?

Tom schrieb:
> Was ist davon das richtige für meinen ISP?
Das hat mit dem ISP nichts zu tun, sondern ist die Auswahl des 
Debuggers.
Da du keinen Hardware-Debugger hast und man den Atmega8 sowieso nicht 
debuggen kann, wählst du einen der Simulatoren aus.
Welchen kann ich dir nicht sagen, hab' die noch nie benutzt. Ist aber 
erstmal auch egal.

mfg.

von Tom (Gast)


Lesenswert?

ich bekomms nicht hin. im avr studio 4 kenn ich mich überhaupt nicht aus 
und bekomme diese fehler:
1
Loaded plugin STK500
2
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.
3
Loaded plugin AVR GCC
4
Loaded partfile: C:\Program Files (x86)\Atmel\AVR Tools\PartDescriptionFiles\ATmega8.xml
5
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.
6
gcc plug-in: Output directory C:\Users\Lyra\Documents\AVR4\testLED\default\ does not exist
7
gcc plug-in: Created directory C:\Users\Lyra\Documents\AVR4\testLED\default\
8
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.
9
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.

hm...

Was würdet ihr mir für einen (halbwegs günstigen) ISP vorschlagen (am 
besten mit ebay link :P) der mit dem AVR Studio 6 einfach, ohne hacks, 
funktioniert?


Grüße Tom

von Tom (Gast)


Lesenswert?

Okay, ich hab ein wenig gegoogled und das avr toolchain installiert -> 
fehler war weg. Ich dachte, das output cleart sich bei jedem build neu 
(wie in vs ;) und hab mich die ganze zeit gewundert, warum er kein 
verzeichnis anlegen kann (obwohl er es ja konnte) naja. Gut.

Ich konnte jetzt builden und das hex file flashen.

Geht das komfortabler? Also Quasi einen "Starten" Knopf, bei dem das 
program direkt gebuildet und geflashed wird?

Grüße und herzlichsten Dank

Tom

von Stefan W. (dl6dx)


Lesenswert?

Tom schrieb:
> gcc plug-in: No AVR Toolchain installation found.

Du musst die Fehlermeldung auch lesen: AVR Studio finden den Compiler 
nicht.

Hattest du Atmel Studio 6 wieder deinstalliert?

Dann musst du die AVR Toolchain (gcc, Assembler, Linker...) separat 
nachinstallieren.

Grüße

Stefan

Edit: Du warst schneller...

von Stefan W. (dl6dx)


Lesenswert?

Tom schrieb:
> Also Quasi einen "Starten" Knopf, bei dem das
> program direkt gebuildet und geflashed wird?

Binnen kurzer Zeit wirst du merken, dass du das doch getrennt haben 
willst.
Denn du wirst wesentlich öfter einen Build starten, als flashen und 
testen.

Grüße

Stefan

von Joachim .. (joachim_01)


Lesenswert?

Bei AVRStudio muß man dafür AVRISP2 unter Properties -> Tool -> Selected 
debugger/programmer im pull-down Menü anwählen. Man hat dann die 
Möglichkeit den Code nur zu compilieren oder per Mausklick in einem 
Rutsch zu compilieren und einzuspielen. Bei AVRStudio4 geht das 
sicherlich ähnlich.

Daß der Clon mit AVRStudio6 nicht funktioniert kann ich mir nicht 
vorstellen; eigentlich hat die Toolchain ja auch mit AVRStudio gar 
nichts zu tun, dein Chinese wird von Avrdude gesteuert. AVRStudio ist so 
gesehen nur ein mächtiger Editor mit allgemeiner Verwaltungsfunktion 
(der Code wird von gcc und nicht von AVRStudio erzeugt).

Ich möchte die Komfortabilität der Intellisense- und 
Wortvervollständigungsfunktion nicht mehr missen, dewegen bin ich auch 
von Microchip etwas abgekommen. Wie ist das mit anderen Umgebungen wie 
zB. Eclipse und Netbeans... können die so was auch?

von Tom (Gast)


Lesenswert?

Okay, aber um auf meine vorherige Frage zurückzukommen:

Was würdet ihr mir für einen (halbwegs günstigen) ISP vorschlagen (am
besten mit ebay link :P) der mit dem AVR Studio 6 einfach, ohne hacks,
funktioniert?

Gibt es anständiges Debugging im AVR Bereich?

Könnt ihr mir Tutorials / Bücher vorschlagen um einen guten Einstieg zu 
erhalten?

Grüße,

Tom

von Chris (Gast)


Lesenswert?

Tom schrieb:
> Was würdet ihr mir für einen (halbwegs günstigen) ISP vorschlagen (am
> besten mit ebay link :P) der mit dem AVR Studio 6 einfach, ohne hacks,
> funktioniert?
Am besten beraten bist Du immer mit einem Originalprodukt vom 
Hersteller.
http://www.atmel.com/tools/AVRISPMKII.aspx

Tom schrieb:
> Gibt es anständiges Debugging im AVR Bereich?
http://www.atmel.com/tools/JTAGICE3.aspx

Falls Du Student/Schüler/o.ä. bist bekommst Du das ganze auch günstiger:
http://student.embedded-projects.net/

von Tom (Gast)


Lesenswert?

Dieser hier:

http://store.atmel.com/PartDetail.aspx?q=p:10500054

?

der ist aber ziemlich günstig :O

von Chris (Gast)


Lesenswert?

Ja, das ist der ISP von Atmel. Allerdings würde ich dir empfehlen, den 
lieber hier zu bestellen. Mit Versand, EUSt und Zoll bleibt es nicht bei 
diesem Preis. Für ca. 40 EUR inkl. Versand kannst Du ihn z.B. bei 
Watterott erstehen. Oder eben noch günstiger als Student unter o.g. 
Link.

Achja, hatte ich vergessen:
Der Dragon als Debugger wäre natürlich auch noch eine Option.
http://www.atmel.com/tools/AVRDRAGON.aspx
Der kommt jedoch ohne Gehäuse daher und reagiert empfindlicher als das 
JTAGICE3 falls Du ihn mal falsch anstöpselst.

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.