Forum: Mikrocontroller und Digitale Elektronik Welche Nachteile haben die großen STM32H Serien?


von Itchi (Gast)


Lesenswert?

Gibt es Gründe außer Stromsparen und kleinere Bauform, bei Kleinserien 
oder Hobbybasteleien NICHT auf z.B. den STM32H750 zu setzen?

Auf den ersten Blick hat er nur Vorteile, 16Bit ADC, 480MHz etc pp.

Der Preis ist mit 8€ auch nicht höher als von vielen anderen F4 Serien.
Viel Flash, Ram etc ist auch vorhanden.

Welchen Nachteil hat die H7 Serie?

von A. B. (Gast)


Lesenswert?

Itchi schrieb:
> oder Hobbybasteleien NICHT auf z.B. den STM32H750 zu setzen?
> Der Preis ist mit 8€ auch nicht höher als von vielen anderen F4 Serien.
> Viel Flash, Ram etc ist auch vorhanden.

128kByte Flash ist also sooo viel? Und noch wichtiger: Das ist nur 
ein(!) Sektor, kann also nur komplett gelöscht werden. Mit 
EEPROM-Emulation, Updates via zweiter Bank ist's also Essig.
Der restliche Flash (zum H743) dürfte zwar auch an Bord sein, aber 
nutzbar?

Komplexität?

Pin-Wackeln geht beim G0 deutlich schneller als beim H7.

Cache ist nett - aber hat softwareseitig so seine Tücken. Ebenso ITCM 
und DTCM.

Die momentanen Preise sind teilweise doch recht spekulationsgetrieben.

von Itchi (Gast)


Lesenswert?

ab welcher Serie gibt es schnelles SPI?

von A. B. (Gast)


Lesenswert?

Itchi schrieb:
> ab welcher Serie gibt es schnelles SPI?

Hm, ST hat so viele Datenblätter, die verschenken sie sogar online ;-)

von Itchi (Gast)


Lesenswert?

ja, und? Was willst du mir damit sagen?
Da du es gerade nicht weißt? Schön , danke für deinen Beitrag?!
Ich hatte auch eher in die Runde gefragt...

von Johannes S. (Gast)


Lesenswert?

Ein H743 hat genug internen Flash/Ram für vieles, gibt es auch auf 
Chinaboards.
Die H7 sind schon eine Spur komplexer: Clock mit mehreren PLL und viel 
Konfigurationsmöglichkeit, Power Domains, DMA mit Cachefallen, 
verschiedener Speicher an mehreren internen Bussen und sicher vieles 
mehr.
Dafür haben die auch ordentlich Wumms.

von A. B. (Gast)


Lesenswert?

Itchi schrieb:
> ja, und? Was willst du mir damit sagen?

Dass die Frage so sinnlos ist. Denn "schnell" ist absolut nichtssagend.
Für den einen sind 50 MHz schnell, für den anderen 10 MHz. Und je nach 
Betriebsspannung, Master/Slave und auch je nach SPI-Interface (ja, die 
sind pro Chip keineswegs alle gleich "schnell") ist die max. Frequenz 
unterschiedlich. Also: Wer Datenblätter lesen kann (und will!), ist klar 
im Vorteil ;-) Wer nicht ... bleibt eben sitzen.

von Tina P: (Gast)


Lesenswert?

Ah ok, die Frage ist, wie hinderlich das in der Praxis ist.
Also ich bin ein schlechter programmierer und würde den Takt einfach für 
eine flüssige Darstellung auf dem TFT nutzen, die 16BIT ADC schaden 
nicht, auch wenn nur selten benötigt

Ich würde einfach meine schlechten Programmierkenntnisse mit hohem Takt 
erschlagen;-)
Obwohl es mir widerstrebt, aber ich werde nie gut programmieren können, 
dafür habe ich zu viel andere Interessen, daher muss ich da realistisch 
bleiben.

A.B. schau doch selber mal ins Datenblatt.
Mit schnellen SPI meine ich wohl um 133MHz also zumindest das was der H7 
hat.
Danke A.B: für deine Hilfe...habe ich notiert, du kannst jetzt 
Feierabend machen:-) ohne deine Hilfe hätte ich das nie gelöst

von Itchi (Gast)


Lesenswert?

P.s. das war Itchi:-)
Bin gerade an einem anderen PC da war ich mit anderem namen angemeldet

von Chris (Gast)


Lesenswert?

Itchi schrieb:
> Gibt es Gründe außer Stromsparen und kleinere Bauform, bei Kleinserien
> oder Hobbybasteleien NICHT auf z.B. den STM32H750 zu setzen?

Nein ;)

Der übliche Arduino-Hobbybastler ist aber mit der Komplexität der H7 
aber vmtl gleich überfordert. Im Vergleich zum Arduino ist ein z.B. F4 
zwar auch noch komplexer, aber vllt noch eher überschauberer

