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
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.
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ß :)
> 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
@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/
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.
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.
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.
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.
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.
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.
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.
>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.
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
> 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
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.
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
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.
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.
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.
>> 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.
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.
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.
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.
@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.
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
@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.
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
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 ;-)
> 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 )
@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.
@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.
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.
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