Forum: Mikrocontroller und Digitale Elektronik Cortex Arm M3 M4 M7


von Markus (Gast)


Lesenswert?

Hallo, ich bin grade auf dem Weg mal was Neues aus zu probieren. Ich 
möchte mal mit den Cortex Arm Prozessoren spiele. Nur, mit welchem 
sollte ich Anfangen: M3 oder M4? Wann kommt man an den M7 so ran? Sollte 
ich auf diesen warten? Ich interessiere mich besonders die interne 
Architektur, also ich lasse mich von dieser umfangreichen nicht 
abschrecken ;)
Zurzeit habe ich nur 8bit AVRs programmiert.

vielen Dank
euer Markus

von Oliver R. (orb)


Lesenswert?

Der Einstieg nach den 8bittern dürfte der M0 sein. Die werden auch zum 
Kampfpreis auf den Markt geworfen, ein STM32F030 mit 48mHz, 16K Flash, 
4k Ram 15 IOs ... gibt es für unter einem Euro, das Komplette 
Entwicklungskit mit Programmer (STM32F0308-Disco) unter 10€.
Allerdings ist das STML100C-Disco mit STM32L100RCT6 M3 sogar noch 
günstiger.

Da kommt kein AVR mit.

: Bearbeitet durch User
von Dirk K. (dekoepi)


Angehängte Dateien:

Lesenswert?

Ich bin mit STM32F0-Disco (F051R8) umgestiegen. Dann nach kurzer Zeit 
auf die STM32F1-Minimal-Boards. Inzwischen habe ich auch die F4..-Discos 
herumfliegen.
Intensiv spiele ich mit den STM32F030, wie von Oliver beschrieben. 
Einigermaßen einfach zu verarbeiten und machen Spaß :)

von U. M. (oeletronika)


Lesenswert?

> Markus schrieb:
> Nur, mit welchem
> sollte ich Anfangen: M3 oder M4?
Hallo,
den Typ wählt man nach den Anforderungen und persönlichen Präferenzen 
aus.
Innerhalb der Baureihen gibt es noch einige Unterscheidungen in Bezug 
auf Nutzbare Ports und Interfaces, RAM, ROM und Sonderfunktionen.

Ich bin gerade dabei diverse Schaltungen mit M3 zu entwickeln.
Für rel. einfache I/O-Module mit Relais, DigitalIn, AnalogeOut(0-20mA) 
sowie AnalogIn bis hin zu möglichen Sonderfunktionen wie 
Temperaturregler mit Anschluss von PT100/Thmeroelmenten usw. reicht ein 
kleinerer IC mit 68 Pins.
z.B. LPC134x.

Für ein kleines Grafikdisplay wird es dann aber ein LPC178x mit 
144-Pins.
Da werdeh dann z.B. die Steuerpins für das Grafikpanel angeboten und 
Grafiksoftwarepakete gibt es auch dazu.
Gruß Öletronika

von Jan B. (berge)


Lesenswert?

@Moby: Welcher Cortex M ist das doch gleich? Bitte nicht schon wieder 
Flamewar.

Ob M0, M3 oder M4 macht kaum einen Unterschied. Die Hersteller haben 
ihre Abstraktions Libraries, so dass du viel machen kannst, ohne dich 
explizit um den Core kümmern zu müssen. Viele Möglichkeiten hast du 
meiner Meinung nach mit deinem STM32F4Discovery, der CoIDE 
Entwicklungsumgebung und den Projektbespeilen von Uwe: 
http://mikrocontroller.bplaced.net/

von Steffen R. (steffen_rose)


Lesenswert?

Für den Einstieg würde ich nichts ganz neues nehmen. Eher etwas, was es 
bereits einige Zeit auf dem Markt gibt. Dann wird es meist auch von 
vielen IDEs unterstützt und man kann viel Hilfe im Netz bekommen.

von mark (Gast)


Lesenswert?

Ich steh auf dieses board hier. Mega328p+Debugger und alle Pins 
zugänglich so dass man es sogar an die offizielle arduino IDE anpassen 
kann.
http://store.atmel.com/PartDetail.aspx?q=p:10500392#tc:description

