PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Programmiergerät oder Starterkit für 8/16/32 Bit µCs



vali
19.01.2011, 00:14
Zum Gruße :-)

Ich möchte gerne das Programmieren von µ-Controllern lernen. Die wohl bekanntesten Seiten im Netz ist die eurige und mikrokontroller.net. Das Tutorial von z.B. Mikrokontroller.net beschäftigt sich nur mit 8-Bit µ-Controllern, ich will aber nicht viel Geld für ein 8-Bit Starterset ausgeben wenn ich genau weiß, dass ich dannach auch mit 16Bit und evtl. sogar 32Bit Controllern arbeiten will.

Meine Frage ist nun, gibt es ein gutes Programmiergerät für 16-Bit und/oder 32-Bit Controller oder gibt es bekannte Starterkits dafür (8-Bit µCs sollen damit selbstverständlich auch programmiert werden können)? Bedingung soll hier aber sein, dass ich die Controller mit beidem, Assembler und C programmieren kann.

Ich habe gehört, mit dem STK500 kann man auch 16-Bit programmieren obwohl dort nur 8-Bit µ-Controller draufpassen??? Ist der AVR-ISP mkII Programmer von Atmel dann auch fähig auf 8-Bit µ-Controllern mit 16-Bit zu programmieren?

Für mich muss es nicht unbedingt Atmel sein hauptsache es ist ein Hersteller der gute Hardware baut welche günstig zu beziehen ist und einen guten Support hat. Andererseits hat Atmel einen enorm guten Ruf und deren µCs sind wohl für Anfänger besonders interessant.

Ich blicke wirklich gar nicht durch, aber ich bin ja auch ein Neueinsteiger :-)

Wenn Ihr mir hierbei behilflich sein könntet wäre ich Euch wirklich dankbar :-)

hardware.bas
19.01.2011, 06:56
Atmel hat nicht umsonst solch einen guten Ruf. Obwohl sich z.B. AVRs
perfekt für professionelle Lösungen eignen, sind sie gerade für Anfänger
perfekt. Ein Programmiergerät, ich empfehle selber bauen für ca. 10 EUR
für AVRs ist trotz weiterschweifender Pläne keine Fehlausgabe, vor allem
lernt man die Hardware der Chips kennen und das Zusammenbauen
einfacher elektronischer Schaltungen. Desweiteren lassen sie sich
kinderleicht programmieren, wenn man den BASCOM-Compiler benutzt,
welcher das "Brennprogramm" bereits integriert hat. Ich denke, so
sollte an anfangen, der geringe Aufwand lohnt sich und dann kann die
Entscheidung für "grössere Chips" überdacht werden. Diese sind jedoch
meistens auf Grund ihrer Bauform (SMD) und des Fehlens einfacher
Compiler. sowie teurer "Brennsysteme" prädestiniert für Projekte, wo
man dann bereit ist, immenseren Aufwand zu betreiben. Also, die paar
Cents und Einarbeitungsminuten für das o.g. System würd ich
investieren und danach weitersehen. VG Micha

askazo
19.01.2011, 07:44
Ich denke mal, auf der Atmel-Schiene bist Du erst mal gut aufgehoben, da bekommst Du im Netz auf jeden Fall die meiste Hilfe zu.
Stellt sich noch die Frage, wie viel Du ausgeben möchtest.

Wenn Du erst mal preiswert einsteigen möchtest, schau Dich mal bei www.robotikhardware.de und www.elmicro.de um. Da gibt's preiswerte Programmiergeräte und Einsteigerboards. Die ISP-Programmer lassen sich für fast alle AVRs einsetzen, bei den Boards bist Du allerdings erst mal auf einen Controller festgelegt.

