Forum: Mikrocontroller und Digitale Elektronik stk500 und linux: einsteigertipps


von An F. (hallofrage)


Lesenswert?

hallo,

ich will einen microcontroller in c programmieren und bin neu in der 
materie. und im moment suche ich noch nach dem passenden einstieg.

mein bisheriger weg:
ich habe das wiki-book c-programmierung gelesen. desweiteren bin ich 
gerade dabei das tutorial avr-gcc zu lesen (und hab schon einiges hinter 
mir). ausserdem habe ich bei mikrokontroller.net und an vielen anderen 
orten im netz gelesen und gelesen...
jetzt dachte ich, dass ich soweit wäre und habe mir ein stk500 gekauft. 
es ist mit einen usb-2-rs232-adapter am rechner angeschlossen.
ich verwende linux (debain lenny) und habe alle mögliche software 
installiert (u.a. avr-gcc, avrdude, eclipse mit avr-plugin,usw...).

ich habe mich an zwei tutorials geübt:
http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/avr_eclipse_tutorial
das zweite finde ich jetzt leider nicht mehr, aber es beschrieb das 
vorgehen mit konsolenbefehlen...

so - jetzt endlich die frage:
hat jemand eine weiteren tip für ein tutorial, mit dem ich es lernen 
kann, einen einfachen c-code zu erstellen und auf den controller zu 
laden?
ich bin für jeden einstiegstip dankbar (gui oder konsole)...

vielen dank und schöne grüsse

von gast (Gast)


Lesenswert?

vorausgesetzt, du hast das avr-gcc tutorial nicht nur gelesen, sondern 
auch ausprobiert:

besser als ein tutorial:
verwende dein bisher angesammeltes wissen und mach ein eigenes kleines 
projekt, z.b. einen einfachen led-zähler mit 4 leds und 3 tasten 
(vorwärts, rückwärts, reset (nicht den controller, nur den zählerwert).
wenn das geklappt hat, such dir eine neue - ein bisschen 
anspruchsvollere - aufgabe.

falls du das tutorial aber nur gelesen hast, dann programmier die 
aufgaben nach (im assembler-tut gibts afaik ein paar mehr) möglichst 
OHNE auf die beispielcodes zu schauen (datenblatt!)

von An F. (hallofrage)


Lesenswert?

hallo,

zunächst einmal vielen dank für die schnelle antwort!

vielleicht habe ich mich missverständlch ausgedrückt: das programmieren 
habe ich zwar noch nicht drauf, aber da werde ich schon reinkommen. 
bisher fehlt mir der einstieg in das "wie" nach dem coden (kompilieren, 
linken, upload und der kram).
als erster programm könnte ich ja z.b. die erste aufgabe aus dem 
gcc-avr-tutorial nehmen, aber wie wird der code zur maschinensprache und 
wie kommt er in den controller (in der theorie klar, aber wie in der 
praxis unter linux)?
irgendwie bin ich mit dem theoriewissen und den man-pages von avr-gcc, 
avrdude usw allienbe überfordert.

dafür suche ich ein tutorial oder sowas...

(das gcc-avr-tutorial habe ich bisher nur gelesen, aber deshalb habe ich 
mir jetzt ja das stk500 gekauft - zum selber in der praxis ausprobieren)

nochmal danke und grüsse
vom anfänger

von Ronald S. (mline)


Lesenswert?

Guck dir im avr-gcc Tutorial mal "Makefile" an.
Ist dieses korrekt kannst du mit

make all
das programm compilieren und mit

make program
auf den AVR brennen.

Wichtig ist aber das im Makefile alles korrekt eingetragen wurde.

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


Lesenswert?

Ronald S. schrieb:

> Wichtig ist aber das im Makefile alles korrekt eingetragen wurde.

Was für den konkreten Fall bedeutet, dass

AVRDUDE_PROGRAMMER = stk500v2
AVRDUDE_PORT = /dev/ttyUSB0

eingestellt worden sind.

von An F. (hallofrage)


Lesenswert?

hallo ihr beiden,

danke - so einen tip meinte ich!

es leuchten jetzt zwar die leds an p2-p5, aber das ist ja ein fehler, um 
den ich mich selbst kümmern kann.
zumindest hab ich jetzt etwas auf den controller geschickt und bin sehr 
happy!

so - und jetzt kann ich mit dem avr-gcc-tutorial rumspielen...

nochmals danke und schöne grüsse
vom anfänger

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


Lesenswert?

An Fänger schrieb:

> es leuchten jetzt zwar die leds an p2-p5, aber das ist ja ein fehler, um
> den ich mich selbst kümmern kann.

Sowohl die LEDs als auch die Taster am STK500 sind low-aktiv.

von An F. (hallofrage)


Lesenswert?

super info - danke.
erstaunlich nur, dass led 6 und 7 nicht leuchten. aber da werde ich 
schon noch dahinter kommen...

nochmal allen dank für die hilfe.
grüsse vom anfänger

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


Lesenswert?

An Fänger schrieb:

> erstaunlich nur, dass led 6 und 7 nicht leuchten. aber da werde ich
> schon noch dahinter kommen...

Vielleicht hat der Controllerport, den du benutzt hast, ja gar keine
Bits 6 und 7?  Nicht jeder Port an jedem AVR hat alle 8 Bits, das
ist erst ab den 40-pinnigen Typen (aufwärts) dann gegeben.  Selbst
da gibt es Ausnahmen wie den Port G bei den 64- und 100-Pinnern.
Dieser hat nur 5 Bit, da er Leitungen zusammenfasst, die bei den
Vorgängertypen gar nicht als Portpins verfügbar waren (sondern nur
als Sonderfunktion).

von An F. (hallofrage)


Lesenswert?

hallo jörg,

auch diesmal wieder vielen dank.
du hast natürlich wieder recht - wenn ich das datenblatt richtg lese, 
sind beim atmega8 pin B keine bits 6 und 7 vorhanden. es ist also alles 
richtig...

du wirst in den nächsten wochen bestimmt noch einige "dumme fragen" von 
mir bekommen :-)

