PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger braucht Hilfe bei AVR Microcontrollereinstieg



Jokill
06.03.2007, 14:23
Hallo Community,
ich und mein Bruder wollen ein bischen Microcontrollerprogrammierung lernen. Nach langem suchen sind wir zum Entschluss gekommen folgendes zu kaufen:
http://www.reichelt.de/?SID=22-yXAen8AAAIAAHEg0Acb995ac6d06d40f33fb608a2c45b624df ;ACTION=3;LA=4;GROUP=A38;GROUPID=2969;ARTICLE=3409 3;START=0;SORT=artnr;OFFSET=50
http://www.reichelt.de/?SID=22-yXAen8AAAIAAHEg0Acb995ac6d06d40f33fb608a2c45b624df ;ACTION=3;LA=3;GROUP=D41;GROUPID=590;ARTICLE=13291 ;START=0;SORT=artnr;OFFSET=50
Programmieren wollen wir damit einen AVR Atmega16.
Ist das alles miteinander kompatibel?
Was braucht man noch für den Anfang(Testplatine, Buch...)?
Programmieren will ich mit C, weil ich das schon ein wenig kann. Zudem haben wir schon ein wenig Grundkenntnisse in Elektrotechnik.

Mfg Jokill

Jon
06.03.2007, 14:45
Die beiden Teile, die ihr kaufen wollt wären OK.
Ich würde mich nur fragen, ob es nicht billiger wäre ein Testboard für einen ATMega16 oder ATMega32 selbst zu bauen.
Mit C kenne ich mich nicht aus, weswegen ich dir bei einem Buch oder so nicht weiterhelfen kann.

jon

robo junior
06.03.2007, 15:07
Hallo

Das AVR STK 500 ist sicherlich ziemlich universell. Mir wäre es aber zum Einstieg zu teuer. Hängt natürlich auch davon ab was ihr genau mit den Mikrocontrollern machen wollt. Aber z.B. um damit einen Roboter zu steuern ist das STK500 sichern nicht so gut geeignet.
Ich würde mir an eurer Stelle überlegen, ob ihr nicht ein bestimmtes Board kaufen wollt (dann seid ihr zwar u.U. auf einen bestimmten Controller festgelegt aber für den Anfang reicht das sicherlich.)
Habt ihr euch schonmal das RN-Controll Mega32 angeschaut? Finde ich eigentlich nicht falsch.
Was ich auch interessant finde ist das "Snug Board" (wird von Andree-HB hier aus dem Forum vertrieben). Hat die Vorteile, dass es billig ist (6€ gesamt), programmierung über normales ISP-Kabel (müsst ihr getrennt kaufen). Allerdings nur ein ATMega8 Controller (jenachdem was ihr machen wollt reicht der aber auch) und ihr müsst alles was ihr anschließen wollt selbst machen. (keine Motortreiber wie auf dem RN-Board, aber sowas hat das STK 500 ja auch nicht).
Programmieren in C finde ich eine gute Idee. 1. ist es kostenlos und unbeschränkt (WinAVR) und außerdem beschäftigt man sich ein bisschen mehr mit den Registern und der eigentlichen Funktion des Controllers, was einem in Bascom durch fertige Funktionen großen Teils abgenommen wird. Das macht es am Anfang ein bisschen schwieriger (PWM und solche Sachen) aber wenn man das Prinzip verstanden hat geht das auch recht gut. Bücher über C Programmierung würde ich mir nicht unbedingt kaufen. Es gibt relativ gute Tutorials (z.B. www.microcontroller.net) in denen man eigentlich genug erfährt.

v.g.
Andreas

Leuchtturm
06.03.2007, 18:02
Hi,

ich habe auch das STK500 in Kombination mit dem Netzteil. Der unschlagbare Vorteil bei dem Ding ist - es ist unheimlich verbreitet. Wenn Du mal ein Problem hast, wie "Mist, mein Controller funktioniert nicht, LED geht aus anstatt an", dann hat bestimmt schon irgendwer mit einem STK500-Board das gleiche Problem vor Dir gehabt.

Wenn Ihr in C programmieren wollt und schon einige Vorkenntnisse habt, dann ladet euch noch AVR Studio 4 und WinAVR runter und schon kanns losgehen.

Eine weitere Testplatine ist für den Anfang nicht nötig, später vielleicht schon, wenn man weitere externe Peripherie braucht.

Und ein Buch braucht es auch nicht unbedingt. Dafür gibts hier und in anderen Foren schon tolle Tutorials und Google spuckt auch ne Menge aus.

https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht
https://www.roboternetz.de/wissen/index.php/Avr-gcc

Wenn´s mit´m Geld nicht zu knapp ist, ist das STK500 sehr zu empfehlen.

Gruß
Ralf