Wenn Du etwas mehr anlegen möchtest, empfehle ich Dir das STK600 von Atmel. Zum einen kannst Du mit dem Board jeden AVR-Controller von Atmel verwenden (8 und 32-Bit AVRs) kannst. Zum anderen ist auf dem Board bereits ein universeller Programmer enthalten, der alle Programmierschnittstellen der AVRs unterstützt, inkl. debugging über JTAG oder PDI. Damit können später auch Controller auf selbst erstellter Hardware programmiert werden.
Allerdings ist das Board mit knapp 200€ auch nicht gerade billig. Und Du brauchst für jeden neuen Controller eine Adapterplatine, die auch wieder ein paar Euronen kostet. Von Anfang an dabei ist ein ATmega 2560 (SMD-Version, fest auf der Adapterplatine verlötet). Gesockelte Adapterplatten, bei denen Du den Controller selbst austauschen kannst dürften bei etwa 60€ liegen. Also ein recht teurer Spaß, allerdings verwendest Du ja auch nicht wöchentlich einen neuen Controller.


Ich habe gehört, mit dem STK500 kann man auch 16-Bit programmieren obwohl dort nur 8-Bit µ-Controller draufpassen??? Ist der AVR-ISP mkII Programmer von Atmel dann auch fähig auf 8-Bit µ-Controllern mit 16-Bit zu programmieren?
Das STK500 ist nur auf die 8-bit AVRs beschränkt (ATXMega ausgeschlossen). 16-bit Controller gibt's von Atmel nicht. Die haben nur 8 und 32-bit. Mit dem ISP mkII kannst Du aber auch 32-bit Controller programmieren.
Korrektur: der ISP mkII unterstützt nur die 8-bit AVRs. Wenn ich das richtig gesehen habe, können die 32bit-AVRs nur mit JTAG programmiert werden.

Gruß,
askazo

oberallgeier
19.01.2011, 08:52
Hi vali,

willkommen im Forum.


... möchteProgrammieren von µ-Controllern lernen ... nicht viel Geld für ein 8-Bit Starterset ausgeben wenn ich genau weiß, dass ich dannach auch mit 16Bit und evtl. sogar 32Bit Controllern arbeiten will ...Kannst Du schon programmieren? Irgendetwas in irgendeinem Slang (*ggg* NICHT S-Lang)? Hast Du schon mal irgendetwas programmiert? Welche Projekte willst Du denn Programmieren?