danke und grüsse
der anfänger

von gast (Gast)


Lesenswert?

wenn alle deine weiteren fragen in der qualität wie die hier gestellt 
werden, sind es eigentlich keine dummen fragen und die chancen auf 
sinnvolle antworten stehen sehr gut.

dass es keine "dummen fragen" gibt ist aber ein gerücht - 
gegenbeispiele: "schläfst du schon", "warum funktioniert die led nicht, 
wenn ich sie in die steckdose stecke", ... ;-)

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


Lesenswert?

Tu uns allen nur einen Gefallen dabei: neues Thema, neuer Thread.  Dass
du mal Probleme hattest zu verstehen, wie man einen STK500 unter Linux
einbindet, interessiert niemanden mehr, wenn du eines Tages Rat suchst,
um einen Hebdrehwähler an einen AVR anzubinden. ;-)

von An F. (hallofrage)


Lesenswert?

auch hier wieder danke für die hinweise - werde versuchen, mich dran zu 
halten...

aber jetzt gibts erstmal noch ne frage in diesem thread:
sehe ich das richtig, dass es sich bei dem hier vorgeschlagenen weg um 
isp und nicht um high-voltage-programming handelt?

wenn ja: im stk500-manual steht, dass der jumper bsel2 dann nicht 
gesetzt sein soll (und das soll default sein). bei mir war/ist er aber 
(ab werk oder zumindest ab kauf) gesetzt. was nun tun? lassen oder 
wegnehmen (nach anleitung würde ich ihn wegnehmen, aber funktioniert hat 
es ja mit gesetztem jumper)? oder alles egal?

(wenn es eine ausführliche erklärung im netz gibt, dann lese ich auch 
gerne die und niemand muss das erneut erklären. ich bin beim suchen nur 
noch etwas hilflos, weil all die begriffe so neu für mich sind und ich 
erst reinkommen muss...)

danke und grüsse
vom anfänger

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.