und das für 8.88$

von Cortex User (Gast)


Lesenswert?

mark schrieb:
> dieses board hier. Mega328p+Debugger

Und was hat das mit Cortex M zu tun?
Mach mit Moby nen eigen Thread auf und flame da weiter.


Markus schrieb:
> mal mit den Cortex Arm Prozessoren spiele. Nur, mit welchem
> sollte ich Anfangen: M3 oder M4?

Nimm so ein Discovery Board von ST. M0 oder M4 ist am Anfang egal.

von cortexuser (Gast)


Lesenswert?

Also ich habe direkt mit einer M4 (stm32f407) angefangen (nach atmel), 
da ich einen externen speicherbus brauchte.

Die M4 sind neuer vom Preis ahnlich wie die m3 daher würde ich dir zu 
der m4 raten. Es gibt auch kleine m4 (stm32f3 Serie im tqfp32 Gehäuse)

Die erste M7 ist vom St angekündigt aber ich kenne noch kein 
Lieferdatum. Auch ist die Frage, wie die Compiler das direkt 
unterstützen.

von Uwe Bonnes (Gast)


Lesenswert?

cortexuser schrieb:
> Die erste M7 ist vom St angekündigt aber ich kenne noch kein
> Lieferdatum. Auch ist die Frage, wie die Compiler das direkt
> unterstützen.

https://launchpad.net/gcc-arm-embedded/+announcement/12983 :
Features:
* Support the new cpu cortex-m7.

von Dirk K. (dekoepi)


Lesenswert?

Die Leistung eines M7 muss man aber erst mal benötigen, sonst ist das 
doch Geld- und Ressourcenverschwendung. STM32 F4 oder F0 (oder F1), 
enstprechend M4, M3 oder M0 sollten für den ersten Umstieg schon 
ordentlich Spielwiese und Reserven bieten. Wenn man aus der AVR-Welt 
kommt.

von Uwe Bonnes (Gast)


Lesenswert?

Dirk K. schrieb:
> Die Leistung eines M7 muss man aber erst mal benötigen, sonst ist das
> doch Geld- und Ressourcenverschwendung.

Wenn Du Dir X verschienede Typen hinlegts, dann ist das auch Geld- und 
Ressourcenverschwendung. Und genauso, wenn Du Dir einen abbrichst, weil 
Deine Ansprueche gewachsen sind und Du an Grenzen stoesst. "Think Big"! 
Das Knausern ueberlass den Controllern in der Industrie.

von Paul (Gast)


Lesenswert?

cortexuser schrieb:
> Die erste M7 ist vom St angekündigt aber ich kenne noch kein
> Lieferdatum.

ich bin gespannt wieviele Bugs ST diesmal schafft reinzustecken, zu 
verstecken und von den M4/M3 übernimmt. sie machen meiner meinung nach 
zu viele MCU anstatt sich darauf zu konzentrieren die existierenden 
Produkte zu bereinigen damit man sie einigermaßen verwenden kann.
wenn ich mir die Errata Liste vom STM32F407 so ansehe die ist schon 
beachtlich - und der Produzent hat wohl keine Lust diese zu beheben. 
Schaut so aus als wäre das normal - L0 im Kopf und schon auf F7 stürzen, 
aber Fehler zu bereinigen is nicht obwohl kritische Errata dabei sind. 
Schnell wurde diese Info um den Globus geschmissen, dann wird es wieder 
heißen "ja verfügbar sind sie aber nur für Keykunden" - gleichzeitig 
Termine mit großer Verzögerung.

von Lutz (Gast)


Lesenswert?

Uwe Bonnes schrieb:
> Wenn Du Dir X verschienede Typen hinlegts, dann ist das auch Geld- und
> Ressourcenverschwendung. Und genauso, wenn Du Dir einen abbrichst, weil
> Deine Ansprueche gewachsen sind und Du an Grenzen stoesst. "Think Big"!