von Lutz (Gast)


Lesenswert?

Itchi schrieb:
> P.s. das war Itchi:-)
> Bin gerade an einem anderen PC da war ich mit anderem namen angemeldet

Das hat für Gäste keinerlei Relevanz, da muß man den Namen selbst 
eintragen. Also schlechte Ausrede.

von Kevin M. (arduinolover)


Lesenswert?

Wenn du keine Ahnung von Mikrocontrollern und ihrem internen Aufbau hast 
und auch entsprechend nicht so sattelfest beim Programmieren bist lass 
die Finger vom H7. Die sind sehr komplex und es gibt viel zu beachten. 
Gerade die Speicherbereiche können tückisch sein, speziell mit DMA.

PS: du wirst keine 16 ENOBs aus dem ADC raus bekommen. Eher 12 bis 14 je 
nach Gegebenheiten.

von Itchi (Gast)


Lesenswert?

schon klar, alleine deshalb schon sind 16 Bit interessant..eben um 
stabile 12 oder mehr zu erreichen;-)

von Itchi (Gast)


Lesenswert?

@Lutz
denk mal etwas nach doer versuche, dann siehst du weshalb so etwas beim 
Wechsel mehrerer Rechne passiert..ist heir aber nicht das 
Thema..nervötetend diese Nebendiskussionen in diesem Forum

von FPGA (Gast)


Lesenswert?

Wie bereits geschrieben der 750er ist nicht die ideale wahl des H7 wegen 
dem Flash. besser den 743 oder noch besser einer der 550mhz kann (oder 
halt der h7 welcher irgendwie verfügbar ist).
Anyway grundsätzlich sehe ich den H7 als Einsteigerfreundlich. DMA etc. 
sind nicht Einsteigerfreundlich; dank der performance des H7 kann man 
für einfache projekte alles in der isr machen (und somit einfacher als 
kleine MCU).
Im cube ist die als komplex beschriebene clock einstellung schnell 
gmacht: einfach alles auf max schrauben - fertig.
Für bastelprojekte kann man ihn auch auf 600MHz übertakten, hab noch 
keine probleme gehabt.

I un D Cache aktivieren und auf DMA verzichten (oft bringt DMA ohnehin 
nicht so viel zb.: ADC DMA).

von m.n. (Gast)


Lesenswert?

FPGA schrieb im Beitrag #6839822:
> Wie bereits geschrieben der 750er ist nicht die ideale wahl des H7 wegen
> dem Flash.

Den gab es zu "normalen" Zeiten für nen Fünfer. Das war schon eine gute 
Wahl, wenn man keine geschwätzigen Programme schreibt.

> I un D Cache aktivieren und auf DMA verzichten (oft bringt DMA ohnehin
> nicht so viel zb.: ADC DMA).

Besser ist es, DMA wie benötigt zu verwenden und ggf. Speicherbereiche 
vom Cache ausschließen. Stichwort MPU.

von FPGA (Gast)


Lesenswert?

m.n. schrieb:
> Besser ist es, DMA wie benötigt zu verwenden und ggf. Speicherbereiche
> vom Cache ausschließen. Stichwort MPU.

Ja da hast du natürlich recht. Aber ist aufwand, fehleranfällig und 
kompliziert. (Habe ich selbst auch noch nie gemacht). Und obwohl DMA 
genial ist um einige kB+ an daten umherzuschieben, wird DMA im uC 
bereich oft sinnlos eingesetzt (zb ADC wert ins ram per DMA laden und 
dann interrupt - anstelle isr und den wert vom adc holen :P) DMA bringt 
hier den ultimativen performanceboost(!).

von m.n. (Gast)


Lesenswert?

Ich gebe Dir ein Beispiel, bei dem der Bildspeicher für eine TFT-Anzeige 
im internen RAM liegt. Einmal gemacht, ist es nicht mehr kompliziert.
1
// Zugriffe FMS-Bank1 als "Device"    
2
#define MPU_DEFS_RASR_SIZE_1MB          (19<<MPU_RASR_SIZE_Pos)
3
#define MPU_DEFS_RASE_AP_FULL_ACCESS    (3 << MPU_RASR_AP_Pos)   
4
  MPU->CTRL = MPU_CTRL_PRIVDEFENA_Msk | // allow privileged code to use default memory map
5
              MPU_CTRL_ENABLE_Msk;
6
  MPU->RNR = 1;                             // Region 1 verwenden
7
  MPU->RBAR = TFT_ADR & MPU_RBAR_ADDR_Msk;  // Schutz ab TFT-Adresse
8
  MPU->RASR = MPU_RASR_XN_Msk |             // ausführbarer Code gesperrt
9
              MPU_DEFS_RASR_SIZE_1MB |      // 1 MB Bildspeicher