Die Programmierung der 16- und 32bittigen Controller ist erheblich anspruchsvoller als die der 8bitter. Und wenn Du siehst, welche komplexen Operationen auf den 8bittern realisierbar sind, wirst Du evtl. die komplexeren Teile in den ersten Jahren Dir sparen. Ich habe in die AR M´s reingerochen. Musste dafür weder eine Softwareumgebung kaufen noch installieren und musste auch keine Hardware anschaffen - dafür habe ich Freunde *ggg*. Die anspruchsvollere Programmierung erfordert dabei sehr professionelles Vorgehen beim Softwareaufbau. Ohne saubere Dokumentation (1 Gramm pro Byte) steht man so schnell im Wald, wie man kaum ahnt. Und ich weiß, dass ich auf Jahre hinaus diese Mächtigkeit nicht brauche. Mal so: wenn Du autofahren lernen möchtest, wirst Du nicht in eine Rennschule für F1-Fahrer gehen. Na ja, es gibt solche Menschen. Schau Dir vielleicht Meine Lösungen an mit der "Mittelklasse" der 8Bitter, MiniD0 (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=533106#533106) oder den WALL R. (https://www.roboternetz.de/phpBB2/viewtopic.php?t=45658)

Ratschlag: Fang mit nem tiny13 oder einem mega8 auf einem einfachen Board an. Wenn Du C programmieren willst, dann ist AVRStudio eine kostenlose, sehr gute Wahl. Und zum Flashen der Programme gibts für 15 Steine hier (klick) (http://shop.ullihome.de/catalog/product_info.php/cPath/25_30/products_id/67)einen sehr guten 8-Bit-Programmer mit guter Dokumentation. Dies sind NUR Beispiele, Vorschläge. Es ist ja Deine Wahl, klar.

vali
19.01.2011, 16:26
@all
Ich habe früher einiges mit C++ gemacht, habe in dem Bereich schon etwas Ahnung, es würde sich also empfehlen mit C weiter zu machen.

Da ich aber Student bin habe ich die Möglichkeit einen Atmel Programmer sehr günstig zu bekommen. Ich denke bzgl. Kompatibilität sollte ich auch auf diesen zurückgreifen wenn ich mich für Atmel entscheide.

Es würde sich sogar fast anbieten an ein STK600 zu denken nur sind eben wie schon erwähnt die Zusatzplatinen nicht gerade billig. Mindestausgabe wäre dann immer noch 150€.

Vielleicht verstehe ich auch etwas ganz falsch: Ich habe nur folgendes Problem mit den 8-Bittern: Der Wertebereich von -128 bis +127 oder 0 bis 255. Der ist mit zu klein. Wenn ich also größere Werte verarbeiten will, dann muss ich immensen Aufwand treiben und das will ich eben nicht, deshalb denke ich an 16-Bit oder höher. Ich habe gehört, dass man auch zwei Ports (je 8-Bit) nutzen kann um "sozusagen" einen 16-Bit Port daraus zu machen, ist das so? Wäre das dann auch mit einem Programmiergerät möglich?

TobiKa
19.01.2011, 16:40
Vielleicht verstehe ich auch etwas ganz falsch: Ich habe nur folgendes Problem mit den 8-Bittern: Der Wertebereich von -128 bis +127 oder 0 bis 255. Der ist mit zu klein. Wenn ich also größere Werte verarbeiten will, dann muss ich immensen Aufwand treiben und das will ich eben nicht, deshalb denke ich an 16-Bit oder höher.
Ja, das verstehst du falsch!
Man kann natürlich Variablen mit mehr als einem Byte benutzen, und die Ports haben damit erstmal garnichts zu tun.

Ich habe hier ein sehr gutes Starterset angeboten: https://www.roboternetz.de/phpBB2/viewtopic.php?p=534927#534927
Falls er es nicht haben will, biete ich es auch dir gerne an.
Mit dem USB-ISP Programmer kannst du auch andere 8bit AVRs programmieren.

askazo
19.01.2011, 18:01
Mal ne ganz andere Frage:
Hast Du schon eine konkrete Vorstellung, was für Projekte Du mit Mikrocontrollern machen möchtest? Die Entscheidung 8-bit oder 32-bit zu benutzen, ist letztendlich hauptsächlich von der benötigten Rechenleistung abhängig. Der Hauptunterschied liegt eigenlich nur darin, wieviel Bits in einem Takt gleichzeitig verarbeitet werden können. Für sehr viele Anwendungen kommt man eigentlich mit einem 8-bit-Controller locker hin - was man auch darin sieht, dass 8-Bitter den weitaus größten Marktanteil aller verkauften Controller haben.
32-bit-Controller kommen z.B. dann zum Einsatz, wenn man hochauflösende Farbdisplays ansteuern möchte - also dann, wenn große Datenmengen sehr schnell verarbeitet werden müssen.

Gruß,
askazo

vali
19.01.2011, 18:44
Vielleicht verstehe ich auch etwas ganz falsch: Ich habe nur folgendes Problem mit den 8-Bittern: Der Wertebereich von -128 bis +127 oder 0 bis 255. Der ist mit zu klein. Wenn ich also größere Werte verarbeiten will, dann muss ich immensen Aufwand treiben und das will ich eben nicht, deshalb denke ich an 16-Bit oder höher.
Ja, das verstehst du falsch!
Man kann natürlich Variablen mit mehr als einem Byte benutzen, und die Ports haben damit erstmal garnichts zu tun.

Ich habe hier ein sehr gutes Starterset angeboten: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=534927#534927
Falls er es nicht haben will, biete ich es auch dir gerne an.
Mit dem USB-ISP Programmer kannst du auch andere 8bit AVRs programmieren.

Ok dann habe ich grundlegend falsch gedacht :-# Das würde dann bedeuten, dass ich mir ganz getrost ein 8-Bit Programmiergerät zulegen kann da das nichts mit dem Wertebereich zu tun hat? Danke übrigens auch für dein Angebot aber da ich Student bin, bekomme ich das Programmiergerät sehr günstig.

@akazo
Du meinst, dass ich z.B. auf einem 8-Bit µC für einen 32 Bit-Wert, 4 mal so lange brauchen würde (also 4 Takte), wie auf einem 32-Bitter (nur 1 Takt)?

Ich interessiere mich sehr für Robotik d.h. ich werde alles mögliche in diesem Bereich machen wollen. Erstmal anfangen mit LEDs, Tastern, dann Ansteuerung von Motoren usw.

oberallgeier
19.01.2011, 19:12
... 8-Bit Programmiergerät ... nichts mit dem Wertebereich zu tun ...Ein seltsamer Ausdruck: 8-Bit Programmiergerät. Weil die üblichen Programmer für z.B. die Atmel-Controller neben GND und Vcc nur /RESet haben und im Prinzip nur mit drei Leitungen programmieren: MISO, MOSI und SCK. Da solltest Du mal ein passendes Tutorial (klick) (http://www.mikrocontroller.net/articles/AVR-Tutorial)lesen. Vermutlich meinst Du "Programmiergerät für einen 8-Bit-Controller"?


... auf einem 8-Bit µC für einen 32 Bit-Wert, 4 mal so lange brauchen würde (also 4 Takte), wie auf einem 32-Bitter (nur 1 Takt ...Stimmt so nicht. Die meisten Controller haben intern "Rechenknechte", aufs Rechnen optimierte Hardwaremultiplizierer Das haben z.B. oft die Atmelcontroller. Die können 8- und 16-bittige Integer aber auch Gleitkommazahlen in zwei Takten verarbeiten = multiplizieren (aber digital! nicht dekadisch!).

Noch zwei sinnvolle Leseteile für ausführlicher Informationen:
http://www.rn-wissen.de/index.php/C-Tutorial
http://www.rn-wissen.de/index.php/C-Tutorial#float.2C_double_.28Gleitkommazahlen.29

20.01.2011, 22:40
Bis zu welchem Wertebereich können das die Atmel Prozessoren?

oberallgeier
20.01.2011, 23:25
Bis zu welchem Wertebereich können das die Atmel Prozessoren?Den Controllern ist ein Wertebereich ziemlich wurscht. Der Trick ist nämlich, dass man Rechnungen mit elend langen Zahlen durch wiederholte Benutzung der 8-, 16-, 32-, 64- -- oder was auch immer für xy-breite Register zur Verfügung stehen -- machen kann. Wenn mans kann. Die Frage ist falsch. Sie müsste heissen: Bis zu welchem Wertebereich kann das der Compiler xyz?
Beispiel: als long long von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 bzw. von 0.0 bis 18.446.744.073.709.551.615

Siehe nochn Beispiel hier. (http://www.rn-wissen.de/index.php/C-Tutorial#Elementare_Datentypen)

21.01.2011, 12:23
Ok ich denke ich habe soweit zumindest verstanden, dass man mit einem 8-Bit Controller in einem größeren Wertebereich als -128...-127 / 0...255 arbeiten kann. Die ganzen Datentypen kenne ich nur zu gut (habe ja mit C++ programmiert). Wie gesagt, ich dachte eben, dass die Hardware eindeutige Grenzen setzt, das ist scheinbar nicht ganz richtig.

Ich möchte mich bei allen bedanken die an der Diskussion teilgenommen haben und mir weitergeholfen haben =D>

21.01.2011, 12:24
Was nicht heißen soll, dass die Diskussion geschlossen werden kann. Wenn jemand noch wichtige Anmerkungen hat nur zu!