Jokill
06.03.2007, 18:39
Aha, kannst du mir nochmal sagen wie das Board den funktioniert?
Sind da etwa schon Schaltungen vorkonstruiert die man dann noch programmieren muss mit dem Controller?
Oder kann man eigene Schaltungen noch erzeugen und austesten.
Welche Teile sollte man noch kaufen um einigermaßen viel mit dem STK anfangen zu können?

Ansonsten vielen Dank für diese Antworten.^^




ich habe auch das STK500 in Kombination mit dem Netzteil.

O:) hehe dann weiß ich schon wen wir ansprechen müssen wenn es Probleme gibt.^^

mfg

Jokill

Pyro-Mike
06.03.2007, 19:52
Hi,
ich habe das RN-Control gekauft, ich gehe aber immer mehr dazu über die Schaltungen auf einem Steckbrett aufzubauen.
So ein Steckbrett (auch Bread Board genannt) würde ich ich dir auch zusammen mit dem STK500 empfehlen!
Das gibt's auch bei Reichelt:
Art Nr.: STECKBOARD 4K7V (http://www.reichelt.de/?SID=20Ox3hrawQARQAACaxYcIdd34f09ffb64ffb0cc8f8084 362c5cae;ARTICLE=67683)

Lusbueb33
06.03.2007, 21:54
Das STK500 bietet nicht "vorkonstruierte" Schaltungen wie du wahrscheinlich meinst.
Es sind lediglich bereits die "Peripherie-Sachen" eingebaut. Du musst dich z. B. nicht darum kümmern wie du das Programm in den uC bringst.-Der Programmer ist gleich auf dem Board drauf(nehme ich an; ich hab kein STK500)

Mit einem uC programmierst du vorallem die Ports. Schaltungen, in dem Sinne wie du wahrscheinlich meinst(Roboter, Digitaluhr, ...), werden dann einfach über diese Ports mit dem Entwicklungsboard verbunden.
Das Board/der uC steuert als eine Art Hirn die Hardware(Schaltung, wie du's nennst).

Lusbueb33
06.03.2007, 22:32
Ein gutes Buch um C zu lernen mit AVR kenne ich nicht.-Hab zwar null Erfahrung mit AVR's; für mich sieht's aber so aus als ob man die besser mit Assembler programmiert.
Das AVRStudio4 von Atmel sieht auf jeden Fall deutlich professioneller aus als z.B. BASCOM. In AVRStudio ist jedoch Assembler gefragt.

Wenn du Hilfe im Netz suchst, findest du schnell jemand der dir ein Problem mit einem AVR erklärt, weil offenbar jeder "anständige Bastler" die verwendet. Wenn du aber ein Buch suchst wird's schwer, weil Bastler meist lieber ausprobieren und selbst darauf kommen als ein Buch zu lesen.
Ein Buch über das Thema herauszugeben lohnt sich also nicht sehr und wird wie ich feststellen musste auch nicht oft gemacht.

Ansonsten: C funktioniert ja überall gleich. Üb doch vorläufig auf dem PC, denn da gibt's viele gute Bücher wie z. B. :
http://www.mut.de/main/main.asp?page=home/bookdetails&SID={68C3BAF7-97A9-46AB-A605-CC6B53FC5A6E}&TOKEN={3D770C71-AD8C-4684-81A8-362E0D5CB79C}&productID=111672

Um einen bestimmten uC zu programmieren schaust du dann am besten ein paar Beispiele an.-Gibt's ja im Netz wie Sand am Meer.

Skynet
07.03.2007, 14:11
Hallo!

Ich habe die C-Control und überlege ob es nicht besser und günstiger währe
zu AVR´s zu wechseln. Nur wie ist das mit der Programmierung? die C-Contol
programmiere ich mit Basic, von C hab ich keine Ahnung. Kann ich AVR´s
auch mit Basic programmieren oder sollte ich mich auf ne andere Software umstellen?
Das Programmiergerät könnte ich mir auch e.v.t. selber bauen. Danke!

Jon
07.03.2007, 14:20
AVRs kannst du mit Bascom proggen. Ist nicht schwer umzusteigen. Habe ich auch geschafft :)

jon

Skynet
07.03.2007, 14:38
Dass ist ja nicht schlecht. AVR´s sind ja um einiges billiger als die C-Control,
ausserdem bräuchte ich ne neu, da der Eprom futsch ist, so funz noch aber
nach dem Abschalten ist das Prog weg. Mir ist Conrad eh zu teuer

Danke!

HPM
07.03.2007, 15:06
Hallo @lle,
um noch mal auf den Ursprung des Themas zu kommen!
Ich habe vor ca. einem Jahr auch mit etwas billigeren angefangen!

Man kann nie wissen, ob man mit dem System so einfach klar kommt.
Außerdem soll es ja Hobby bleiben ... oder?

Also, ich habe mir aus dem Roboternetz so einen "In System Programmer"
https://www.roboternetz.de/wissen/index.php/AVR-ISP_Programmierkabel nachgebaut

Weiterhin habe ich mir zwei Testboards oder Experimentierboard besorgt.
(so Lochplatten halt, an denen man Schaltungen testen kann)

Dann nochn paar MC's , paar LEDs und einen Bund 10k Widerstände bei Reichelt.

Habe mit dem AT2313 angefangen und arbeite jetzt, je nach Aufgabe mit den Tiny12 für kleine Anwendungen, ansonten mit dem Mega8.
Mit den Dingern kann man so ziehmlich alles machen.

Software habe ich die Freeware von Bascom und als Schlatplaneditor Eagle (auch die freie Version).

Alles zusammen für vielleicht 30-40 Euro. Also die Hälfte an Geld!
Durch das Nachlesen und Zusammenbasteln verschiedener Komponenten bin ich auch nicht dümmer geworden
und ich habe schon ein paar Projekte recht erfolgreich laufen!

Zum Schluss... es kommt halt immer darauf an, was man machen will!
Für den Anfang würde aber zum Probieren diese Variante reichen.

P.s. Ich hatte mir am Anfang auch ein Buch über MikroController gekauft,
wäre aber ohne Buch genausoweit gekommen ... dank Roboternetz und Co.

Frank
07.03.2007, 15:29
Tipps:
https://www.roboternetz.de/wissen/index.php/Mit_welchem_Controllerboard_fang_ich_an

Beachte das man ein Steckbrett nur für kleine Microcontrollerschaltungen mit niedriger Taktrate nutzen kann. Wegen der wirren Kabelführung und langen Kabel gibt es sonst ganz schnell Funktionsstörungen die sehr nerven können, siehe: https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht
Aber als Ergänzung ist Steckbrett ne feine Sache.

https://www.roboternetz.de/wissen/images/thumb/3/3b/Avrtutorial_steckbrett_max232.jpg/500px-Avrtutorial_steckbrett_max232.jpg

Jokill
07.03.2007, 17:36
Erstmal danke für die viele Hilfe die man hier bekommt. O:)
Ich möchte vor allem mit C programmieren weil ich es in der Schule eh lern und es mir nichts ausmacht wenn es etwas schwieriger ist.

