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?
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.
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.
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.
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
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
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.
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.
@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
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).
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.
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(!).
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.
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.
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.
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.
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.
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
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.
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.
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.)
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.
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.
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.