Ich habe die Frage aber so verstanden, daß es erstmal um's Kennenlernen 
der Architektur geht. Und da mal 10-20 € "unproduktiv" zu 
ver(sch)wenden, finde ich in Ordnung. Zumal man damit ja auch schon 
einige Wochen verbringen kann/wird. Ist ja auch eher der Unterschied zu 
den AVR: Es ist dediziert viel mehr Peripherie zu powern, zu clocken 
usw., und das noch mit Unternuancen. Und es gibt ja "dananch" noch den 
Markt hier, Äbäh usw..
Und wenn man aus der AVR-Welt kommt, wird es wohl schon extrem 
schwierig, einen M0 auszulasten. Bei einem AVR wohl auch schon sehr 
schwierig. Von M3, M4 oder irgendwann M7 ganz zu schweigen.
Zumindest mir geht es so: Ich mache lieber am Anfang gerne viele kleine 
Schritte. Dafür aber erfolgreich und damit motivierend für weitere 
Schritte.

von holger (Gast)


Lesenswert?

>Ich habe die Frage aber so verstanden, daß es erstmal um's Kennenlernen
>der Architektur geht. Und da mal 10-20 € "unproduktiv" zu
>ver(sch)wenden, finde ich in Ordnung.

Falls also mal jemand kommt und auf dem PC programmieren
möchte, würdest du dem dann einen 386 und DOS empfehlen?
Nein natürlich nicht. Du würdest ihm etwas modernes
empfehlen.

>Ich mache lieber am Anfang gerne viele kleine
>Schritte.

Die kann man auf einem M4 auch machen. Man nimmt ja nicht
sämtliche Hardwareeinheiten auf einmal in Betrieb.

von Sascha (Gast)


Lesenswert?

Hallo,
auf Grund dieses Threads habe ich im Web einen Artikel von Atmel 
gefunden und gelesen. Die haben anscheinend den CM7 schon lizensiert und 
wollen einen Chip der sogar SIL3 erreicht auf den Markt bringen, da bin 
ich mal gespannt.

Gruß Sascha

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

> auf Grund dieses Threads habe ich im Web einen Artikel von Atmel
> gefunden und gelesen. Die haben anscheinend den CM7 schon lizensiert und
> wollen einen Chip der sogar SIL3 erreicht auf den Markt bringen, da bin
> ich mal gespannt.

ich habe schon die erstem engineering sample von ST.

http://www.st.com/web/en/catalog/mmc/SC1169/SS1858

von cortexuser (Gast)


Lesenswert?

Wegen der Leistung etc. Ich habe z.b. ein einfaches Display 
angeschlossen (320x400px 16 Bit Farben) mit dem emWin von segger. Durch 
Fat32 mit SDIO braucht man auch nochmal Speicher.

Da ist das Problem der externe speicherbus/TFT controller haben eh nur 
die großen. Dazu können auch nur die ganz großen Sdram ansteuern.

Da ist leider immer ein Teil über dimensioniert. Und im 
privaten/Kleinserie ist es auch nicht so schlimm. Da habe ich einfach 
die große m4 für ein anderes Projekt kopiert statt ein redesign mit 
einer m0 zu machen.  Die 5€ am uC zu sparen bringt es in solchen fällen 
auch nicht.

von Rene T. (Gast)


Lesenswert?

M3 reicht...
und geschwindigkeitstechnisch scheinen die XMega bei vielen Sachen 
ebenbürdig zu sein.
Beim Toggeln von von Pins soll der Xmega wohl um Welten schneller 
sein..aber auch sonst, benötigt der Xmega für viel Befehle und 1 oder 2 
takte..ARM oft deutlich mehr als 4...
Von daher ist der Geschwindigkeitsunterschied bei vielen Sachen bei 
weitem nicht so hoch wie hier oft suggeriert wird...
Mit FPGA Unterstützung unf anderen spezielleren Sachen ist der Arm wohl 
schneller..
Aber mit einem M3 oder so hat man doch alles was man braucht, von 48-144 
Pins, can, 1MB oder sogar 2? etc pp

von Markus (Gast)


Lesenswert?