Hab mir mal ein paar Tutorials durchgelesen und wollte anfangen irgendwas leichtes zu programmieren.
Dafür hab ich mir WinAVR runtergeladen(Hab gelesen da ist alles enthalten, auch GCC). Aber hab keine Ahnung wie ich da was kompilieren kann. Ist GCC ein Programm das ich ausführen kann oder wie geht das?
Bei AVR Studio 4 sieht es leichter aus. Welches von den beiden ist besser?

Mfg Jokill

Skynet
07.03.2007, 17:41
Ihr seit ja super!

Das muss ich mal ausprobieren, n grosses Steckbrett hab ich auch, ich hoffe dass ich mit der Software klar komme.
Bis dann!

Skynet
07.03.2007, 17:59
ups :oops:
Was mach ich wenn ich kein Com-Port am PC hab, ich hab nur n Laptop und der hat nur USB. Gibt es für die AMTEL-programmierung auch einen USB-adapter/Programmierschnittstelle. Für meine C-Control hab ich mir extra diesen USB-adapter mit bestellt, nur der soll mit dem AMTEL nicht komunizieren können.

Lusbueb33
07.03.2007, 23:21
@Jokill: Für mich ist's klar. AVRStudio ist am besten. Das Problem ist nur, die IDE verlangt Assembler; eine Sprache die doch etwas mehr Kenntnisse für die HW fordert als BASIC.
(Wie ich bereits erwähnt habe: Ich habe, was die AVRs angeht, eigentlich überhaupt keine Erfahrung. Ich kenne aber den 80x51 rel. gut, und Controller ist am Ende einfach Controller, oder?)

Meine Meinung was die Sprachen angeht:
C/C++ und Assembler ist IMMER gut. Damit bist du am PC schnell und klein, und für eine professionelle HW-Programmierung gibt's am Ende doch nichts anderes(BASIC KANN man hier einfach NICHT dazu nehmen, auch wenn wohl das halbe Forum rebelieren möchte).

Die Nachteile von ASM und C sind unteranderem:
Eher schwerere Sprachen, wenn man mit BASIC vergleicht. Du musst z. B. die HW gut verstehen(evtl. langweilig)

Schwer lesbarer Code(vorallem ASM) und man hat natürlich viel länger als mit VisualBasic od. Delphi um gewisse Sachen wie z. B. ein GUI zu programmieren.-Probier aber mal mit VB auch die HW zuzugreifen...