10
              MPU_RASR_B_Msk |              // pufferbar
11
              MPU_DEFS_RASE_AP_FULL_ACCESS |  //full read/write access for privileged and unprivileged code
12
              MPU_RASR_ENABLE_Msk;          // Region freigeben

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

FPGA schrieb im Beitrag #6839822:
> I un D Cache aktivieren und auf DMA verzichten (oft bringt DMA ohnehin
> nicht so viel zb.: ADC DMA).

Die Aussage ist etwas zu absolut.
Son ADC auf 2MS/s kann mit ISRs den Kern schon gut auslasten.

von FPGA (Gast)


Lesenswert?

m.n. schrieb:
> Ich gebe Dir ein Beispiel

Danke solche bsp. sind immer goldwert und eine zusammenfassung aus 100e 
seiten doku. Sollte jemand DMA bedarf haben wird er dir sehr dankbar 
sein.

Mw E. schrieb:
> 2MS/s kann mit ISRs den Kern schon gut auslasten.

2 mega isr/s schafft der H7, aber ja die auslastung ist relativ hoch. 
Anyway verwende hier nicht den begriff unnötig hoch: wenn es nötig ist 
daten mit der Bandbreite zu aquirieren, wird es zwangsläufig auch nötig 
sein diese direkt zu bearbeiten (zb FIR oder IIR). Da meines wissens der 
H7 keine im memory map liegenden DSP funktionalitäten hat müsste dies 
ohnehin vom CPU gemacht werden. War kürzlich vor einer ähnlichen 
aufgabenstellung gesucht: ADC werte aufsumieren und summe auf schwelle 
prüfen falls ja isr.
Nun habe dann alles in der ISR gemacht.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

FPGA schrieb im Beitrag #6839948:
> Anyway verwende hier nicht den begriff unnötig hoch
okay ;)
Hast ja auchn passendes Beispiel geliefert.

Gibts eigentlich eine serielle FFT?
Also man wirft 512 Werte nacheinander rein und danach at mans Ergebnis?
Sonst wäre es eben besser (nötig?) per DMA das Array zu füllen und dann 
is mehr Rechenzeit über für die FFT Berechnung davor.

Daher klang deine Aussage davor etwas zu absolut.

von Stefan F. (Gast)


Lesenswert?

Itchi schrieb:
> Auf den ersten Blick hat er nur Vorteile,

Je mehr Funktionen der Chip hat, umso schwieriger ist der Umgang damit. 
Man muss viel mehr lesen und die Seiteneffekte der Komponenten 
aufeinander erkennen.

Das ist ein gewichtiger Grund, warum 8 Bit Controller sogar trotz 
höherem Preis immer noch beliebt sind.

von FPGA (Gast)


Lesenswert?

Mw E. schrieb:
> Gibts eigentlich eine serielle FFT?

Ok alles klar jetzt vestehe ich die Motivation hinter ADC DMA - für FFT 
machts natürlich sinn. Anyway eigentlich schade dass sie nich im memory 
map ein paar DSP funktionen hart einbinden, dann könnte mit DMA lustige 
sachen gemacht werden :P.
Oder noch besser zusätzliche logik für Out of order execution nutzen und 
IPC hochtreiben. Moderne X86 sind zb so hochgezüchtet dass dieser wert 
aktuell bei ca. 17 liegt (und dies bei 5ghz+). Wenn dies der H7 
erreichen würde dann ist die ISR nur noch wenige clk :)

Stefan ⛄ F. schrieb:
> Das ist ein gewichtiger Grund, warum 8 Bit Controller sogar trotz
> höherem Preis immer noch beliebt sind.

8 bit empfehle ich jeden absolut beginner. Ist insbesondere akademisch 
hilfreich sich mit overflows etc zu beschäftigen und anschauliche zahlen 
zu haben

Und nebs dem wenn ein 8 biter einen IPC von 10 bei 1GHZ bringen würde 
ich auch jeden STM32 über den haufen werfen.

von Andreas M. (amesser)


Lesenswert?

Mw E. schrieb:
> Gibts eigentlich eine serielle FFT?

Die TI TMS DSP haben wohl sowas. Da schiebt man die Daten rein und mit 
einigen Takten Verzögerung kommen die Ergebnisse raus. Heißt HWAFFT bei 
denen.

Ich glaube bei FPGAs macht man das üblicherweise auch mit Pipelines.

Es gibt noch MSP430 die auch FFT Beschleuniger haben, sieht aber nicht 
seriell aus: https://www.ti.com/product/MSP430FR5994

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

FPGA schrieb im Beitrag #6840136:
> Oder noch besser zusätzliche logik für Out of order execution nutzen und
> IPC hochtreiben.

Cortex-M7 hat erstmal Superskalarität eingeführt.
Vllt kommt ja out of order beim M8 ;)?

