Quote:
|
die Leistungsfrage sollte für den Einstieg mal nach hinten geschoben werden. Ich habe mit einem 8 Bit 8051 (12Mhz getaktet) angefangen und selbst das ist für viele Anwendungen noch rasend schnell. Wenn man damit zu Beginn mal ein paar Taster abfragt, nebenher 2 7-Segment-Anzeigen multiplext und ggf noch einen kleinen Schrittmotor ansteuert, selbst dann schläft das Ding noch fast ein - und zu viel mehr wird man mit seinen ersten Monaten damit nicht kommen, wenn man es gemütlich angehen lässt.
|
Es stimmt natürlich das Man gerade am anfahng selbst die leistung eines Cortex M0 nicht mal ansatzweise benötigt. Ich selbst würde aber trotzdem mit einem ARM uc anfangen. Einfach nur aus dem grund heraus das Controller familien wie stm32 und Architekturen wie ARM ja im grunde auch eine gewisse art von Standart sind. Das soll halt heissen, wen man z.b. mit dem einsteiger uc STM32F0(cortex m0) anfängt und darauf lernt wie man diese elektrisch beschaltet und vorallem programmiert, und später mal ein größeres Project vorhat wo man einen leistungsfähigeren uc (wie einen STM32F4 mit cortex m4) benutzen will. Dan kann man das was man beim m0´gelernt hat direkt auf den größen m4´er anwenden da die beschaltung und die Klassenbibliotheken die STM und ARM bereitstellen für alle die gleiche ist. Und auch wen man mal später vorhaben sollte mit richtigen prozessoren zu arbeiten (z.b. auf Cortex A basis) dan kann man das was man beim m0´er gelernt hat auch nützlich sein da die Architectur verwandt ist.
Von mir aus kann es ja jeder so machen wie er will, wenn man lieber erstmal mit einem Atmega anfangen will und später falls man mehr leistung benötigt einen anderen controller nimmt, und dann kein problem damit hat sich in eine andere Architektur einzuarbeiten der soll das ruhig machen. Ist ja ansich Ok.
Ich selbst würde es aber wie oben geschrieben machen da ich nur ungern zeitaufwende um dinge zu lernen von dennen ich weis das ich sie später nicht mehr brauchen werde.
Quote:
|
Nicht falsch verstehen: Leistung ist nie verkehrt und bei diesen Preisen sowieso keine Geldfrage. Fürs Verständnis schadet es trotzdem nichts, noch den Überblick zu behalten und mal eine tiefere Ebene zu gehen ohne sich mit hoher Komplexität rumschlagen zu müssen.
|
Nunja Highlevel programmieren ist ansich nicht komplex wen man OOP versteht. Und vorallem LowLevel programmierung kann sehr komplex und für anfänger schwer zu vertehen sein. Aber im grunde ist es natürlich richtig das man sich auch mit lowlevel ausseinandersetzten sollte. Wen man z.b. über SPI/I2C einen externen IC ansteuern will, beispielsweise einen ENC624J600 oder ein digitalen sensor, ADC/DAC oder was auch immer dann braucht man natürlich sowieso kenntisse in lowlevel.
Quote:
Hmm jetzt bin ich ein wenig verwirrt, nochmal zusammenfassend.
Atmel:
Code:
Pro: Contra:
Klein aber Fein Teure(re) Dev-Boards
Anfänger Freundlich
STM32:
Code:
Pro: Contra:
Leistungsstark Sehr Komplex
Günstig in der Anschaffung Nicht (so) anfängerfreundlich
Stimmt das soweit?
So wie das momentan Aussieht, tendiere ich mehr zu Atmel, es ist soweit ich es richtig gelesen habe nicht alzu schwer ein eigenes Dev-Board zu bauen.
|
Ich würde jetzt nicht sagen das STM32 sehr komplex(=schwer) ist, ich würde eher sagen er ist sehr umfangreich.
Und an sich ist er schon sehr anfängerfreundlich da er genauso wie Atmega´s einfach zu beschalten ist und über eine Klassenbibliothek verfügt die das Programmieren sehr vereinfacht.
Ein klarer vorteil des Atmega´s ist aber das es ihn schon länger gibt und er schon seit langem im hobby bereich weit verbreitet ist. Dadurch findest du im internet haufenweise schaltungen die den Atmega benutzen und viele sogar auf Deutsch. wärend es vom STM32 und anderen ARM konsorten noch recht wenig gibt.
Und da du ja ein eigenes Dev-Board löten oder stecken willst müsstest du bei einen STM32 ein adapter verwenden da es diese uc nicht für lochraster gibt.
NXP ist glaube ich der einzige der uc auf ARM basis herstellt die im DIP format sind.
Quote:
|
Würde ich so unterschreiben. Noch dazu sei aber von meiner Seite aus gesagt: Habe nie selber einen AMR programmiert. Hatte nur mal das Vergnügen durch ein Datenblatt zu stöbern und habe Kommilitonen (die zuvor AVR programmiert hatten) fluchen gehört, dass er im Verhältnis um einiges komplexer sein soll. Ist ja auch logisch: Mehr IO-Ports, Wandler, Interrupts usw. usff -> mehr Komplexität.
|
Ich habe schon seit langem in kein Atmega Datenblatt mehr geschaut von daher fehlt mir der vergleich, aber ich finde die Datenblätter von den STM32 und anderen ic´s auf ARM basis die ich bisher gesehen habe eigentlich sehr übersichtlich und verständlich.
Quote:
|
Wobei ich sagen muss, dass ich gehört habe, dass C Java sehr ähnlich sein soll und in Java habe ich schon Erfahrungen von daher dürfte mir dies einfacher fallen(was ich auch bemerke).
|
Habe zwar noch nie mit java programmiert aber es sollte eigentlich viel mehr C++ ähneln, da es auch eine OOP basierte sprache ist und die Abstraktionsschicht noch höher ist als C++.
Quote:
Dann denke ich, ich werde mich für den Atmel entscheiden, welcher würde sich am besten für Anfänger eignen?
Der Atmel hat ebenso die Vorteile, dass es eine kostenlose IDE anbietet(Atmel Studio).
Ich bin nur ein wenig verwirrt wenn es um den "programmer" geht.
Atmega8/16/32?
Attiny8/16/32?
|
Ein Atmega8 sollte ausreichen. Den hatte ich früher auch genommen und der hat gereicht.
Was verstehst du bei Programmer nicht?
Ein Programmer verbindet dein PC mit dem Microcontroller. Das ist notwendig da du das Programm was du auf deinen PC schreibst ja auf den Microcontroller übertragen musst.
Es gibt in internet mehrere anleitungen wie man sich einen Programmer selber bauen kann, das Problem dabei ist das du für die meisten dieser selbstbau programmer einen pc mit Parallelport(RS232) Schnittstelle brauchen. Diese werden aber gewiss seit 10jahren nicht mehr standartmäßig bei pc´s verbaut.
Es gibt zwar mittlerweile auch ein eigenbau programmer auf basis des FT2232H, den man an usb anschließen kann und der auch kompitabel zu anderen Controllern ist und sogar Jtag kann. Aber da du warscheinlich schnell und unkompliziert anfangen willst würde ich dir empfehlen einen universal programmer zu kaufen z.b. den ISP Programmer von Diamex.
Zusatz:
Quote:
Jetzt bin ich noch mehr verwirrt :| so viele verschiedene Meinungen.
So langsam aber sicher verliere ich den Überblick, ich wünschte ich würde in der Schule ein wenig Unterstützung in diesem und anderen "informatischen" Themen bekommen...
Also kannst du sicher sagen, dass ich als "newbie" damit umgehen könnte?
|
Musst es einfach so sehen. Es haben schon Tausende andere geschaft in diesem bereich fuß zu fassen, also warum solltest du es nicht schaffen!
Und zum thema Atmel oder ARM:
Viele die mit microcontrollern arbeiten haben mit Atmega´s angefangen(ich auch), ist also auf keinen fall die falsche Wahl. Es gibt ein sehr gutes Deutsches einsteiger Tutorial auf Mikrocontroller.net .Kannste dir ja einfach mal ankucken und ausprobieren.
Ich Persönlich würde heute mit STM32 anfangen aber das ist wie gesagt nur meine meinung die Erstmal nur für mich gilt.