Hallo zusammen,
ich möchte neu in die Welt der uC's einsteigen und erstmal ganz einfache
Grundlagenprojekte machen (z.B. Textausageb auf LCD Display / LED-Cube).
Leider fehlt mir ein wenig die Übersicht was ich wirklich an Hardware
benötige. Ich möchte über USB den uC programmieren (habe an meinem
Rechner keinen Parallel Port). Programmieren würde ich gerne mit C, da
ich hier schon "brauchbare" Kenntnisse habe.
Ich habe an einen ATTiny2313 gedacht (aufgrund der großen Verbreitung).
Dazu brauche ich noch einen Programmer - welcher ist hierzu geeignet?
Welches Entwicklerboard ist sinnvoll?
Was benötige ich für den Anfang noch so?
Klar...je günstiger desto besser - brauche sicherlich auch keine
"High-End" Lösung für den Anfang :)
Sollte es schon irgendwo eine solche Auflistung geben, wäre ich
natürlich dankbar und entschuldige mich schonmal für den "Spam" :)
Vielen Dank!
Rainer
Auch wenn jetzt viele AVR Fans wieder schreien.
Nimm dir vom ST ein DicoveryBoards oder von TI ein Launchpad.
Das sind dann Cortex Mx µC.
Es gibt bei beiden das komplette Set von Board über Debugger bis hin zur
IDE mit Compiler in einem Paket.
Nimm so was und du sparst dir viel Ärger bis du ein lauffähiges System
hast mit dem du deine ersten Erfahrungen sammeln kannst.
Auf welchen µC du mit C anfängst ist da so ziemlich egal.
Du musst auf jeden Fall lernen wie du die einzelnen Baugruppen
ansprechen kannst.
Da macht es auch keinen große Unterschied wie viele Baugruppen so ein µC
hat und wie die angesprochen werden. Da man ja doch immer nur die
Baugruppen konfigurieren muss die man für die jeweilige Übung benötigt.
Das so ein Cortex M viel mehr kann als ein AVR Tiny ist da vielleicht
auch nich ein extra Bonus für später wenn die Programme/Projekte mal
umfangreicher werden.
Ich würd dir ebenfalls einen ARM empfehlen.
Dazu kannst du einen link oder blackmagic probe als programmer/debugger
nehmen, je nach ziel chip. STM gibt die discovery boards wirklich
günstig her, TI auch. Und es gibt dafür auch RTOS systeme, könnte später
einmal interessant werden.
Wenn du nur schnell zu einem Ergebnis kommen willst, ohne etwas dabei zu
lernen, dann nimm das ARM-Rundum-Sorglos-Paket mit der Option, dir auch
den Hintern abzuputzen.
Ansonsten ist ein AVR, z.B. der von dir ins Auge gefaßte tiny2313
durchaus ein sinnvoller Einstieg. C gibts in Form des AVR-gcc kostenlos
(für Windows heißt das dann WinAVR). Alternativ das AVR-Studio von Atmel
(ist unter der Haube auch AVR-gcc). Praktisch alle heutzutage verkauften
ISP-Programmer verwenden den USB-Port. Besonders günstig sind die
China-Programmer von ebay (technisch sind das USBasp) oder der usbtiny,
z.B. von eHaJo.
Siehe auch: AVR In System Programmer: USB und den Übersichtsartikel
AVR
XL
Zum lernen ist der avr schon nicht verkehrt und einfacher zu handhaben
als so ein Cortex Schlachtschiff. Aber nimm nicht so was
minimalistisches wie den 2313. Ich würde einen nehmen der min. 8k Flash
und 1k Ram mitbringt,außerdem sollte eine UART, 1x SPI, 1x I2C und ein
ADC an Board sein. Damit kann man schon deutlich mehr anfangen als mit
den mickrigen uralt Tinies. Obwohl die neueren Tinies ganz cool sein
sollen.
Als ich mich vor einigen Jahren noch öfter mit AVRs beschäftigt habe
(heute eher STM32 und MSP430) fand ich Atmega8/88 ganz gut als
universal-Controller geeignet.
Ich würde einen PIC nehmen, diese haben nur wenige und unkritischen
Stolperfallen für Anfänger, ich habe z.B. noch nie gehört, dass sich
jemand seinen PIC verfused hat. PICs haben oft bessere/mehr Peripherie
als ATmega/-tiny.
Für C würde ich PIC18 empfehlen, da die Architektur des PIC18 für C gut
geeignet ist, Microchip schreibt: „C Compiler Optimized Architecture“.
Die Entwicklungsumgebung MPLAB X IDE und dem XC8 C-Compiler gibt's
kostenlos von Microchip. Falls du kein Windows User bist, läuft MPLAB X
IDE zusätzlich zu Windows auch unter Linux und Mac.
Als Programmer würde ich das PICkit3 kaufen, dieses gibt es auch als Set
mit einer Testplatine. Ich habe mit zum Einstieg die 40-pin-Testplatine
von Sprut [1] gebaut. Mit dem PICkit3 kannst du nicht nur programmieren,
sondern auch debuggen: Wenn du z.B. irgendeinen Fehler im Programm hast,
den du nicht findest, kannst du das Programm Zeile für Zeile durchgehen
oder das Programm in einer bestimmten Zeile pausieren und den Inhalt der
einzelnen Variablen und Register ansehen.
Mit dem PICkit3 hast du den Vorteil, dass du später, falls die
Peripherie und Rechenleistung der 8-bit PICs nicht ausreicht 16- und
32-bit µCs programmieren kannst.
Für einen kostengünstigen einstieg, könnte man eine PICkit3 Clone kaufen
und einen PIC mit Minimalbeschaltung und ein paar LEDs und Tasten auf
eine Steckplatine packen. Die Clones sollten gut mit dem Original
kompatibel sein: Beitrag "Pickit 3 - Clone - kompatibel?"
Noch ein paar Links:
Mir hat dieses Tutorial beim Anfangen sehr gut geholfen:
http://pic-projekte.de/wordpress/?p=133#comments
Ich habe dieses Video erst vor kurzem entdeckt. Ich denke, dass vor
allem wenn man "brauchbare" Kenntnisse in C hat sollte es mit Hilfe
dieses Videos nicht lange dauern, bis man das erste Programm zum Laufen
gebracht hat. https://www.youtube.com/watch?v=lCzokKzD3-Q
Für ASM und generell zu PIC findet man hier viel:
http://www.sprut.de/
[1] 40-pin-Testplatine
http://www.sprut.de/electronic/pic/test/index.htm#40pin
MPLAB X IDE
http://www.microchip.com/pagehandler/en-us/family/mplabx/
XC8 Compiler
http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/
Hier gibt's die gesamte Hardware, die man für den Einstieg in die Welt
der PICs brach als Packet:
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=DV164130
Ich würde dir eher einen ARM empfehlen, die Entwicklungboards sind recht
günstig und vielfältig. Mag sein, dass es von AVR mehr Tutorials gibt,
aber das ändert sich auch mal denke ich.
In allen Fällen würde es sicher sehr helfen sich nicht nur auf DIP
Gehäuse oder ähnliche zu konzentrieren sondern auch einmal LQFP Gehäuse
oder ähnliche zu löten. Es gibt möglicherweise mehr Produkte mit denen
und man kann sie problemlos per Hand löten wenn man will.
Und wenn es nun wirklich AVR sein muss - die reinen Softwarelösungen
ergeben schwer zu findende Fehler. Besser ein ATmegaU2/U4. Oder einen
zusätzlichen USB-UART Chip. (Gibt beides leider nur als SMD).
Mit USB hast du ein zusätzliches Problem. Einigen Stellen haben 50ms
Timeout. Du kannst keine Warteschleifen verwenden. Musst von Anfang an
Interruptgesteuert arbeiten.
Für was denn die teuren Sachen? Ein mySmartUSBlight von myAVR reicht aus
und kostet nur 15€. Dann brauchst du noch ein Steckbrett (10€), das
Kabelbrücken-Set von Amazon für 3,50€ (ca.80 Kabel) und natürlich nen
Mikrocontroller. Als Anfänger würde ich dir den ATmega8A empfehlen, da
er im Tutorial hier und auf anderen Seiten ziemlich oft vorkommt und
auch nicht viel kostet. wenn du anfangen willst, würde ich mindestens 3
davon kaufen.
Den mySmartUSBlight hab ich hier auch und benutze ich schon bestimmt 2
Jahre. wichtig ist aber dass du die Software von MyAVR benutzt. mit der
im ATMEL Studio funktioniert's bei mir zumindest nicht immer richtig.
Viel Spaß beim lernen!
Mit freundlichen Grüßen,
Valentin
EDIT: Klaus I. ist schneller gewesen:)
Hallo zusammen,
erstmal: ich bin echt beeindruckt wieviel Hilfe man in diesem Forum
bekommt. Vielen Dank für all eure Vorschläge. Viele verschiedene
Ansätze...sehr interessant. Ich denke aufgrund den Anzahl an
Anfängertutorials werde ich mal mit AVR anfangen.
Ich komme wenn ich eure Beiträge so zusammenfasse auf folgendes für den
Anfang:
1xUSB-Programmer mySmartUSB light
3xAtmega88A
1xSteckbrett (das hier evtl?:
http://www.conrad.de/ce/de/product/531326/Steckplatine-830polig-Steckplatine-L-x-B-x-H-1651-x-546-x-94-mm-Anzahl-Polklemmen-830?ref=searchDetail
)
1xKabelset (Amazon: 65St. wiederverwendbare Steckbrett Drahtbrücke Kabel
für Bot Schaltung)
Und eben Kleinteile:
100nF Keramik-Kondensatoren
22pF Keramik-Kondensatoren
16Mhz-Quarze
Print-Taster
LEDs
Widerstände
PNP u. NPN-Transistoren
kleines LCD Display
Habe ich noch etwas vergessen, ohne dem das ganze hier nicht laufen
wird?
Also wie gesagt - schonmal recht herzlichen Dank! Bin wirklich
beeindruckt.
Schönen Ostermontag.
Grüße Rainer
Wenn es ein 8 bit Mikrocontroller sein soll, würde ich mal diese Video
anschaugen, vergleicht die beiden beleibtesten Controllerfamilen bei
Bastlern: https://www.youtube.com/watch?v=DBftApUQ8QI
Rainer schrieb:> 1xUSB-Programmer mySmartUSB light
Einen "Programmer" alleine kann ich aus Erfahrung für den Einstieg nicht
empfehlen.
Damit kann man den µC nur programmieren und hoffen das Programm macht
auch das was man will.
Besser ist ein Debugger, damit kann man nicht nur programmieren sondern
auch den µC "Fernsteuern" und im Einzelschritt jeden Befehl und deren
Ergebnisse anschauen. Das hilft ungemein beim Verständnis.
Ein AVR ist in der Hinsicht für den Einstig eines der teuersten
Varianten. Das liegt wohl auch daran dass der AVR schon sehr alt ist und
die neueren µC ein deutlich besseres Preis/Leistungsverhältnis bieten.
Besser ist ein PIC (Debugger gibt es als PICKIT-3 für ca. 40 EUR)
Oder ein ARM (z.B. LPC oder STM32 Boards gibt es incl. Debugger für
12..20 EUR (z.B. STM32F4DISCOVERY))
Eine Auflistung der Kosten für den Einstieg ist z.B. hier ersichtlich:
http://www.mikrocontroller.net/articles/STM32_f%C3%BCr_Einsteiger#Kosten
>Damit kann man den µC nur programmieren und hoffen das Programm>macht auch das was man will.
Stimmt nicht so ganz. Man muss überlegen, warum es nicht funktioniert.
Mit einem Debugger kann man halt irgendwas eintippen und schaen warum es
nicht funktioniert.
Sicher - mit einem Debugger geht es 5x so schnell. Aber ohne lernt man
mehr.
Habe gerade zufällig in der Bucht etwas passendes gefunden:
Einfach mal nach "Arduino Starter Kit" suchen, da gibt es einige
Bauteil-Zusammenstellungen mit und ohne dem eigentlichen
Arduino/Atmega328.