Was zwingt einen Cortex F4 in die Knie? Ich hab jetzt schon mehrere
Sachen mit den uC gemacht von denen ich dachte, es könnte knapp werden.
Ich wurde immer eines besseren belehrt. Ob große Datenmengen, schnelle
und viele PWM, Multitasking ohne Ende, alles kein Problem. Daher die
Fragen, welche Projekte bringen einen F4@168MHz an de Grenzen?
Ist wie im Kindergarten.
- Nänänää ... der AVR ist aber besser.
- Nein. Der STM32 ist immer eins besser als Deiner.
- Der AVR ist aber unendlich besser.
- Der STM32 ist unendlich und eins besser.
Er hat nach ner STM32 Applikation gefragt. Nicht nach AVR.
Ich hab eine PID Regler mit 1MHz laufen. Brauche 80% CPU. Ist jetzt aber
einfach ne Frage, wie hoch drehe ich die Zykluszeit/frequenz.
Mit 1MHz bleiben 168 Takte zwischen zwei Regleraufrufen, sportlich. Aber
was zu Hölle ändert sich so schnell das man da mit 1MHz drann muss?
DigiCam bzw Datenverarbeitung stelle ich mir schwierig vor. Viele Daten,
wenig Zweit, viele Rechnungen
Maximilianeum schrieb im Beitrag #3685689:
> Ingo schrieb:> Was zwingt einen Cortex F4 in die Knie? Ich hab jetzt schon mehrere> Sachen mit den uC gemacht von denen ich dachte, es könnte knapp werden.> Ich wurde immer eines besseren belehrt.>> Die Erfahrung kann man in den meisten Fällen zum Bruchteil von Kosten,> Stromverbrauch und Einarbeitungsaufwand auch mit einem 20MHz AVR machen.> Gescheite Programmierung vorausgesetzt.
Versteh mich nicht falsch, ich liebe die AVRs wegen ihrer Einfachheit.
Aber wenn ich weiß, das ich viele Daten rechnen muss, dann nehme ich
nicht einen Controller, der grundsätzlich eher ein schlechter Rechner
ist (8Bit).
Ingo schrieb:> Versteh mich nicht falsch, ich liebe die AVRs wegen ihrer Einfachheit.> Aber wenn ich weiß, das ich viele Daten rechnen muss, dann nehme ich> nicht einen Controller, der grundsätzlich eher ein schlechter Rechner> ist (8Bit).
Sehr vernünftiger Ansatz.
Aber wenn ich mir das OP anschaue, ist dein Problem ja wohl, daß du den
F4 nicht ausgelastest bekommst.
Also hast du selber ganz offensichtlich gegen diesen vernünftigen Ansatz
verstoßen...
Also Depp oder Troll. Ich tippe auf Troll.
Kindergarten ist genau der richtige Ausdruck für den OP.
Der Cortex M4 mit FPU ist bestimmt nicht als Master für einen einzelnen
1-wire Sensor gedacht.
@ Ingo (Gast)
>Mit 1MHz bleiben 168 Takte zwischen zwei Regleraufrufen, sportlich. Aber>was zu Hölle ändert sich so schnell das man da mit 1MHz drann muss?
Volldigitaler DC/DC Wandler, aka Digital Power. Wobei es dafür
spezialisierte ICs gibt, die können das besser bei weniger
Stromverbrauch. Aber als Projekt sicher interessant.
http://www.ti.com/lsds/ti/power-management/digital-power-control-solutions-products.page
Deinem Beitrag entnehme ich, das du mit einem STM32F072 oder F051 besser
dran gewesen wärst:
- weniger Stromverbrauch
- wesentlich billiger
- weniger kompliziert
- Rechenleistung reicht vermutlich auch
Die Kunst besteht darin, den richtigen Prozessor zu wählen, nicht den
der gerade in Mode ist ;-).
Hier ist auch noch ein schönes Anwendungsbeispiel: Ein 16-stimmiger
FM-Synthesizer auf Basis des STM32F405
http://ixox.fr/preenfm2/
Bei sowas kriegt man die Rechenleistung immer weg, indem man die Anzahl
der Stimmen erhöht :)
Maximilianeum schrieb im Beitrag #3685689:
> Ingo schrieb:>> Was zwingt einen Cortex F4 in die Knie? Ich hab jetzt schon>> mehrere Sachen mit den uC gemacht von denen ich dachte, es könnte knapp>> werden. Ich wurde immer eines besseren belehrt.>> Die Erfahrung kann man in den meisten Fällen zum Bruchteil von Kosten,> Stromverbrauch und Einarbeitungsaufwand auch mit einem 20MHz AVR machen.> Gescheite Programmierung vorausgesetzt.
Völlig pauschalisiertes Geschwafel. Jeder Typ bzw. Klasse von
Mikrocontrollern, DSPs, FPGAs hat ihre Daseinsberechtigung und
Anwendung. Das is wie wenn man fragt: "Wozu VW Golf?". Die Realisierung
mit einem 20Mhz uC geht bis zu einem gewissen Grad, dann ist Schluss.
Außerdem endet die Welt nicht mit dem Im allgemeinen beschränken
Horziont des Hobbybastlers der aussteigt sobald die Toolchain nicht mehr
hyper Easy ist (vgl. Avr Studio) sondern man sich Gedanken über Compiler
und Linker machen muss (z.B. CooCox oder IAR).
Ingo schrieb:> Mit 1MHz bleiben 168 Takte zwischen zwei Regleraufrufen,> sportlich. Aber> was zu Hölle ändert sich so schnell das man da mit 1MHz drann muss?
Positionsregelungen z.B. Ich hatte neulich einen Servocontroller mit
80.000 Strichen und 35kW auf dem Schreibtisch. 3 verschachtelte
Regelschleifen mit je 25 MHz ausgeführt auf einem mittleren Spartan 6.
so ganz verstehe ich nicht, wie manche Leute glauben können, der
STM32F4... wäre so "wahnsinnig schnell".
Der ist - wenn überhaupt - der größte unter den allerkleinsten:
Kinderspielzeug, nichts weiter ;-)
Ein "richtiger" Prozessor ist mindestens sowas:
www.atmel.com/products/microcontrollers/arm/sam9x.aspx
(an sich auch schon armselig! Man vergleiche das mit einem Core I7...)
Für Signaverarbeitung nimmt man eher etwas dieser Kategorie:
http://www.analog.com/en/processors-dsp/blackfin/products/index.html
Bei mir geht es beim STM32F4 nicht nur um das "Auslasten" oder die
"Geschwindigkeit". Viel wichtiger ist mir die üppige Peripherie die ST
schon gleich mit verbaut.
Es gibt nur wenige andere Hersteller die in einer ganzen Produktlinie
(über 370 Devices) so viel in den Prozessor rein packen. Man hat dadurch
viel mehr Auswahl und Möglichkeiten. Ein µC, der so ziemlich alles kann.
Markus Müller schrieb:> Viel wichtiger ist mir die üppige Peripherie die ST schon gleich mit verbaut.
Ja schon, aber wenn ich so zur Konkurenz schiele, die zum Teil on-chip
Ethernet MAC und PHY haben ...
Und manchmal verzweifle ich an der "alternate function mapping", das ja
nicht gerade vor Flexibilitaet strotzt.
Ingo schrieb im Beitrag #3686607:
> Ich dachte das ich mit nem STM32F40x endlich mal mein 2x16 HD44780 LCD> zum Laufen kriege, leider reicht seine Leistung nicht aus.
Schon mal über effizientere Programmierung oder einem funktionierenden
Code nachgedacht? Meist sitzt der Fehler zwischen Stuhl und Bildschirm.
Für ein HD44780 LCD hat auch ein µC dessen Taktsignal mit einem Taster
generiert wird genug Rechenleistung.
Ingo schrieb:> Was zwingt einen Cortex F4 in die Knie?
Max H. schrieb:> Meist sitzt der Fehler zwischen Stuhl und Bildschirm.
Im Tastatur-Controller? Ich wusste es!
Einen F4 hab ich bis jetzt auch noch nicht ausgelastet, einen F2 (120
MHz) aber schon, der hat 3D triangulation von Ultraschallsignalen
gemacht, nebenbei noch bissl Ethernet und diverse andere Kommunikation
Warum eine so lahme Kiste nehmen?
Wenn es ein bisschen mehr sein darf, so bspw.
90 GFLOPS
HDMI,
Ethernet,
USB,
48 GPIO ports
Alles für lasche 99US$:
http://www.adapteva.com/parallella-board/
matthiassaihttam schrieb:> Interessant.> Was hast Du denn für ne typische Genauigkeit?
Auch schon wieder etwas her das Thema, es war auf jeden Fall zu ungenau
für das was wir wollten.
Es ging darum, die Position eines Ultraschallsenders relativ zu 4
Empfängern zu ermitteln, die im Rechteck angeordnet sind. (quasi eine
schiefe Pyramide mit rechteckiger Grundfläche). Der Knackpunkt war
daran, dass unser optischer Triggerimpuls (sync) wegen Sonnenlicht nicht
gut genug war und darum nur noch mit "Differenzstecken" (zum ersten
empfangenden Sensor) gerechnet werden konnte. Funk als Trigger schied
aus anderen Gründen aus.
Die Positionsgenauigkeit war letztenendes auch Abhängig von der Position
selbst, bspw ganz am Rand und ganz in der Mitte relativ ungenau...
Manchmal frage ich mich, worum es eigentlich geht. Adidas oder Nike. BMW
oder Benz. Apple oder Samsung.
?
Ich seh' das so: Ich könnte meine Heizung mit einem 8051 steuern, der
bei 12MHZ Systemtakt (was beim Ur-8051 1MHZ Arbeitstakt ist) vielleicht
zu 5% ausgelastet wäre. Wenn überhaupt.
Den kauf ich mir also, für, nuja, 1 Euro. Plus Versand.
Dann kauf ich mir noch ein Latch. Und ein EPROM, ein paar Sockel für
alles. Und eine Platine zum Ätzen. Und einen Quarz. Und ein bisschen
Vogelfutter für drumrum, ein paar Stiftleisten, einen MAX232, ein paar
10µF Kondensatoren dazu, ne Printbuchse fürs serielle Kabel. Was noch?
Achja, einen RAM-Baustein vielleicht, die ein oder andere LED, etwas
Kleinkram für eine halbwegs stabile Spannung. Und dann fehlen sicher
immer noch ein paar Teile.
Wenn ich alles billig kriege, bin ich inklusive Versand vielleicht mit
20 Euro dabei.
Vielleicht.
Denn ich brauche ja auch noch Ätzmaterial, muss belichten, vorher
natürlich alles entwerfen und Folien drucken. Setze mich hin, mach ein
Design, und bin mit ein, zwei Fehlversuchen nach zwei Wochenenden
-eventuell- fertig.
Bis ich dann unter Verwendung der RS232 Schnittstelle alles debugged und
am Ende noch ein paar Patch-Drähte appliziert habe, und alles endlich
gut läuft, dann stelle ich es hier vor. Und alle finden es im Prinzip
toll.
Bis auf einen.
Der sagt: Warum kaufste Dir nicht ein Discovery-Board? Das kostet 14
Euro, fixunfeddisch, inklusive USB-Anschluss, In-System-Programming,
schrittweiser Debug-Möglichkeit per STLINK, halb so viel Stromverbauch,
und wennde willst, kannste Deine Heizungg damit Musik machen lassen,
Beethovens Fünfte z.B., oder wenn mal wieder das Öl alle ist, auch
Wagners Wallkürenritt. In Stereo.
Und wisst Ihr was? Er hat Recht.
Selbst wenn der STM32 mit 0,0001 Promille Auslastung 'way to
overpowered' ist, ist es selbst für so einen niederen Zweck eine
unanständig billige Lösung. Ganz zu schweigen von noch billigeren
Varianten, Nucleo-Boards etwa, VL-Versionen oder was auch immer, die
kosten ja noch weniger.
Wenn einer zeigen will, was er mit 8-Bittern hinbekommt, toll. Hab ich
hinter mir. Wer weiss, wie man mit einem Mini-PIC eine Raumstation
steuert: Super. Wer mit einem ATtiny eine 5-Achs CNC-Maschine unter
Kontrolle behält: Schön.
Aber wenn ich heute irgendein Problem zu bewältigen habe, dann schau ich
mir zu allererst einmal mir an, was der ganze Zirkus kostet. Und mit 14
Euro für ein Board, selbst wenn ich es nur im Promillebereich ausnutze,
scheìße ich auf jedwedes edle Motiv mit geringstmöglicher Hardware
maximale Effizienz erreichen zu wollen.
Wer hier schreibt, ist sicher keiner der über die Frage entscheidet,
welcher Chip die nächsten 50 Millionen VW-Golf-Klimaanlagen steuert.
Denn in diesen Größenordnungen spielen solche Fragen natürlich eine
zentrale Rolle. Aber für alles was so an privaten Projekten mit
Reproduktionen maximal im Dutzendbreich realisiert wird, ist die Frage
nicht 'STM32, wozu?', sondern 'STM32, warum nicht?'
Deshalb ist das ganze Gelaber um die Frage, ob man so einen Powerchip
'braucht' angesichts der Preise bei der gebotenen Bequemlichkeit
einfach nur - Bullshit.
E. Hermanns schrieb:> Deshalb ist das ganze Gelaber um die Frage, ob man so einen Powerchip> 'braucht' angesichts der Preise bei der gebotenen Bequemlichkeit> einfach nur - Bullshit.
Schlechtes Beispiel, dazu auch noch falsch.
Um beim 8051 zu bleiben: Der kostet fix und fertig mit integriertem
Flash und Eeprom (mit verbesserter und damit schnellerer Architektur)
selbst in Einzelstückzahlen < 1€ (was die dann wohl in 10k+ Stückzahlen
kosten?). Die brauchen heute auch keinen Quarz mehr, besitzen eine Menge
interner Peripherie und brauchen nicht mehr Außenbeschaltung wie ein
Avr.
Das Discovery ist günstig, keine Frage. Aber für 95% meiner Projekte
überdimensioniert und damit ein vielfaches teurer als ein kleinerer µC.
Und wenn man dann den µC auf eine eigene Platine bringen möchte, merkt
man plötzlich das der µC mehr als das F4 Discovery Board kostet.
Torsten S. schrieb:> Meiner holt JPGs von einer Webcam und zeigt diese auf einem LCD> an.> Beim Dekodieren kommt der F4 ordentlich ins Schwitzen.
Genau, bei JPG wird es selbst beim F4 eng, das habe ich auch schon
bemerkt ;)
Aber die Routinen nicht überprüft (was auch äh ziemlich aufwendig ist).
Nichtsdestotrotz bin ich Hobbybastler. Und wenn selbst icke die AVR
meist neben üblichen Ackergaul-Aufgaben nur noch nutze, um die STMs
nicht kaputtzuflashen, und um mich dann später beim Transport auf STM32
an dem Speedzuwachs zu erfreuen ... dann stimmt doch da was nicht.
Es sei denn, es sind hier nur noch Bastler und keine Profis mehr
unterwegs 8)
> Schlechtes Beispiel, dazu auch noch falsch.
Nö.
> Um beim 8051 zu bleiben: Der kostet fix und fertig mit integriertem> Flash und Eeprom (mit verbesserter und damit schnellerer Architektur)> selbst in Einzelstückzahlen < 1€
Mit Seriellem Zugriff, inklusive Stecker, MAX232 und allem PiPaPo?
Nochmal nö.
Ich rede von einer Lösung, die ich kaufe, per (USB)-Kabel anschließe und
fertig. Bis der 8051 (den ich selber eingesetzt habe und sehr schätze)
mit einem PC reden kann, bist Du mehr als einen Euro los.
> (was die dann wohl in 10k+ Stückzahlen > kosten?)
Meine letzten 10k Hausapplikationen habe ich noch nicht realisiert. Und
meine Aussage oben bezog sich explizit auf das, was hinter den meisten
Auguren hier in Wahrheit steckt: Gelegenheitsprojekte mit kaum einem
Dutzend Replikationen.
> Das Discovery ist günstig, keine Frage. Aber für 95% meiner Projekte> überdimensioniert
So ist es. Das ist auch bei mir so. Aber wenn 'korrekt dimensionieren'
in diesem Stückzahlbereich mehr kostet, als es zu lassen, dann ist es
Luxus.
> Und wenn man dann den µC auf eine eigene Platine bringen möchte, merkt> man plötzlich das der µC mehr als das F4 Discovery Board kostet.
Deshalb kaufe ich ein Discovery Board. Die gebotenen Möglichkeiten
inklusive USB-Zugriff und STLINK-Möglichkeiten bekomme ich zu den
Preisen anders nicht hin.
Von stabiler Stromversorgung, vorhandenen LEDS und wenigstens einem
Taster ganz zu schweigen.
Es steht aber jedem frei, ein eigenes Board zu designen, zu ätzen, zu
löten und mit Steckern zu versehen, um dann am Ende nur 9,99 Euro
auszugeben. Inklusive Versand stehen dann vielleicht 18 Euro gegen 14
Euro. Jeder nach seiner Fasson.
Auch Zeit ist eine Ressource, und älter werdend stelle ich fest: Es ist
die knappeste Ressource überhaupt.
Für mich bleibt daher die Frage: STM32, warum nicht? Ist meine Zeit so
wenig wert?
Vier Euro?
avus schrieb:> Es sei denn, es sind hier nur noch Bastler und keine Profis mehr> unterwegs 8)
Aha, auch schon bemerkt?
Ja, es ist ein Bastlerforum, in dem der eine oder andere Profi im
Vorbeilaufenden hilft.
Einziger Nachteil der ARM-Schiene gegen AVR ist ein subjektiv höherer
Aufwand für die Entwicklungsumgebungen. Eine LPCExpresso auf Win7 ist
zwar schnell installiert. Aber die Limitierungen sind klar auf einen
Kauf der Entwicklungsumgebung ausgelegt. Bei der Public-Domain-Schiene
habe ich einen hohen Einarbeitungsaufwand beim Flashen. Schnell mal
einen Cross-Compiler erstellen kostet auch ein paar Stunden, und das bei
meinen Stundensatz. ;-)
Vom Preis her aber fast unschlagbar. Eben erst mal nachgeschaut und ein
STM32F4 Discovery für 11,61 Euro plus Märchensteuer gesehen. Ordentliche
AVR vom Resteverwerter würde ich bei 4 bis 6 Euro ansetzen.
Also für Null-Serien unschlagbar.
noreply schrieb:> Einziger Nachteil der ARM-Schiene gegen AVR ist ein subjektiv höherer> Aufwand für die Entwicklungsumgebungen.
Das ist nur ein Klischee aus alten Zeiten. Heute gibt es gute Artikel:
STM32 CooCox Installation
Ein paar Tipps für Einsteiger sind in den Artikeln auch zu finden:
STM32 für EinsteigerSTM32
Tutorials helfen ebenfalls:
http://diller-technologies.de/stm32_wide.html
Wer die volle Kontrolle über Compiler und Speicheraufteilung nutzen
möchte kann das mit dem GCC, Linkerscript und makefile machen, dann
allerdings ist es ein größerer Aufwand, da alles von Hand eingestellt
werden muss:
STM32 Eclipse Installation
Was jedoch auch wiederum vereinfacht wird da es ein Blink-LED Demo im
Artikel zu laden gibt.
E. Hermanns schrieb:> Mit Seriellem Zugriff, inklusive Stecker, MAX232 und allem PiPaPo?
Ich rede von dem blanken µC. Außerdem möchte ich nicht bei jedem Projekt
ein riesen Evalboard stehen haben, sondern eine kleine Platine wo die
Bauteile drauf sind die ich brauche.
E. Hermanns schrieb:> Deshalb kaufe ich ein Discovery Board. Die gebotenen Möglichkeiten> inklusive USB-Zugriff und STLINK-Möglichkeiten bekomme ich zu den> Preisen anders nicht hin.
Es geht schon. Die Platinen bekommt man für ein paar Euro hergestellt
und der passende µC kostet meistens zwischen 0.50€-3€. Und selbst für 3€
bekommt man schon starke Cortex M3s.
Au man, an den Kosten kann es nicht mehr liegen. Mehrere Cortex Anbieter
hauen die M0 und M0+ billiger als die Atmega raus.
Ergo bekommt man mehr Leistung für kleineres Geld!
Wirf einen Blick auf die Roadmaps der großen Halbleiterhersteller. Der
AVR Kram bleibt nur noch für die Bastler, die Industrie ist umgestiegen.
wecker schrieb:> Au man, an den Kosten kann es nicht mehr liegen. Mehrere Cortex Anbieter> hauen die M0 und M0+ billiger als die Atmega raus.> Ergo bekommt man mehr Leistung für kleineres Geld!
Ich habe kein einziges mal Avr, Atmega oder ähnliches erwähnt.
Aber wenn wir schon dabei sind: Die µCs unterscheiden sich nicht nur im
Punkt Leistung, sondern auch durch unterschiedliche Ausstattung. Die
meisten Avrs haben einen recht netten Adc (wenn man keine hohe
Samplingrate benötigt). Sogar in den Attinys ist oftmals ein
differentieller Adc mit Gain verbaut. Natürlich gibt es bei den M0(+)
mehr Leistung. Dafür ist die Peripherie oft eingeschränkt. Bsp: STM32F0
ist Analog sehr spärlich ausgestattet (kein Komparator, ADC nur mit 5V
Referenz). Die kleinen Geckos haben nur wenige sehr Analog Pins, aber
sonst sehr interessante Features. Die 8bitter besitzen häufig eine
bessere Peripherie oder kosten eben doch weniger. Die Atmegas jetzt mal
ausgenommen. Die sind wirklich überteuert. Vielleicht liegt das daran,
dass Atmel die Xmegas durchsetzen möchte (die für den Preis eine sehr
üppige Ausstattung haben - ähnliches wie der Xmega E besitzt kein µC für
den gleichen Preis).
Das ist so eine unnötige und unlogische Diskussion, wer etwas das
eigentlich zu groß ist zusammenfaltet um es in einen bestimmten µC zu
bekommen wird schon seine Gründe haben, sei es aus Bastlerstolz, wegen
großer Stückzahlen oder weil der µC sonst etwas kann das er haben
möchte.
Genauso ist es aber absolut okay einen µC zu nehmen der die Aufgabe
tausende mal erledigen könnte, und bei Einzelstücken ist der Preis
dieses µC vollkommen egal. Speziell wenn der Preisunterschied ein paar €
beträgt ist schon die Zeit darüber nachzudenken ob nicht ein kleinerer
auch ginge verschwendet.
Zur Eingangsfrage: Filter, Regler, En- und Decoder und sonst alles das
grob in Richtung (Echtzeit-)Signalverarbeitung geht braucht schon bei
recht banalen Aufgaben ziemlich viel Rechenleistung.
Markus Müller schrieb:> noreply schrieb:>> Einziger Nachteil der ARM-Schiene gegen AVR ist ein subjektiv höherer>> Aufwand für die Entwicklungsumgebungen.>> Das ist nur ein Klischee aus alten Zeiten. Heute gibt es gute Artikel:>> STM32 CooCox Installation
Im Prinzip ja. Im Speziellen macht es gelegentlich einen Haufen Arbeit.
Ich verwende hauptsächlich Linux. Da habe ich schon mal 5 bis 10 Stunden
an der Compilation meiner Tool-Chain rumgedocktert.
Und OffTopic: Die LPCXpresso werden, was ich jetzt auf die schnelle auch
noch mal überflogen habe, nicht direkt von CooCox unterstützt. Da
scheint das Interface/Programmer "Herrschaftswissen" zu sein. Ein fetter
Prozessor im Interface, man soll aber nach Hörensagen nicht rankommen.
noreply schrieb:> Ich verwende hauptsächlich Linux. Da habe ich schon mal 5 bis 10 Stunden> an der Compilation meiner Tool-Chain rumgedocktert.
Was spricht gegen die Toolchain von
https://launchpad.net/gcc-arm-embedded?
Markus Müller schrieb:> noreply schrieb:> Einziger Nachteil der ARM-Schiene gegen AVR ist ein subjektiv höherer> Aufwand für die Entwicklungsumgebungen.>> Das ist nur ein Klischee aus alten Zeiten.
Ha ha ha. Einfach nur lächerlich, den objektiv zehnfachen Aufwand für
den Einsteiger zu bestreiten.