Aber auch hier gehen die Wünsche wieder auseinander, mir wäre eine MMU 
statt MPU viel wichtiger.
Endlich Speichertrennung (Prozesse statt Threads im OS) statt nur 
Speicherschutz.

Andreas M. schrieb:
> Die TI TMS DSP haben wohl sowas. Da schiebt man die Daten rein und mit
> einigen Takten Verzögerung kommen die Ergebnisse raus. Heißt HWAFFT bei
> denen.

Interessant, das ist aber eine HW Erweiterung?
Bei den Cortex-M gibts zwar DSP Erweiuterungen, aber das sind "nur" 
speziellere Befehle wie MADD.

von Hans-Georg L. (h-g-l)


Lesenswert?

FPGA schrieb im Beitrag #6839948:
> Mw E. schrieb:
>> 2MS/s kann mit ISRs den Kern schon gut auslasten.
>
> 2 mega isr/s schafft der H7, aber ja die auslastung ist relativ hoch.
> Anyway verwende hier nicht den begriff unnötig hoch: wenn es nötig ist
> daten mit der Bandbreite zu aquirieren, wird es zwangsläufig auch nötig
> sein diese direkt zu bearbeiten (zb FIR oder IIR). Da meines wissens der
> H7 keine im memory map liegenden DSP funktionalitäten hat müsste dies
> ohnehin vom CPU gemacht werden. War kürzlich vor einer ähnlichen
> aufgabenstellung gesucht: ADC werte aufsumieren und summe auf schwelle
> prüfen falls ja isr.
> Nun habe dann alles in der ISR gemacht.

Ich kenne jetzt den H750 nicht, habe aber schon mit dem H743Zi Nucleo 
Board gespielt und der hat einen Digital filter for sigma delta 
modulators (DFSDM).
Auf den kann man die internen ADCs (parallel)routen, über einen 
Integrator summieren und auf Schwellwerte prüfen. Alles in Hardware. 
Habe es allerdings noch nicht  ausprobiert. Hat auch 2Mb Flash und 1Mb 
Ram.

von EAF (Gast)


Lesenswert?

Wenn jetzt wirklich Audio Verarbeitung, FFT, DMA als Hardwarekomponenten 
auf dem Chip gefragt sind, dann würde doch der Kendryte K210 ins Fenster 
passen, auch was Preis und Leistung betrifft.
Dualcore 64Bit 600MHz(?)

Hier eine Übersicht:
Sorry, Datenblatt kann ich nicht verlinken da...
> Der Beitrag scheint Spam zu enthalten: "cn"
Natürlich darf ein Datenblatt eines CN Chips auch auf einem CN Server 
liegen.
Tipp: Nicht alles aus China ist gleich Spam.
(Diskriminierung in Reinform, das ist.)

von Bauform B. (bauformb)


Lesenswert?

FPGA schrieb im Beitrag #6839948:
> War kürzlich vor einer ähnlichen aufgabenstellung gesucht:
> ADC werte aufsumieren und summe auf schwelle prüfen falls ja isr.

Manche STM32 (z.B. STM32L412) können in Hardware aufsummieren 
(2,4,8...256 Werte), die Summe mit einer Schwelle vergleichen und ggf. 
einen Interrupt auslösen. Das geht mit 2 bis 3 verschiedenen 
Schwellwerten und mehreren Kanälen. Nennt sich Oversampling und ADC 
Watchdog.

von FPGA (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> DFSDM

Ja das mit dem DFSDM habe ich damals auch gefunden gehabt. Hat aber 
irgendwie auf anhieb nicht funktioniert.

Mw E. schrieb:
> Cortex-M7 hat erstmal Superskalarität eingeführt.
> Vllt kommt ja out of order beim M8 ;)?

Ja hoffentlich, naja der preis für ST ist leider hoch (benötigts sehr 
viel logik und macht den chip entsprechend grösser). Speculative 
execution etc. gehört beim M8 offentlich auch gleich dazu.
Naja Clk +IPC zu pushen ist mir wesentlich wichtiger als mehr cores 
welche ohnehin nicht sinnvoll genutzt werden können. Also single core 
IPS ist die wichtige kenngrösse.

von Andreas M. (amesser)


Lesenswert?

Mw E. schrieb:
> Interessant, das ist aber eine HW Erweiterung?

Ja das ist ein Hardwarebeschleuniger der direkt an die CPU angekoppelt 
ist. Gibt sogar spezifische CPU Befehle dafür. Eine 1024 Punkte, Complex 
FFT benötigt da 7315 Takte lt. TI. (Typ 60-150Mhz)

Bei den neuen DSPs haben sie es aber wieder rausgebaut. Braucht 
vermutlich zu viel Fläche und ist dabei unflexibel. Die neueren DSPs 
können dafür einige Instruktionen die (u.a.) bei FFT hilfreich sind.

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.