Dirk K. schrieb:
> Die Leistung eines M7 muss man aber erst mal benötigen, sonst ist das
> doch Geld- und Ressourcenverschwendung

Bezüglich der "Ressourcenverschwendung": ich finde VIEL Hardware 
ziemlich geil;) Mir gehts darum Neues zu entdecken.
Ich betreibe das als Hobby, somit ist die Effizienz egal.





Vielen Dank für die vielen Antworten.
Ich hole mir vieleicht so ein Discovery mit TFT Display, oder ich 
investiere ordendlich, dann möchte ich eins mit Ethernet, Audio und 
Display.

von Cortex User (Gast)


Lesenswert?

Markus schrieb:
> dann möchte ich eins mit Ethernet

http://de.farnell.com/texas-instruments/ek-tm4c1294xl/eval-brd-tiva-c-connected-launchpad/dp/2399965?CMP=GRHS-1001023

holger schrieb:
> Falls also mal jemand kommt und auf dem PC programmieren
> möchte, würdest du dem dann einen 386 und DOS empfehlen?

Du hast ARM nicht verstanden. Werkelt in deinem Smartphone ein Core i7? 
Software für einen M0 läuft ohen Änderung auf einem M3, M4. Das ist der 
Trick.

Wenn jemand mit Turbo C programmieren möchte, ist der 386 keine 
schlechte Wahl.

von Dirk K. (dekoepi)


Angehängte Dateien:

Lesenswert?

Ich war so frei, von meinen Erfahrungen auf andere zu schließen. Das ist 
oftmals falsch, hier sieht man auch wieder, warum.

Dann eben ein großes Brett mit ganz viel drauf.

Ich sehe bei mir, so als noch-immer-Einsteiger, dass ich viele kleine 
Dinge anfange. Da sind dann viele kleine µCs praktischer und 
angemessener.

Bei einem großen Board müsste ich das ständig wieder auseinanderrupfen. 
So habe ich kleine Module, die ich dann irgendwann einfach zu was 
Größerem zusammenstöpsele.

: Bearbeitet durch User
von Markus (Gast)


Lesenswert?

Ja das mit den Modulen ist echt nicht schlecht. Ich bestelle mir öfters 
mal irgend welche Module aus e*** z.B. Oled Display. Trozdem merke ich 
es ist sinnvoller alles auf einem Board zu haben --> können ja dann bei 
Fehlern nur Software Problme sein. Nachteil ist aber dann auch man kann 
nicht einfach mal alles mitm Oszi anzapfen.

von holger (Gast)


Lesenswert?

>> Falls also mal jemand kommt und auf dem PC programmieren
>> möchte, würdest du dem dann einen 386 und DOS empfehlen?
>
>Du hast ARM nicht verstanden.

Und du hast nicht verstanden was ich damit meinte.

von Programmierer (Gast)


Lesenswert?

Rene T. schrieb:
> aber auch sonst, benötigt der Xmega für viel Befehle und 1 oder 2
> takte..ARM oft deutlich mehr als 4...
Die meisten Instruktionen brauchen 1 Takt. Branches brauchen ggf. mehr 
je nach Zustand der Pipeline. Sonst sind noch Multiplikation mit 1-2 
Takten und Division mit 2-12 Takten langsam. "oft mehr als 4" kann man 
also nicht gelten lassen.

Rene T. schrieb:
> Beim Toggeln von von Pins soll der Xmega wohl um Welten schneller
> sein..
Kann maximal doppelt (!= "um welten") so schnell sein, denn der 
Cortex-M3 braucht 2 Takte. Allerdings nimmt man auch keinen 100MHz 
Prozessor um mit 100MHz zu togglen, denn die Cortexe haben oft auch 
sowas wie SPI, U(S)ART, Static Memory Controller, DMA mit dem man 
schnell Pins togglen lassen kann ohne dass die CPU überhaupt irgendwas 
machen müsste.

von Programmierer (Gast)


Lesenswert?

Rene T. schrieb:
> Beim Toggeln von von Pins soll der Xmega wohl um Welten schneller
> sein..
PS: Da die Xmega scheinbar nur 32MHz können, sind "schnelle" Cortex-M3 
(zB 72MHz) dann doch wieder mindestens genauso schnell.