Es kostet einfach mehr Nerven und Zeit als BASIC.

@Skynet: Es ist gut möglich, dass ein einfaches Zwischenstück wie man's in jedem PC-Laden erhält passt. Musst dann der IDE einfach in den Optionen sagen, dass der Programmierdongel am USB ist. Bin aber nicht 100% sicher, ob das so einfach funktioniert.
Was verwendest du(BASCOM,AVRStudio,...)???

Reeper
08.03.2007, 02:54
Die Kabel vom Steckbrett können auch sehr kurz und übersichtlich gehalten werden. Ich sehe da keinen großen Unterschied zu gelöteten.
http://www.deviantart.com/deviation/50375938/

Skynet
09.03.2007, 19:05
Hallo Lusbueb33!

Ich verwende Basic++ für die C-Control, Basic war dass einziege was wir in der Schule behandelt hatten und so mit habe ich mich immer mehr in Basic probiert.
Wenn ich wüsste wie, dann würde ich auch in Maschinensprache Programmieren, dass habe wir n ganzen Monat bei der Ausbildung in Prozzessortechnik behandelt, aber ganz grob

The Man
09.03.2007, 20:34
Hallo Jokill,

erstmal danke, das du mir die Gelegenheit gibst, endlich mal meine Erfahrungen zu posten.
Also ich bin jetzt gerade vin der C-Control 2 auf ATmega umgestiegen.
Als Hardware nutzte ich das hier: http://www.myavr.de/shop/artikel.php?artID=42
Und als Software eine Freeware. Ist allerdings noch unlizensiert und das bekommt man auch permanent gesagt und irgendwann geht das Programm aus. Ob es eine Freeware gibt, die das nicht macht, weiß ich nicht.
Was die Sprache angeht arbeite ich mich in Assembler ein. Gebe zu, dass das auch nicht so simpel ist. Als Beispiel: Um einen Analogwert zu digitalisieren, in den EEPROM zu speichern, den Vorgang mittels Timer zu verzögern und anschließend die Analogwerte wieder auszulesen habe ich drei Tage gebraucht und diverse Seiten Dateblatt gelesen - unglublich, was man da alles einstellen kann. Ein wie ich finde gutes Assembler TUT da: http://www.izaseba.roboterbastler.de/ (gern geschehen Sebastian)

The Man

wkrug
10.03.2007, 00:36
Weil hier immer nach Büchern gefragt wird...

Ich hab mir das Buch "Programmieren der AVR RISC Microcontroller mit BASCOM - AVR" zugelegt.
Ich hab damit einen guten Einstieg in BASCOM gehabt, mich aber dann letztendlich doch für C entschieden.

Für C hab ich mir das Buch "C Programmieren von Anfang an" zugelegt.
Ist aber sehr allgemein gehalten, vermittelt aber einen guten Einstieg in C und ist auch mit Übungsbeispielen versehen.

Vorher hab ich schon ein Jahr mal in Assembler geproggt, das war natürlich ein sehr guter Einstieg.

Ich würd dir Empfehlen ein paar kleine Sachen mal in ASM zu machen um ein Gefühl für die Microcontroller zu entwickeln und dann mit C einzusteigen.

Gerade die Hardwarezugriffe sind meiner Meinung nach in Assembler besser zu handeln als in einer Hochsprache.

BASCOM ist mir zu weit vom Maschinencode entfernt um mich zu begeistern, aber da gibts auch andere Meinungen.

Welches Experimentierboard du letztlich verwenden willst, hängt von deinen Ansprüchen und deinem Geldbeutel ab.

Ich hab mir das Experimentierboard von Pollin geholt und komme gut zurecht damit. Leider gibts das nicht mehr.

milkbubi
10.03.2007, 00:50
Hi,


Was mach ich wenn ich kein Com-Port am PC hab, ich hab nur n Laptop und der hat nur USB.
also ich hab mir fürn lappi auch einen ganz einfachen USB auf COM adapter geholt, funktioniert einwandfrei. Musst dann nur eben im Gerätemanager die Einstellungen überprüfen.

mfg milkbubi

Christopher1
10.03.2007, 01:42
Aber jeder funktioniert auch nicht

Jokill
10.03.2007, 15:20
So nun sind alle Teile da.
Das STK500 ist angeschlossen, wir konnten auch mithilfe der beigelegten Literatur ein LED zu blinken bringen.
Dennoch stell ich mir 2 Fragen die ich an euch richte:

1. Warum kann das Kästchen "Serial Program Downloading" im Programm AVR-Studio nicht aktiviert werden. Stattdessen ist ein Fragezeichen dort.

2. Wieso können wir nicht den EEPROM programmieren, obwohl unser Takt der ISP-Frequenzy weniger als 1/4 der Clock-Frequenzy ist.

mfg Jokill