Hallo Community, ich bin im Moment auf der Suche nach einem Bausatz, um das Programmieren von Hardware zu lernen. Ich mache eine Ausbildung zum Fachinformatiker Anwendungsentwicklung. Von den technischen Daten her gefällt mir das oben genannte Kit sehr gut. Der Cortex M4 hat da schon eine etwas höhere Leistung als das Adruino Kit mit dem ATMega328. Wobei ich hier des öfteren schon gelesen habe, dass die Programmierung bei dem StarterKit von Atmel mit dem Cortex M4 wesentlich schwieriger ausfalle, als die Programmierung vom Adruino. Meine Frage wäre jetzt, womit kann man denn besser lernen? Hat jemand da Erfahrungen mit? Eventuell ist selbst jemand damit eingestiegen? Mich würde das StarterKit von Atmel wirklich reizen. Ich lasse mich jedoch gerne überzeugen. Da ich im laufe meiner Ausbildung(ich denke 3. Lehrjahr) in das aktive Geschäft mit eingebunden werde, werde ich dort auch Firmware schreiben. Weshalb ich denke, dass auf lange Zeit gesehen, der Cortex M4 kein Problem sein wird und es eine reine Übungssache ist. Ich will mich dafür eben jetzt schon einlesen/lernen und denke ich bin ich hier genau richtig mit meiner Frage. Hier das Kit von Atmel: http://www.voelkner.de/products/586470/Atmel-SAM4L-Xplained-Pro-Starter-Kit-ATSAM4L-XSTK.html Hier das Kit von Adruino: http://www.reichelt.de/ARDUINO-STARTER/3/index.html?&ACTION=3&LA=446&ARTICLE=130167&artnr=ARDUINO+STARTER&SEARCH=Adruino viele Grüße & einen schönen Montag Kopfii
wenn du Azubi im ersten LJ bist : http://www.voelkner.de/products/586471/Atmel-SAM4L-Xplained-Pro-Evaluation-Kit-ATSAM4L-XPRO.html?ref=43&products_model=D42533&gclid=CI-SvZaohsECFQcewwodZGgArQ dazu etwas Lochraster, Silberdraht, ein paar Bauteile, viel Geduld und Ausdauer. Nach der Ausbildung kannst du mit ARM und embedded C Kenntnissen besser Punkten als mit Arduino ... nur mein Senf, dasrotemopped.
Hallo und vielen Dank für dein Rat. Ich habe hier bei uns auch etwas nachgefragt auf der Arbeit. Ich bin im 2. Lehrjahr. Mir wurde gesagt, dass ich mit Adruino anfangen solle um erst mal überhaupt einen einblick in die embedded Welt zu bekommen. Dein Aspekt bezüglich der ARM Programmierung ist allerdings auch bei mir ein großer Faktor, welcher mich eher zu Atmel hin schweift. Mein oben genanntes Kit wurde mir auch abgeraten. Zufällig wurde mir, wenn ich schon was von Atmel will zu dem, welches du mir genannt hast empfohlen. Wobei ich eher an sowas denke: http://store.atmel.com/PartDetail.aspx?q=p:10500255;c:100113#tc:description Den Bildschirm muss ich ja nicht direkt ansteuern. Aber wenn ich soweit bin ist er eben da. Deine Meinung fände ich zu dem Board sehr nett oder eure. viele Grüße Kopfii
Hi, mein Tipp: Guck dir die Libraries für die von dir gewählte Hardware an. Die Arduino Libraries abstrahieren natürlich direkt sehr von der Hardware. Der Einstieg ist daher recht einfach. Wenn du dann etwas machen willst, das nicht in den vorhandenen Libraries vorgesehen ist, wird es aber dann recht komplex, falls nicht Libraries da sind, die dich für die Schicht darunter unterstützen. Guck deswegen auch ruhig mal bei verschiedenen Herstellern (Atmel, TI, ST...). Da kocht jeder ein anderes Süppchen. Und: Guck auch mal, was im Forum so benutzt wird. Da ist viel ST unterwegs, da die Development Kits spottbillig sind (ab 8€ inkl. Programmieradapter). Liebe Grüße, Jan
Was kann ich denn unter ST verstehen? Ich tippe mal auf einen Hersteller... :/
ST Microelectronics: http://www.st.com/web/en/catalog/mmc/FM141/SC1169 Die Evaluation Boards heißen Discovery Boards.
Zum Einstieg in die Embedded Programmierung ist ein uC Board ohne Peripherie besser, weil billiger und man kommt nicht in die Versuchung, seine Zeit mit vorprogrammierten Beispielen zu verschwenden. Ich erarbeite mir gerade auch die ARM Welt, komme aus der Atmega/Attiny Zone und habe als ARM natürlich auch einen Atmel gewählt, den SAMD20J, klein, billig, aber genug zum Lernen und entdecken. Das Board dazu sieht so aus : http://www.dasrotemopped.de/bilder/ATSAMD20J_DIN41617.jpg Du brauchst Programmierschnittstelle, Reset Taste, externer Quarz und alle IOs auf Pfostenleiste, mehr nicht. Auch wenn Arduino sehr populär ist würde ich das als Einstieg nicht wählen. ARM, CMSIS und C Compiler würde ich heute jedem Einsteiger raten. Der Code ist nicht komplexer als 8-bit uCs, es gibt leider nur wenig Literatur, die didaktisch gut aufgebaut ist, besonders für Einsteiger. Auf deutsch gibt es noch weniger. Ein Tutor / Ausbilder, der bei Problemen zur Seite steht und erklären kann ist extrem wichtig, doch die arbeiten meisst bei Schulungsinstituten. Gruß, dasrotemopped.
Hallo, vielen Dank für eure Ratschläge. Ich bin am überlegen, ob ich mir das ATmel STK500 hole. Es wird im Tutorial empfohlen und ist wirklich nur das reine Board ohne groß schnickschnack. Dadurch würde ich natürlich Kostengünstiger und wie Du meintest "selbstständig" programmieren und keine Beispielprogramme nehmen. Damit würde ich mir dann das Tutorial von hier vornehmen und durch arbeiten. Wenn es sein muss mehrmals. Bis ich es verstanden habe und dann überlegen, was mein 1. Projekt werden könnte :) Ich bräuchte allerdings ein extra Netzteil und wie siehts mit einem Debugger aus? Könnt ihr mir da zu was raten? EDIT Wobei mir das STK500 schon etwas alt wirkt. Erschlagt mich bitte nicht, wenn ich damit falsch liege.
:
Bearbeitet durch User
Dome A. schrieb: > Wobei mir das STK500 schon etwas alt wirkt. Ja, ist so. Debugger: Atmel-ICE. Dann hast du neben den AVRs zumindest die Perspektive, damit auch Atmel-ARMs debuggen zu können. STK500 nur, wenn es einigermaßen günstig ist. Einen Hunderter will man für das alte Ding nicht mehr hinblättern. Am besten natürlich geschenkt. ;-)
Wenn du direkt mit ARM in die Mikrocontroller-Welt einsteigen willst, würde ich dir definitiv zu einem ST Board raten. Ich selbst habe mit dem Atmel SAM µC begonnen, was kein Zuckerschlecken war (trotz meiner Erfahrung mit AVR/Arduino). Die ARM Cortex-M3/4 sind im Vergleich zu Atmegas schon sehr mächtig, da ist viel Eigeninitiative gefragt. Atmel liefert viele Libraries in Form des Atmel Software Frameworks (ASF) mit, anhand derer man sich bspw. ein wenig die Peripherie-Ansteuerung abschauen kann. Das kann mitunter aber auch sehr verwirrend werden, da die ASF Module meistens für eine ganze Mikrocontroller-Familie geschrieben sind und da dementsprechend sehr viel unnützer Code mitgeschleppt wird, nur um dann per Präprozessor rausgeschmissen zu werden. Trotz des ASF würde ich an deiner Stelle mit einem ST Discovery Board beginnen. Das liegt zum einen am günstigeren Preis für die Boards, zum anderen aber (und das ist der wichtigste Grund!) sind die ARM Mikrocontroller von ST deutlich beliebter und verbreiteter, d.h. du kannst viel leichter an Hilfe und Unterstützung kommen, wenn es mal hakt. Ich vermute mal, dass ST, ähnlich wie Atmel, Libraries mitliefert, die den Einstieg erleichtern können. Konkret kann ich dazu nichts sagen, da ich noch keine ARM Mikrocontroller von ST verwendet habe.
:
Bearbeitet durch User
Andi K. schrieb: > Trotz des ASF würde ich an deiner Stelle mit einem ST Discovery Board > beginnen. Das liegt zum einen am günstigeren Preis für die Boards, zum > anderen aber (und das ist der wichtigste Grund!) sind die ARM > Mikrocontroller von ST deutlich beliebter und verbreiteter, d.h. du > kannst viel leichter an Hilfe und Unterstützung kommen, wenn es mal > hakt. Die nuten doch im prinzip auch den Cortex M3 von Atmel wieso ist da so ein unterschied? Nehme ich jetzt zum Beispiel ein STM32. Dann könnte ich genauso doch das Paket von Atmel nehmen. http://store.atmel.com/PartDetail.aspx?q=p:10500343;c:100114#tc:description Oder eben das STK500. Wobei dieses ja veraltet ist und wie oben schon geschrieben worden ist der Preis für das alter ziemlich happig ist.
Dome A. schrieb: > Die nuten doch im prinzip auch den Cortex M3 von Atmel wieso ist da so > ein unterschied? Da verwürfelst du was: Cortex-M* ist nicht von Atmel, sondern von ARM. Das ist eine Firma, die zwar vor 25 Jahren mal einen PC bauen wollte, aber mittlerweile rein ihre CPU-Designs verkauft. Kunden von ARM sind einige Halbleiterhersteller, STM halt, Atmel auch, diverse andere. Die Welt splittert sich da ziemlich auf, weshalb du nicht die geballte User-Support-Macht für ein Derivat erleben wirst, wie es sie für AVRs hier in diesem Forum gibt. Mit welchem du davon einsteigst, ist aber am Ende ziemlich egal: der CPU-Kern ist gleich, und für die Peripherie musst du dich ohnehin jeweils ins Datenblatt einlesen.
Dome A. schrieb: > STK500... der Preis für das alter ziemlich happig ist. Nee, also neu kaufen auf keinen Fall.
Jörg Wunsch schrieb: > Mit welchem du davon einsteigst, ist aber am Ende ziemlich egal: der > CPU-Kern ist gleich, und für die Peripherie musst du dich ohnehin > jeweils ins Datenblatt einlesen. Also im Prinzip wurscht ob Atmel oder ST?
wie schon gesagt wurde, Atmel-ICE kaufen oder Segger J-Link EDU Version, aber kein STK-x00, der Atmel ICE kann Atmega und SAMDxx, da ist man besser dran, kostet das selbe. Und die ATmel IDE ist aus einem Guss, kein Umdenken beim CPU Wechsel auf der Software Seite. Zum Einstieg ein Cortex-M0+ oder ein Atmega ist dann egal, obwohl ein Cortex M0+ wie der SAMD20 die bessere Wahl ist. Hier mal ein getestetes LED Blink für SAMD20. Ist das schwerer als Atmega ? Kein ASF oder so, nur CMSIS und Register beschreiben. Gruß, dasrotemopped.
Markus Horbach schrieb: > aber kein STK-x00, der Atmel ICE kann Atmega und SAMDxx, > da ist man besser dran, kostet das selbe. Sind aber zwei Paar Schuhe: STK500 ist ein Experimentierbrett für AVR, das ICE eine Debughilfe. Einzige Überschneidung zwischen beiden ist, dass beide programmieren können. Wenn aber gar kein 8-bit-AVR mehr auf dem Plan ist, hat ein STK500 natürlich keinen Sinn. Wenn's ums reine Lernen von Controllern geht, kann aber 8-bit-AVR durchaus noch Sinn haben: ist doch noch ein Stück übersichtlicher als ARMs (sofern man nicht gerade mit dem Xmega anfängt, der steht in der Komplexität den üblichen Cortex-M-Devices kaum nach), und viele Grundkonzepte kann man am kleineren Controller durchaus auch lernen.
was ist die erste Frage von einem Noob beim Atmega ? Habe den uC verfused, wer kann helfen. Wer mit 8 Bit anfängt, bleibt bei dem System, das er am besten kennt. Dann lieber bei etwas hängen bleiben, das mehr bietet. Zum Lernen reicht auch ein MOS6502, aber so sehr wie ARM sich breit macht, ist das ein Argument für einfachere Systeme ? Gruß, dasrotemopped.
Markus Horbach schrieb: > SAMDxx, > da ist man besser dran, kostet das selbe. Und die ATmel IDE > ist aus einem Guss, kein Umdenken beim CPU Wechsel auf > der Software Seite. Zum Einstieg ein Cortex-M0+ oder ein > Atmega ist dann egal, obwohl ein Cortex M0+ wie der SAMD20 > die bessere Wahl ist. Da wüsste ich wiederum nicht, was ich programmieren könnte. Sei es LED aus/an oder sonstiges, da dort ja wirklich rein gar keine "Ausgabegeräte" dabei sind. Die LEDs sind ja vermutlich vom User Wählbar. Das heißt ich bräuchte zum Üben schon mal noch ein paar LEDs oder sonstiges. Ich seh vor lauter Bäumen den Wald nicht mehr glaube ich. Die Palette ist im Prinzip so groß aber trotzdem muss man schon als Einsteiger extrem aufpassen, was man kauft. Eure Argumentation finde ich Klasse. Klar sollte man nicht direkt das "Größte" nehmen, da die Verlockung dann größer ist irgendwelche Example Projekte zu nehmen. Dann gibt es eben Boards, welche im Prinzip wirklich nur mit Controller kommen. Mich würde es reizen für meinen Schreibtisch ein LED-Spiel zu programmieren später. Sobald ich erst mal die Basics auf dem Kasten habe. Wobei ich aber nicht weiß, welches Starterkit man nimmt zum Einstieg. Und ob die StarterKits nicht doch eher reine Anlockung ist und man direkt ein günstiges Evaluation Board nehmen sollte. Bin etwas verwirrt diesbezüglich. Ich seh mir z.Z. jeden Tag Boards an aber jedes ist auf seine Weise gut und schlecht... Das Atmel SAM D20 Xplained Pro Evaluation Kit ist halt echt zu leer. Wenig LEDs die man ansteuern kann Knöpfe für irgendwelche Funktionen(die man selbst zuweisen kann)gibt es nicht. Also ich finde LEDs und Knöpfe sollten schon dabei sein... Ein Display ist ja auch noch Erweiterbar. Falls man jetzt auf mein in weiter ferne liegendes Projekt denkt. Würde ich z.B. sagen, ich nehme verschiedene Modis die die LEDs an meinem Schreibtisch leuchten, fände ich einen Bildschirm, welcher den aktuellen Modus anzeigt nicht schlecht. Aber das ist noch Zukunftsmusik. Erst mal ein geeignetes Equipment finden und loslegen wäre jetzt erst mal angesagt... Dabei wäre Hilfe echt super :/
Markus Horbach schrieb: > was ist die erste Frage von einem Noob beim Atmega ? > Habe den uC verfused, wer kann helfen. Ach, komm. Nur, weil es ein paar nicht raffen, muss man das nun nicht zum Standardfehler hochstilisieren. Im Vergleich zu den Tausenden, die die Dinger problemlos nutzen, ist das Rauschen, und wenn er sich wirklich einen STK500 zulegt, ohnehin gegenstandslos, denn damit bekommt man sie alle wieder zurück. Dafür bekommt man beim AVR die LED mit 20 CPU-Befehlen zum Blinken, so einfach und überschaubar ist er, da kann man noch wie seinerzeit beim Z80 oder 6502 jedes Bit verstehen. > aber so sehr wie ARM sich breit macht, ist das ein Argument für > einfachere Systeme ? Für den Einstieg ist eine einfache Architektur durchaus ein Argument. Wir reden ja hier weder über einen Z80 noch über einen 6502, sondern dennoch über eine durchaus zeitgemäße Architektur, auch wenn sie nicht mehr ganz „hip“ ist. Wenn man das Grundprinzip eines Controllers verstanden hat, ist es auch nicht schwer, andere Architekturen zu verstehen. Nur, weil ich das Fahrradfahren noch mit einer Rücktrittbremse und einem grässlichen Seitenläuferdynamo gelernt habe, heißt das doch nicht, dass ich mich nicht auch auf ein aktuelles Fahrrad mit Scheibenbremse und Nabendynamo setzen könnte.
Ich verstehe nur die hälfte eurer Diskussion... Könntet ihr mir irgendwas empfehlen? Hab ja im letzten Beitrag geschrieben, was ich mir vorstelle :/
Dome A. schrieb: > Könntet ihr mir irgendwas empfehlen? Naja, du willst einerseits einsteigen, also offenbar von der Pike auf lernen. Dafür sollte es (meiner Meinung nach) einfach und überschaubar sein. Andererseits erwartest du offenbar für den Einstieg einen Rolls Royce, damit du dann, wenn du alles beherrschst, gleich losflitzen kannst. Finde ich ein Missverhältnis. Wahrscheinlich könntest du dir das einfachste Eval-Board bei Pollin kaufen und erstmal damit starten: wenig finanzielles Risiko, genügend Anleitungen und Tutorials im Netz. Wenn du das in- und auswendig kennst (und vielleicht ja auch doch mal selbst 'ne weitere LED drangeknüppert hast), kannst du das Ding in die Ecke legen oder hier im „Markt“-Forum gegen Portoerstattung weitergeben und dich einer Plattform widmen, auf der du dann auch etwas ernsthaftere Projekte angehen kannst. Dann weißt du aber vielleicht auch schon ein bisschen mehr, in welche Richtung dein nächstes Projekt so gehen soll, was die Auswahl der Hardware dafür wiederum vereinfacht. Just my EUR 0,02.
Dome A. schrieb: > Also im Prinzip wurscht ob Atmel oder ST? Im Prinzip ja. Ich habe mir vor einigen Monaten Evaluierungsboards für Cortex-M0 von beiden gekauft und bin mit beiden gut zurecht gekommen. http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215 http://www.atmel.com/tools/ATSAMD20-XPRO.aspx?tab=overview Beide haben einen integrierten Debugger und bieten für den Anfang genügend Speicher und Rechenleistung um sich auszutoben. Der Vorteil bei ST ist, dass die Discovery-Evaluierungsboards spottbillig sind (~10€). Dafür muss man halt auf eine in sich geschlossene Entwicklungsumgebung verzichten und diese mit etwas händischer Arbeit einrichten (was sich jedoch schlimmer anhört als es ist). Ein dedizierter Debugger ist in meinen Augen für den Anfang erst einmal nicht erforderlich, für das Geld kann man sich dann lieber mehrere Evaluierungsboards von verschiedenen Herstellern (Atmel, ST, NXP usw.) holen und schauen, welches Ökosystem einem am meisten zusagt. Viele Grüße Daniel Edit: Link zum falschen Discovery korrigiert.
:
Bearbeitet durch User
Ok, dann werde ich mir wohl wirklich das SAMD20 holen und mir das AVR-GCC Tutorial damit durcharbeiten. und lernen. Bücher hab ich mit bekommen gibt es kaum gute? Ich höre jetzt einfach mal auf euch ihr seid die "alten Hasen"(hoffe es fühlt sich keiner angegriffen :) ) und habt die Ahnung. Ich bedanke mich bei euch und melde mich dann bei Fragen bzw. wenn ich meinen "ersten Erfolg" erzielt habe :P
>werde ich mir wohl wirklich das SAMD20 holen gute Wahl >und mir das AVR-GCC Tutorial damit durcharbeiten nichts gegen das AVR-GCC Tutorial, aber du hast ein ARM Board, da passt ein AVR Tutorial nicht zu, auch wenn deine CPU von Atmel ist, ist AVR die falsche Baustelle Ich wiederhole noch mal, CMSIS von ARM herunterladen und lesen ! Dann das Datenblatt von "deiner" CPU ( Atmel SAMD20J ) herunterladen und lesen ! Atmel Studio ( nicht AVR Studio, beides gibt es von Atmel ) herunterladen und installieren und mit dem Programmieren beginnen. Bücher : ISBN :978-3-8266-9475-2 , ist sogar in deutsch der Autor beschreibt schön seine Leiden mit Eclipse, das bestärkt die Wahl vom Atmel Studio, er benutzt aber einem Atmel ARM, drum gut geeignet zum Einstieg auch für andere ARM Atmels (das die beiden aber auch so sehr zum Verwechseln klingen ...) Gruß, dasrotemopped. PS : mein Beispielcode schon mal ausdrucken und unters Kopfkissen legen
Für die STs (und nicht nur für die) gibt es mit Coocox (CoIDE) eine gute Programmierumgebung. Da ist auch die CMSIS und Peripheral Library direkt drin. Die Libraries selbst zusammen kopieren zu müssen ist nämlich kein Zuckerschlecken. Noch besser wird das ganze mit den Beispiele von Uwe: mikrocontroller.bplaced.net Damit kriegst du einen flotten Einstieg hin und kannst dir die Verwendung der Library an Beispielen ansehen. In jedem Fall: Viel Erfolg! LG Jan
Markus Horbach schrieb: > Bücher : > ISBN :978-3-8266-9475-2 , ist sogar in deutsch > der Autor beschreibt schön seine Leiden mit Eclipse, das bestärkt die > Wahl vom Atmel Studio, er benutzt aber einem Atmel ARM, drum gut > geeignet zum Einstieg auch für andere ARM Atmels (das die beiden aber > auch so sehr zum Verwechseln klingen ...) Dieses Buch kann ich ebenfalls empfehlen; für den Einstieg gut geeignet, es enthält viele Beispiele zur Peripherie-Ansteuerung. Außerdem widmet sich das Buch auch der grundlegenden Elektronik um einen Mikrocontroller herum, also wie man z.B. mittels Transistoren größere Lasten schalten kann etc. Falls es dann noch etwas mehr sein darf: http://www.amazon.de/The-Definitive-Guide-ARM-Cortex-M0/dp/0123854776/ref=sr_1_2?ie=UTF8&qid=1412083127&sr=8-2&keywords=definitive+guide+cortex Darin wird dann bspw. das Interrupt Handling sehr ausführlich dargestellt. Allerdings hier wieder aufpassen: In diesem Buch geht es allgemein um die ARM Cortex-M0 Architektur. Wie man jetzt DMA in Verbindung mit SPI verwendet, wirst du darin nicht finden, da die Peripherie herstellerspezifisch ist (also Atmel-, ST- oder HerstellerXYZ-spezifisch ;-)).
Dome A. schrieb: > Ok, dann werde ich mir wohl wirklich das SAMD20 holen Gute Wahl, dieses Board hab ich auch. Vor allem keine Panik vor "zu wenig Knöpfen und LEDs". Sobald Du den Einstieg gefunden hast und ein erstes ernsthaftes Projekt bauen willst, kannst Du Dir verschiedene Erweiterungen holen wie z.b. das IO Board mit microSD, TempSensor, Light Sensor, oder das OLED1 mit einem OLED Display, oder - das gefällt mir am meisten - das ProtoXplained - darauf kann man schön etwas selbst zusammenstecken und ausprobieren. http://www.atmel.com/devices/ATSAMD20J18.aspx?tab=tools Hier ein schönes Einstiegstutorial in diese MCU: http://experimentjmcg.wordpress.com/2014/04/21/samd20-blinky-example-from-scratch-a-tutorial/ Es nutzt zwar immer noch das Atmel Software Framework, aber es zeigt deutlich die Vorteile dieser Architektur um schnell ein Prototyp zu bauen. Du wirst aber nicht darum herum kommen zum Teil den Driver Code zu Debuggen um zu verstehen was genau wie gemacht wird. Das gute daran: du hast ja etwas was funktioniert und Reverse Engineering ist ja wie Learning by Dooing :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.