von Cortex User (Gast)


Lesenswert?

Der xmega ist doch kein Wettbewerb zum Cortex. Atmel hat eigene Cortex. 
Mit xmega soll die AVR-Schiene fortgeführt werden. Die größten 
Anstrengungen bei Atmel liegen aber momentan bei ARM.

von cortexuser (Gast)


Lesenswert?

@Cortex User
Dem stimm ich zu.

V.a. hat man mit ARM eine gewisse Hersteller Unabhängigkeit. Und die 
Performance/Strom ist super.  Ich setze eine M4 ein, welche mit 32 MHz 
(Quarz) (wegen Canbus) und einen Haufen Peripherie nur 10 ma braucht.

Aber solche Diskussionen haben in dem forum eh keinen Sinn, da es zu 
einem Glaubenskrieg ausartet.

Allein aus dem Grund um breiter aufgestellt zu sein schadet es nicht 
etwas neues zu lernen.

Bekommt mal als student für 40-60€ ein super jtag (wie jlink) für die 
xmegas?

Wenn er es lernen will dann gebt ihn dafür Tipps und redet nicht ständig 
dagegen.

von Sascha (Gast)


Lesenswert?

Hallo,
also wenn man Grafik und DSP braucht, dann würde ich eher auf einen A5 
gehen.
Ob ich nun den M4 mit 180MHz oder einen M7 mit 200MHz habe ist wohl im 
Ganzen nicht mehr der große Unterschied. Es sei den der M7 hat 400 MHz.
Der Flash wird ansich ja auch nicht den Speed unterstützen, deshalb der 
Cache. Ein ARM9 mit 264MHz ist nach meinen Tests (Assembler optimiert) 
immer noch Faktor 2,6 bis 4.3 Schneller als ein M4.

Gruß Sascha

von cortexuser (Gast)


Lesenswert?

@sascha wir planen einen Nachfolger mit einem A20. Nur muss da Linux 
portiert werden usw. Qt wäre mir definitiv lieber. Aber es zieht ein 
paar Sachen mit sich: min. 4 Lagig (ddr3 Speicher) alles BGA => bei 
Kleinserie nur zwischen 95-99% Erfolg. Usw.

von Stefan (Gast)


Lesenswert?

cortexuser schrieb:
> @Cortex User Dem stimm ich zu.
> V.a. hat man mit ARM eine gewisse Hersteller Unabhängigkeit. Und die
> Performance/Strom ist super.  Ich setze eine M4 ein, welche mit 32 MHz
> (Quarz) (wegen Canbus) und einen Haufen Peripherie nur 10 ma braucht.
> Aber solche Diskussionen haben in dem forum eh keinen Sinn, da es zu
> einem Glaubenskrieg ausartet.
>
> Allein aus dem Grund um breiter aufgestellt zu sein schadet es nicht
> etwas neues zu lernen.
> Bekommt mal als student für 40-60€ ein super jtag (wie jlink) für die
> xmegas?
> Wenn er es lernen will dann gebt ihn dafür Tipps und redet nicht ständig
> dagegen.

Egal ob AVR oder cortex. Bei Atmel bekommst du einen vollwertigen jtag 
Debugger für 32$ und brauchst dabei nicht mal Student sein. Und deren 
tools unterstützen etwas mehr als ein abgespeckter jlink. (Trace zb)
ich kann mich aber gut mit a5 anfreunden speziell mit der crank gui 
siehe neuer sama5d4

von Steffen K. (botnico)


Lesenswert?

