Ich arbeite im Moment mit einem Atmega328, der aufgrund diverser, nicht
umgehbarer floating point Operationen an seine Grenzen stößt und die
Berechnungen für die Einstellung eines Messinstruments zu lange dauern.
Der wird außerdem nur mit 8MHz betrieben.
Ich würde daher gerne langfristig mal auf eine 32 bit Architektur
umsteigen. Diese soll nach möglichkeit mit deutlich mehr als 8MHz
betrieben werden. Dann wäre es auch nicht so tragisch wenn keine FPU
vorhanden ist.
Kann mir jemand vielleicht MCUs empfehlen, die von der Peripherie her
das gleiche wie der Atmega328 haben (oder mehr) und sich ähnlich einfach
handhaben lassen?
Wegen ein paar Floatingpoint Rechnugen fuer eine Anzeige ? Wieviel
Updates pro Sekunde benoetigst du ? Mehr als 3 pro Sekunde sind sowieso
zu nervoes fuer den Benutzer.
Bleib beim ATMega. Allenfalls nicht blockierend programmieren, dann
wird's auch schneller.
Flachtroll schrieb:> Wegen ein paar Floatingpoint Rechnugen fuer eine Anzeige ? Wieviel> Updates pro Sekunde benoetigst du ? Mehr als 3 pro Sekunde sind sowieso> zu nervoes fuer den Benutzer.
Es geht nicht um anzeigen, sondern um Werte einzustellen für eine
Messrampe. Das muss deutlich öfter als 3 mal in der Sekunde passieren.
Eine unendlich oft gestellte Frage hier.
Die C/C++ Programmierung sieht erstmal gleich aus, die Peripherie und
Core Features machen den Unterschied. Low Level Registerprogrammierung
wie bei den AVR geht auch, nur sind die devices viel komplexer und man
muss meist mehr einstellen. Dafür gibt es dann viel fertige
Unterstützung vom Hersteller oder Drittherstellern.
ESP32 + Arduino und fertig. Was Arduino an Rechenleistung verschenkt
bringt der ESP dafür umso reichlicher mit.
STMs sind wie das meiste Zeug aktuell Unobtainium, ESP32 gibts als
NodeMCU zurzeit problemlos und günstig ($5,20/Stck. und weniger).
Conrad J. schrieb:> Es geht nicht um anzeigen, sondern um Werte einzustellen für eine> Messrampe. Das muss deutlich öfter als 3 mal in der Sekunde passieren.
Kann schon sein, aber auch das schafft ein AVR ziemlich zügig. Die
größte Begrenzung sitzt meistens vor der Tastatur.
Warum nur 8 MHz? 3,3V Betrieb? Die neueren ATXmega können bei 3,3V bis
32MHz, da ist schonmal Faktor 4 kostenlos erreicht.
Und last but not least gibt es Festkommaarithmetik, die in vielen
Fällen ausreichend und schneller ist.
Conrad J. schrieb:> Ich arbeite im Moment mit einem Atmega328, der aufgrund diverser,> nicht umgehbarer floating point Operationen an seine Grenzen stößt
Das "nicht umgehbar" zweifle ich mal stark an. Floating point scheint
zwar auf den ersten Blick das Schweizer Taschenmesser zu sein. Aber bei
vielen Ausgabenstellungen reicht auch Integer. Notfalls lang (bis 64 Bit
kann der gcc) und/oder als Fixpoint-Arithmetik. Und wenn es um Rampen
geht, die kann man auch vorberechnen.
> Der wird außerdem nur mit 8MHz betrieben.
Er könnte aber mit 16MHz betrieben werden und wäre dann doppelt so
schnell. Was spricht dagegen?
> Ich würde daher gerne langfristig mal auf eine 32 bit Architektur> umsteigen. Diese soll nach möglichkeit mit deutlich mehr als 8MHz> betrieben werden. Dann wäre es auch nicht so tragisch wenn keine FPU> vorhanden ist.
32 Bit µC sind eine ganz andere Liga. Aber auch die werden entsprechend
langsamer, wenn du sie mit Taktfrequenzen weit unter ihren Möglichkeiten
betreibst. Und eine floating point Lib ist auch da langsamer als die
FPU.
> Kann mir jemand vielleicht MCUs empfehlen, die von der Peripherie her> das gleiche wie der Atmega328 haben (oder mehr) und sich ähnlich einfach> handhaben lassen?
Gibts nicht. Etwas umlernen mußt du schon. Und im Moment wäre das
wichtigste Kriterium wohl ohnehin Verfügbarkeit. Es sei denn, dein
"langfristig" von oben meint mehrere Jahre.
Nimm einen Arm-M4 oder. Die haben FPU.
Ich mußte auch mal Luftfeuchteberechnungen machen. Das war zwingend
notwendig in Floating Point. Und auf dem M0 (ohne FPU) brauchte es doch
Rechenzeit, die dann für was anderes fehlte.
Aktuell habe ich eine STM H7. Ist aber sehr in der oberen Liga. Dafür
angenehm zu benutzen und sehr viel Leistung.
Wenn 3,3V OK sind würde ich mir mal den RP2040 anschauen, den kann man
wenigstens kaufen.
Mein aktueller Favorit ist der STM32F303, davon habe ich auch genug
vorrätig. Aber die gebe ich nicht her.
PittyJ schrieb:> Nimm einen Arm-M4 oder. Die haben FPU.> Ich mußte auch mal Luftfeuchteberechnungen machen. Das war zwingend> notwendig in Floating Point.
Wieviel Millionen Berechnungen pro Sekunde waren da nötig, daß man dazu
UNBEDINGT ne FPU braucht?
> Und auf dem M0 (ohne FPU) brauchte es doch> Rechenzeit, die dann für was anderes fehlte.
Glaub ich nicht.
> Aktuell habe ich eine STM H7. Ist aber sehr in der oberen Liga. Dafür> angenehm zu benutzen und sehr viel Leistung.
Für die faulen und unfähigen Programmierer. Nicht immer, aber oft.
Falk B. schrieb:> Wieviel Millionen Berechnungen pro Sekunde waren da nötig, daß man dazu> UNBEDINGT ne FPU braucht?
Das hab ich mich auch gefragt... hier mal mit Nano auf 16Mhz
Für 1 berechnungen hat:
calc int = 13 berechnet in 4 microSekunde.
calc long = 13 berechnet in 4 microSekunde.
calc float = 13.00 berechnet in 12 microSekunde.
---------
Für 10 berechnungen hat:
calc int = 40 berechnet in 4 microSekunde.
calc long = 40 berechnet in 8 microSekunde.
calc float = 40.00 berechnet in 96 microSekunde.
---------
Für 100 berechnungen hat:
calc int = 310 berechnet in 4 microSekunde.
calc long = 310 berechnet in 4 microSekunde.
calc float = 310.00 berechnet in 1064 microSekunde.
---------
Für 1000 berechnungen hat:
calc int = 3010 berechnet in 4 microSekunde.
calc long = 3010 berechnet in 8 microSekunde.
calc float = 3010.00 berechnet in 9020 microSekunde.
---------
Für 10000 berechnungen hat:
calc int = 30010 berechnet in 4 microSekunde.
calc long = 30010 berechnet in 4 microSekunde.
calc float = 30010.00 berechnet in 97404 microSekunde.
selbst bei 1000 Berechnungen brauch er nur 1ms.
Falk B. schrieb:> PittyJ schrieb:>> Nimm einen Arm-M4 oder. Die haben FPU.>> Ich mußte auch mal Luftfeuchteberechnungen machen. Das war zwingend>> notwendig in Floating Point.>> Wieviel Millionen Berechnungen pro Sekunde waren da nötig, daß man dazu> UNBEDINGT ne FPU braucht?
Das war eine komplexere Berechnung. Die hatte der Sensorhersteller mit
beigelegt. Mit Kompensation zu Temperatur, Druck, Luftfeuchtigkeit und
anschliessender Taupunkt Berechnung.
Das frickel nicht selber auf Ints um. Wenn sich in der Maschine
plötzlich Kondenswasser bildet, will ich nicht Schuld sein. Da nehme ich
dann lieber die Originalformeln.
Ausserdem mußten gleichzeitig noch diverse andere Dinge stattfinden. An
der CPU sind noch ca 12 weitere Sensoren und 3 Kommunikationskanäle.
Manche Leute machen mehr, als nur einen Sensor an ihren AVR
dranzufädeln.
Da nehme ich einen Prozessor mit FPU, und habe meine Ruhe.
PittyJ schrieb:>> Wieviel Millionen Berechnungen pro Sekunde waren da nötig, daß man dazu>> UNBEDINGT ne FPU braucht?>> Das war eine komplexere Berechnung. Die hatte der Sensorhersteller mit> beigelegt. Mit Kompensation zu Temperatur, Druck, Luftfeuchtigkeit und> anschliessender Taupunkt Berechnung.>> Das frickel nicht selber auf Ints um.
Ich glaube nicht, das es keine reputable floatin point emulation/library
für den avr gibt.
Und so ein taupunkt schlägt nicht alle milisekunden um, da ist schon
eine Berechnung pro Sekunde mehr als genug. Die NASA hat schliesslich
mit Transistorcomputern auch den Mond getroffen.
PittyJ schrieb:> Das war eine komplexere Berechnung. Die hatte der Sensorhersteller mit> beigelegt. Mit Kompensation zu Temperatur, Druck, Luftfeuchtigkeit und> anschliessender Taupunkt Berechnung.>> Das frickel nicht selber auf Ints um. Wenn sich in der Maschine> plötzlich Kondenswasser bildet, will ich nicht Schuld sein. Da nehme ich> dann lieber die Originalformeln.
Vollkommen OK.
> Ausserdem mußten gleichzeitig noch diverse andere Dinge stattfinden. An> der CPU sind noch ca 12 weitere Sensoren und 3 Kommunikationskanäle.
Auch OK. Aber ehe eine 32 BIT CPU, auch wenn es nur ein AMR-M0 ist, in
die Knie geht, muss schon einiges passieren. Meistens ist es das
schlechte Konzept.
> Manche Leute machen mehr, als nur einen Sensor an ihren AVR> dranzufädeln.> Da nehme ich einen Prozessor mit FPU, und habe meine Ruhe.
Ja, so machen es leider sehr viele, auch Profis. Keinen Plan, keinen
Bock, einfach fette Hardware und Ruhe. Kann man machen, muss man aber
nicht gut finden.
Lass mich raten. Du hast nicht gemessen und analysiert, WO und WARUM
viel CPU-Leistung gebraucht wird.
Conrad J. schrieb:> Es geht nicht um anzeigen, sondern um Werte einzustellen für eine> Messrampe.
Für eine Rampe muß man nicht sämtliche Berechnungen bei jedem
Einzelschritt vom Urschleim her neu machen. Es reicht, wenn man
konstante Operationen aus der Schleife herauszieht und nur das
berechnet, was wirklich neu ist.
> Und auf dem M0 (ohne FPU) brauchte es doch> Rechenzeit, die dann für was anderes fehlte.> Wenn 3,3V OK sind würde ich mir mal den RP2040 anschauen, den kann man> wenigstens kaufen.
Das ist ein stinkender M0!
Es sind sogar zwei stinkende M0!
> Mein aktueller Favorit ist der STM32F303, davon habe ich auch genug> vorrätig. Aber die gebe ich nicht her.
Das hebt nicht mal Rosemarie Nitribit an.
Auch dem fehlt die FPU.
... schrieb:> Das ist ein stinkender M0!
Na und? Wenn er vorher mit 8 MHz klar kam sind 133 MHz ein großer
Sprung, auch wenn so ein ARM für gleiche Aufgaben ein paar mehr Takte
braucht, als AVR. Außerdem hat der TO geschrieben, dass er keine FPU
braucht.
Conrad J. schrieb:> Kann mir jemand vielleicht MCUs empfehlen,
Also meine wahl ist der PSOC5lp weil :
* 32 bit / 256MBit
* Eingebauter 1x Hohe genauigkeits- deltasigma ADC
* Eingebauter 2x SAR ADC
* Eingebauter 4xDAC mit Strom/Spannung-ausgang
* Eingebauter DC/DC converter speisung ab 0.8V
* Speisung bis 5V
* Pro port unterschiedliche Vcc moeglich
* Viele hardware moeglichkeiten eingebaut (Opamps, 4xDAC
Strom/Spannung...)
* ... Die unabhangig von controller selber funktionieren koennnen
* Flexibele clock-speed moeglichkeiten >> Low power vs High speed
* Viele libraries angeboten durch Hersteller
* Devboards $10 incl programmer
Also viel eingebaute peripherals, nicht viel externe Komponenten
benoetigt
Nur... was heute oft das problem ist ob die chips jetzt verfuegbar sind
(bei viele Hersteller)
Patrick aus die Niederlaende
Patrick C. schrieb:> Also meine wahl ist der PSOC5lp weil :
... eierlegende Wollmilchsau ....
Ist oft nicht das Mittel der Wahl, weil man das Meiste in einem Projekt
gar nicht braucht. Als Experimentierplattform natürlich sehr angenehm.
Falk B. schrieb:> Lass mich raten. Du hast nicht gemessen und analysiert, WO und WARUM> viel CPU-Leistung gebraucht wird.
Nö wozu auch. Geplant sind 1000 Einheiten. Kostet eine CPU 5 Euro mehr,
weil sie genug Leistung hat, ich aber 2 Monate Entwicklung einspare,
dann hat die Firma mehr verdient als durch eine Spar-CPU.
Und da nehme ich die CPU, die ich schon kenne, selbst wenn die 50
Prozent überdimensioniert ist. Da kenne ich alle Probleme, die
Arbeitsumgebung ist eingerichtet, die API vertraut.
Da analysiere ich keinen Monat, ob ich evtl 1/3 Flash weniger brauche,
und nehme dann was unbekanntes mit alles Risiken.
Falk B. schrieb:> Ist oft nicht das Mittel der Wahl, weil man das Meiste in einem Projekt> gar nicht braucht.
Fuer die art der Projekten die ich mache ist er ja super. Ich design auf
maximaler version, wenn design fertig kann ich noch wenn noetig
preisweter machen mittels pin-compatible version der weniger resourcen
hat.
Jetzt musz ich sagen das bei meine Projekten die stuckzahl wenig ist und
die Kosten 90% gemacht werden waerend entwicklung, nicht warende die
Produktion.
Dann ist ein Flexibeler Processor mit viel resources prima.
Patrick aus die Niederlaende
Patrick C. schrieb:> Also meine wahl ist der PSOC5lp weil :> * 32 bit / 256MBit> * Eingebauter 1x Hohe genauigkeits- deltasigma ADC> * Eingebauter 2x SAR ADC> * Eingebauter 4xDAC mit Strom/Spannung-ausgang> * Eingebauter DC/DC converter speisung ab 0.8V> * Speisung bis 5V> * Pro port unterschiedliche Vcc moeglich> * Viele hardware moeglichkeiten eingebaut (Opamps, 4xDAC> Strom/Spannung...)
Sigma-Delta und interner DC/DC. Dachte immer, sowas schließt sich von
selbst aus. Ansonsten is das schon ganz schön krass, wass der an Bord
hat.
PittyJ schrieb:>> Lass mich raten. Du hast nicht gemessen und analysiert, WO und WARUM>> viel CPU-Leistung gebraucht wird.>> Nö wozu auch. Geplant sind 1000 Einheiten. Kostet eine CPU 5 Euro mehr,> weil sie genug Leistung hat, ich aber 2 Monate Entwicklung einspare,> dann hat die Firma mehr verdient als durch eine Spar-CPU.
Das war gar nicht das Thema. Sondern deine Aussage
Beitrag "Re: 32 Bit MCU gesucht"
"Nimm einen Arm-M4 oder. Die haben FPU.
Ich mußte auch mal Luftfeuchteberechnungen machen. Das war zwingend
notwendig in Floating Point. Und auf dem M0 (ohne FPU) brauchte es doch
Rechenzeit, die dann für was anderes fehlte."
Mein Einwand war und ist
"Wieviel Millionen Berechnungen pro Sekunde waren da nötig, daß man dazu
UNBEDINGT ne FPU braucht?"
> Und da nehme ich die CPU, die ich schon kenne, selbst wenn die 50> Prozent überdimensioniert ist. Da kenne ich alle Probleme, die> Arbeitsumgebung ist eingerichtet, die API vertraut.
Du lenkst vom Thema ab. Es ging nie darum, eine andere CPU-Architektur
zu nutzen.
> Da analysiere ich keinen Monat, ob ich evtl 1/3 Flash weniger brauche,> und nehme dann was unbekanntes mit alles Risiken.
Auch darum ging es nicht. Sondern um deine gewagte Aussage, daß für eine
Luftfeuchteberechung eine FPU nötig ist. Und meine Frage, ob du jemals
gemessen oder analysiert hast, wo wieviel Leistung verbraten wird, da ja
nach deiner Aussage die Berechnung per Software Fließkomma zu langsam
war.
Falk B. schrieb:> Auch darum ging es nicht. Sondern um deine gewagte Aussage, daß für eine> Luftfeuchteberechung eine FPU nötig ist. Und meine Frage, ob du jemals> gemessen oder analysiert hast, wo wieviel Leistung verbraten wird, da ja> nach deiner Aussage die Berechnung per Software Fließkomma zu langsam> war.
Wie schon gesagt, auf der CPU war auch schon sonst viel zu tun. Und da
brauche ich es nicht, dass sie in der FPU-Emulation herumhängt.
Für eine 2 Berechnung (Farbkorrektor HLS) habe ich Teile schon in einen
Low Prio Thread verpackt, damit die Kommunikation besser reagieren
konnte. Damit steigt aber die Komplexität und Fehleranfälligkeit.
Das war eine M0 ohne FPU.
Da freut man sich über eine STM M7 mit FPU. Das ist entspannter.
PittyJ schrieb:> Da freut man sich über eine STM M7 mit FPU. Das ist entspannter.
Man wählt keinen komplexen H7 von ST um Entwicklungszeit zu sparen. Das
ist ziemlich absurd. Wenn es ein Cortex M4 ohne komplexes Caching wäre,
hätte ich das abgekauft.
PittyJ schrieb:> Wie schon gesagt, auf der CPU war auch schon sonst viel zu tun. Und da> brauche ich es nicht, dass sie in der FPU-Emulation herumhängt.
Du kannst deine Aussage nicht begründen. Punkt.
> Für eine 2 Berechnung (Farbkorrektor HLS) habe ich Teile schon in einen> Low Prio Thread verpackt, damit die Kommunikation besser reagieren> konnte. Damit steigt aber die Komplexität und Fehleranfälligkeit.> Das war eine M0 ohne FPU.> Da freut man sich über eine STM M7 mit FPU. Das ist entspannter.
Das kann jeder Depp.
Falk B. schrieb:> PittyJ schrieb:>> Wie schon gesagt, auf der CPU war auch schon sonst viel zu tun. Und da>> brauche ich es nicht, dass sie in der FPU-Emulation herumhängt.>> Du kannst deine Aussage nicht begründen. Punkt.
Warum auch.
Mein Chef ist zufrieden.
Die Firma macht gut Gewinn.
Mein Haus ist abbezahlt.
Die Geräte laufen 24/7 ohne Probleme, keine Ausfälle.
Was will ich mehr?
Nur mir noch beweisen dass es auch mit einem Atmel328 gehen würde? Da
habe ich besseres zu tun.
PittyJ schrieb:>> Du kannst deine Aussage nicht begründen. Punkt.>> Warum auch.
Also mal wieder nur substanzloses Geplapper. Moderne Märchen erzählen,
aka urban legend. Spiel, Satz, Sieg.
Falk B. schrieb:> PittyJ schrieb:>>> Du kannst deine Aussage nicht begründen. Punkt.>>>> Warum auch.>> Also mal wieder nur substanzloses Geplapper. Moderne Märchen erzählen,> aka urban legend. Spiel, Satz, Sieg.
Mit solchen Kindereien bist du für mich der größte Looser auf dem Platz.
Kein Fachwissen der Welt kann soviel Arroganz und Großkotzigkeit
aufwiegen.
J. S. schrieb:>> Also mal wieder nur substanzloses Geplapper. Moderne Märchen erzählen,>> aka urban legend. Spiel, Satz, Sieg.>> Mit solchen Kindereien bist du für mich der größte Looser auf dem Platz.> Kein Fachwissen der Welt kann soviel Arroganz und Großkotzigkeit> aufwiegen.
Ein hohes Niveau sieht nur von unten wie Arroganz aus. ;-)
Im Ernst. Wenn einer eine Behauptung aufstellt, muss er sie auch
sinnvoll begründen können. Erst recht bei "gewagten" Behauptungen.
"Extraordinary claims require extraordinary proof."
wie die Angelsachsen so schön sagen. Haltlose Behauptungen gibt es im
Internet schon genug.
es geht doch gar nicht darum ob jemand (der sich mit H7 herumschlägt)
nicht auch einen Mega328 programmieren könnte. Der TO wollte mehr Power
und die AVR haben ihr Limit, auch wenn es nicht ein paar float
Berechnungen sind. Nur muss man sich in die 32 Bit Welt auch
einarbeiten, und wenn ein Cortex-M da überdimensioniert erscheint, dann
ist das trotzdem ist eine gute Übung zum Einstieg.
Ich mag diese Kleingeistigkeit nicht. Für 3D Drucker haben die 8 Bitter
die Entwicklung nur blockiert. Als man Marlin noch für jede Einstellung
neu kompilieren musste, konnte Smoothieware auf dem 32 Bit LPC1769 schon
lange SD Karten einlesen und darüber konfiguriert werden. Und per
Ethernet gefüttert werden. Mal so als Beispiel.
In jede Controller Architektur muss man sich erstmal einarbeiten und ist
wieder blutiger Anfänger. Bei den CM reicht das aber für lange lange
Zeit bis man DMA, Ethernet, USB, schnelle Displays usw. ausgereizt hat.
Da sind 8 Bitter schon lange abgehängt.
Aktuell habe ich eine Kiste mit 17x H7 vor mir. Ich kann den Kollegen ja
mal sagen das sie nicht programmieren können und das gefälligst mit
Mega328 bauen sollen.
Falk B. schrieb:> Ja, so machen es leider sehr viele, auch Profis. Keinen Plan, keinen> Bock, einfach fette Hardware und Ruhe. Kann man machen, muss man aber> nicht gut finden.
Profis können rechnen 5€ mehr für die CPU oder 50 Stunden frickeln. Wie
viele Stück muss man kaufen, dass sich das Frickeln lohnt:
Profi = 200€/h*50h/5€/Stück = 2000 Stück
Falk B. = 0€/h*50h/5€/Stück = 0 Stück
Karl schrieb:>> Ja, so machen es leider sehr viele, auch Profis. Keinen Plan, keinen>> Bock, einfach fette Hardware und Ruhe. Kann man machen, muss man aber>> nicht gut finden.>> Profis können rechnen 5€ mehr für die CPU oder 50 Stunden frickeln. Wie> viele Stück muss man kaufen, dass sich das Frickeln lohnt:
Jaja, das Gelaber. Mein Gott. Geh mal davon aus, daß ich weiß, was eine
Aufwandsabschätzung und Gewinnschwelle ist.
https://de.wikipedia.org/wiki/Gewinnschwelle
Und geh mal davon aus, daß auch ich weiß, daß bei Einzelstücken oder
kleinen Stückzahlen die Entwicklungskosten die Materialkosten um
Größenordnungen übersteigen. Ich mache Entwicklung, jeden Tag. Das war
aber gar nicht das Thema der Diskussion.
Aber auch für dich "Blitzmerker" nochmal langsam. Der Op meint, seine
Berechnungen sind zu langsam und er hätte gern mehr CPU Power. Der Op
ist ein Bastler, Gewinnschwelle und Kosten sind bedeutungslos.
PittyJ stellt eine Behauptung auf, die er keine Sekunde belegen kann.
Nix als Ausreden und Ablenkung. So wie bei dir. Auch nix Neues, wenn
Leute keine Argumente mehr haben.
Moin, -
Conrad J. schrieb:> Ich arbeite im Moment mit einem Atmega328, der aufgrund diverser, nicht> umgehbarer floating point Operationen an seine Grenzen stößt und die> Berechnungen für die Einstellung eines Messinstruments zu lange dauern.> Der wird außerdem nur mit 8MHz betrieben.
Das haben ja alle schon gesagt: Man kann auch mit der Frequenz nach oben
gehen, aber vielleicht Faktor 3.
> Ich würde daher gerne langfristig mal auf eine 32 bit Architektur> umsteigen. Diese soll nach möglichkeit mit deutlich mehr als 8MHz> betrieben werden. Dann wäre es auch nicht so tragisch wenn keine FPU> vorhanden ist.>> Kann mir jemand vielleicht MCUs empfehlen, die von der Peripherie her> das gleiche wie der Atmega328 haben (oder mehr) und sich ähnlich einfach> handhaben lassen?
Natuerlich ist ein STM32 schon ein ganz anderes Biest, mehr omphf!, mehr
Moeglichkeiten. Ob Du diese Moeglichkeiten brauchst kannst nur Du
entscheiden.
1) STM32 et al. haben 3.3V Technologie, d.h es kann sein, dass Du Deine
Peripherie anpassen musst,
2) STM32 et al. haben die Moeglichkeit des InCircuit Debuggings, d.h. Du
kannst in Deinem Code einen Breakpont setzen und Register/Variablen
anzeigen. Das ist DIE Erfindung/Verbessung schlecht hin. Selbst wenn Du
einen neuen orginalen ST/Link kaufst, die Lebenszeit die Du mit diese
Debugging-Moeglichkeit gewinnst ist unglaublich.
Gruesse
Th.
Thomas W. schrieb:> 1) STM32 et al. haben 3.3V Technologie, d.h es kann sein, dass Du Deine> Peripherie anpassen musst,
wobei die meisten Eingänge 5V tolerant sind. Und wenn die Bastler bei
3,3 V angekommen sind (was die meiste Peripherie heute schon erwartet
und nur in Arduino Shields hin- und her gewandelt wird), ist die Welt
schon bei 2,5 oder 1,8 V.
Thomas W. schrieb:> die Lebenszeit die Du mit diese> Debugging-Moeglichkeit gewinnst ist unglaublich.
full ack, aber auch hier verteidigen die Frickler ihr Serial.print()
debugging vehemment.
Moin, -
ich wollte nur darauf hinweisen, dass der STM32 eine 3v3-Maschine ist.
Ob das ein Unterschied macht weiss nur der TO.
Beim Debugging: ca. 1990 war das Debugging beim PC ungefaehr wie beim
Arduino, bei TurboPascal halt mit PrintLN(). Fuer normales Geld hatte
man nix anderes.
Als ich (ca. 1993) eine VAX (mit VMS) gesehen hatte (mit dem VAX
Debugger) dachte ich: Das ist das Endziel: Sprachen-unabhaengig,
Source-code beim Debug zu sehen (step-In, Step-out, Breakpoints),
automatisieren von Ablaeufen. Ich war komplett begeistert.
OK, 2022: Eclipse mit Debugger ist ungefaehr das. Ein ST-Link-Clone
kostet keine 5EUR und spart richtig Lebenszeit. Ich will das nicht mehr
missen.
Gruesse
Th.
P.S.: Komplett bloed, aber ein Song ueber den besten Debugger (in 1993):
https://catonmat.net/ftp/mark_wheadon-just_one_more_hack.mp3
Ein paar Warme Worte:
https://catonmat.net/musical-geek-friday-just-one-more-hack
Schon lange her
Ich werfe mal einen neuen Kandidaten ins Feuer - ATSAMC20.
Ja, Chipkrise und so, aber Digikey hat erstaunlicherweise gerade
ATSAMC21E18A-AUT ab Lager:
https://www.digikey.de/de/products/detail/microchip-technology/ATSAMC21E18A-AUT/5875967
Das ist ein Cortex M0+, 48MHz, läuft 2,7V bis 5V, Peripherie bis unters
Dach, auf funktionale Sicherheit ausgelegt und der kleinste "E" ist im
gleichen Gehäuse wie der Mega328.
Und theorethisch gibt es in der Familie zig Varianten, so 48, 64, 100
Pins, weniger Speicher.
Der Unterschied zwischen ATSAMC20 und ATSAMC21 ist, der C21 hat CAN-FD,
beim 32er Pin 1 Kanal, ab 64 Pins zwei Kanäle.
Dabei fällt mir das hier ein:
https://github.com/RudolphRiedel/SAMC21_one/blob/master/04_Hardware/SAMC21_one/SAMC21_one.PDF
Das liegt hier noch, aber inzwischen benutze ich hauptsächlich die "J"
Version mit 64 Pins und 2 CAN-Kanälen.
Oder den dickeren ATSAME51J (der nicht zu bekommen ist), der ist bis auf
einen Pin kompatibel zum C21J und ist ein Cortex M4F mit noch mehr
Peripherie.
Ich bin da ran, weil ich vor ein paar Jahren die Notwendigkeit gesehen
habe im Job CAN-FD unterstützen zu müssen.
Und eine Alternative zu denen ist mir immer noch nicht in die Finger
gekommen.
Axel S. schrieb:>> Der wird außerdem nur mit 8MHz betrieben.>> Er könnte aber mit 16MHz betrieben werden und wäre dann doppelt so> schnell. Was spricht dagegen?
nein, sogar mit 20 Mhz
>2) STM32 et al. haben die Moeglichkeit des InCircuit Debuggings, d.h. Du>kannst in Deinem Code einen Breakpont setzen und Register/Variablen>anzeigen. Das ist DIE Erfindung/Verbessung schlecht hin. Selbst wenn Du>einen neuen orginalen ST/Link kaufst, die Lebenszeit die Du mit diese>Debugging-Moeglichkeit gewinnst ist unglaublich.
Das haben die AVRs allerdings auch. Nur brauchst du dort keinen ST-Link
sondern einen Atmel-ICE o.ä.
PittyJ schrieb:> ich aber 2 Monate Entwicklung einspare,> dann hat die Firma mehr verdient als durch eine Spar-CPU.
Oder Du wunderst Dich, warum die Super-Duper CPU genau so langsam ist,
weil Du den Flaschenhals nicht beseitigt hast.
Ein Profiling, wo es klemmt, kostet keine 2 Monate.
Oftmals erreicht man durch simples Umstellen des Programmablaufs mehr
Optimierung, als durch stupide Erhöhung der CPU-Frequenz und damit des
Stromverbrauchs.
Wie lange braucht eigentlich ein 32Bitter mit 200MHz für delay_1ms()
gegenüber einem 8Bitter an 8MHz?
Ohne Profiling ist der Griff zu einer schnelleren CPU komplett sinnlos.
Christoph M. schrieb:> Thomas W. schrieb:>> 2) STM32 et al. haben die Moeglichkeit des InCircuit Debuggings, d.h. Du>> kannst in Deinem Code einen Breakpont setzen und Register/Variablen>> anzeigen. Das ist DIE Erfindung/Verbessung schlecht hin. Selbst wenn Du>> einen neuen orginalen ST/Link kaufst, die Lebenszeit die Du mit diese>> Debugging-Moeglichkeit gewinnst ist unglaublich.> Das haben die AVRs allerdings auch.
Moin,
jein...
Natürlich gibt es beim AVR auch InCircuit Debugging. Die Arm CoreSight
Unit der Cortex-M bietet aber deutlich mehr Debugging Features und
manche können ohne Einfluss auf die Ausführungsgeschwindigkeit der
Applikation genutzt werden (z.B. Data Breakpoints).
Gruß,
Michael
GigaDevice GD32VF. Ist auch sanktionssicher, und verfügbar.
Video zum Einstieg unter https://www.youtube.com/watch?v=XZvkdkvxgSs.
Bei Fragen kannst du mich auch anschreiben (PN hier im Forum).
Rudolph R. schrieb:> Ich werfe mal einen neuen Kandidaten ins Feuer - ATSAMC20.
Dem kann ich nur zustimmen.
Bei mir verlief der Umstieg vom ATmega32m1 auf den ATSAMC20, aufgrund
des selben Herstellers, der selben Tool, ähnlicher Datenblätter etc.,
recht gut.
Ingo Less schrieb:> Sigma-Delta und interner DC/DC. Dachte immer, sowas schließt sich von> selbst aus.
Man braucht es nicht beiden zu nutzen, in mein Projekt benutze ich DCDC
um spannung flexibel anzubieten (wegen stromverbrauch). Auch
processorclock wird zwischen 3MHz und 48MHz hin und her gesetzt. Da
alles integriert ist kan man 'einfach' der delta-sigma synchronisieren
mit frequenz von DC/DC oder sogar DC/DC ausschalten waehrend der messung
und danach wieder einschalten.