Ich designe gerade einen STM32F429 mit SDRAM und TFT ein.
Es ist schon wahnsinn, wie billig das geworden ist. Aber die
Pinanordnung ist total Gaga. Die FMC Pins (für das SDRAM) sind rund um 
den Chip verteilt. Das blockiert die Weiterentwicklung in Pichtung 
DDR2/3 in neueren schnelleren Versionen. Schade!
Beim TFT Interface schauts, was die Pinverteilung angeht, auch nicht 
besser aus. Zusätzlich blockiert das TFT Interface die RMII Ethernet 
Ankopplung. Schade!
Eine interne Referenz für den ADC wie beim ATMega fehlt auch. Das Errata 
Sheet hat rund 30 Seiten. Nur die gröbsten Fehler wurden in neueren 
Revisionen behoben. Frühere Revisionen sind sogar eingefroren, wenn an 
einem bestimmten Port-Pin was anderes als eine 0 angelegen hat, egal ob 
als Ein- oder Ausgang.
Vielleicht ist das alles der Grund warum die so preiswert sind ;-)

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

> Aber die Pinanordnung ist total Gaga. Die FMC Pins (für das SDRAM) sind
> rund um den Chip verteilt. Das blockiert die Weiterentwicklung in Pichtung
> DDR2/3 in neueren schnelleren Versionen. Schade!

richtig, die Anordnung der Pins zum FMC ist wirklich nicht gelungen. Mit 
BGA ist das aber besser zu routen.

DDR2/3 ist da nicht geplant, da kommt was neues. Macht ja auch keinen 
Sinn mit dem Clock. Nur Low Power SDRAM ist möglich, da muss aber die 
ganze Schaltung mit 1,8V laufen.

> Beim TFT Interface schauts, was die Pinverteilung angeht, auch nicht
> besser aus. Zusätzlich blockiert das TFT Interface die RMII Ethernet
> Ankopplung. Schade!

mit TFBGA216 ist fast alles möglich. Ich habe das sogar mit einem 32Bit 
Daten-Bus gemacht. Nur das Kamerainterface ist nicht mehr komplett 
zugänglich (nur 8 Bit )

von Steffen K. (botnico)


Lesenswert?

@Steffen H.:

Wieviele Layer hat denn dein PCB mit dem TFBGA216?
Mein Design hat 4 Lagen mit separaten VDD- und GND-Lagen.
Bei SDRAM muss man bei 90 bzw. dann 100MHz (M7 Nachfolger)
bei den für die Frequenz geringen Längendifferenzen noch nichts 
mäandern.

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

@Steffen Koepf:

das Layout bei mir hat 8 Lagen Impedanz kontrolliert (mit Polar ). ( 
85mm x 48mm )
32MB SDRAM ( 32Bit ) NOR-Flash, High Speed USB, Ethernet Phy.

> Bei SDRAM muss man bei 90 bzw. dann 100MHz (M7 Nachfolger)
> bei den für die Frequenz geringen Längendifferenzen noch nichts
> mäandern.

bei mir schon.

von Steffen K. (botnico)


Lesenswert?

Ich verwende die MCU in meiner Applikation mit
32M SDRAM, 8M SPI-Flash und TFT-Interface. USB und MicroSD gibts auch 
noch auf dem Board, das ist ca. 8x5 cm.
Wieo mäanderst du denn bei SDRAM? Da sind doch einige Zentimeter 
Längendifferez noch im grünen Bereich.

von Andi (Gast)


Lesenswert?

Sascha schrieb:
> Hallo,
> also wenn man Grafik und DSP braucht, dann würde ich eher auf einen A5
> gehen.
> Ob ich nun den M4 mit 180MHz oder einen M7 mit 200MHz habe ist wohl im
> Ganzen nicht mehr der große Unterschied. Es sei den der M7 hat 400 MHz.
> Der Flash wird ansich ja auch nicht den Speed unterstützen, deshalb der
> Cache. Ein ARM9 mit 264MHz ist nach meinen Tests (Assembler optimiert)
> immer noch Faktor 2,6 bis 4.3 Schneller als ein M4.
>
> Gruß Sascha

Der M7 von atmel koennte echt interessant werden, die ersten samples 
sollen mit 300mhz getaktet werden. 
http://www.atmel.com/about/news/release.aspx?reference=tcm:26-63538

Schoenn dass auch hier atmel studio unterstutzung angeboten wird. Und: 
endlich vernuenftige CAN IP

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
Noch kein Account? Hier anmelden.