Ich hatte mal im Internet gelesen (ohne Quellenangabe) dass der STM32F103 recht alt sei und ST bei dem "noch geübt hat" bei der Peripherie, und das bei neueren CPUs so einige Unschönheiten besser gelöst wären. Ich hatte mir letzens den F411 angesehen (weil der auf dem Blackpill Board drauf ist), und hatte das gefühl dass Timer, SPI und I2C von der Benutzung der Register im wesentlichen auf das gleiche raus laufen. Ist die o.g. Aussage Bullshit? Oder bezieht die sich auf versteckte Fehler in der Peripherie und nicht auf das Setup? Oder sind vielleicht noch neuere Prozessoren gemeint? Andere Frage: Gibt es einen STM32 Chip dessen SPI 32 Bit in einem rutsch über den SPI Bus schicken kann? Jetzt ohne Methoden wie DMA etc..
:
Bearbeitet durch User
Georg S. schrieb: > Ist die o.g. Aussage Bullshit? Nö ST entwickelt nichts selber, können die gar nicht, und deren BWLer wollen dafür auch kein Geld ausgeben. Die kaufen ein. Fertige Cores, fertige Peripherieeinheiten, sogenannte intellectual property, IP's Und zwar nicht das Beste, das am besten zusammenpassende, sondern das billigste mit der erträglichsten Lizensierungsbedingungen. Und das wird dann auf einen Chip geklatscht. Da kommt dann so ein Stuss bei raus wie unterschiedliche Wortbreite und unterschiedliche Taktfrequenz zwischen Core und Peripherie. "It's not a feature, it's a bug". Daher fällt es Chinesen so leicht, bauähnliche Chips zu produzieren, die kaufen einfach dieselben IP's ein, nur sind sie dann beim zusammenflicken vielleicht nicht 100% kompatibel. Mit etwas Gluck haben modernere uC dann modernere Peripherie - die komplett inkompatibel mit der alten ist.
:
Bearbeitet durch User
Georg S. schrieb: > I2C Ausgerechnet der I2C wurde bei neueren Controllern komplett neu gemacht (der F411 ist wohl noch zu alt). Dazu die GPIO-Peripherie (AFIO wurde abgelöst), Peripherien wie ADC und Timer haben zusätzliche Detail-Features erhalten, die USB-Peripherie wurde bei kleinen Controllern verbessert und bei großen Controllern durch den OTG-IP-Core von Synopsys ersetzt, Hardware-Bugs wurden behoben, die Controller wurden allgemein energieeffizienter und haben zusätzliche Energiespar-Features bekommen, und natürlich ist eine ganze Menge neuer Peripherie hinzu gekommen.
Georg S. schrieb: > gelöst wären. Ich hatte mir letzens den F411 angesehen (weil der auf dem > Blackpill Board drauf ist), und hatte das gefühl dass Timer, SPI und I2C > von der Benutzung der Register im wesentlichen auf das gleiche raus > laufen. Nun ja, der eine sieht das als Nachteil, der andere als Vorteil ("aufwärts-Kompatibilität"). Aber im Detail gibt es schon Erweiterungen, z. B. bei den GPIOs: separate GPIOx_BRR, GPIOx_HSLVR, GPIOx_SECCFGR. Und des Öfteren dienen vorher unbenutzte Register-Bits halt neuen Funktionen. Was mich mehr ärgert, ist das Durcheinander mit den Timern, ein recht undurchsichtiges Feature-Getümmel. Zwei Kategorien fänd' ich noch ok, aber bei fünfen ist es nicht mehr lustig. Und komplett neue Versionen von Peripherie gibt's schon: QuadSPI -> OctoSPI -> HSPI Zum Glück halbwegs register-kompatibel. Aber leider nicht bug-kompatibel ... > Andere Frage: Gibt es einen STM32 Chip dessen SPI 32 Bit in einem rutsch > über den SPI Bus schicken kann? Jetzt ohne Methoden wie DMA etc.. Was soll das "in einem Rutsch" denn genau heißen? Natürlich kann man 32 Bit in zwei 16-Bit Zugriffen unmittelbar nacheinander ins DR schreiben, dazu ist der FIFO ja da: "Two 32-bit embedded Rx and Tx FIFOs"
Georg S. schrieb: > Andere Frage: Gibt es einen STM32 Chip dessen SPI 32 Bit in einem rutsch > über den SPI Bus schicken kann? Jetzt ohne Methoden wie DMA etc.. z.B. die H7 können das und haben Fifos damit das auch kontinuierlich geht. Guckst du hier: https://www.st.com/resource/en/application_note/an5543-guidelines-for-enhanced-spi-communication-on-stm32-mcus-and-mpus-stmicroelectronics.pdf
Georg S. schrieb: > Ich hatte mal im Internet gelesen (ohne Quellenangabe) dass der > STM32F103 recht alt sei und ST bei dem "noch geübt hat" bei der > Peripherie, und das bei neueren CPUs so einige Unschönheiten besser > gelöst wären. Ja. Die F1, F2 und F4 haben alle z.B. die erste Version der I2C-Peripherie die sich sehr leicht bei Fehlern verschlucken kann. > Ich hatte mir letzens den F411 angesehen auch wenn der F411 ein recht neuer F4 ist, hat die ganze F4-Serie durchgehend die selbe Generation von Peripherie. Das wurde also beim ersten Baustein der Serie entschieden. Wenn ich mich richtig erinnere die F405/F407. Nach der Einführung der F4-Serie wurde dannn die F0-Serie eingeführt. Und die haben dann in dem Moment eine neuere Generation von I2C, den Timern, etc. spendiert bekommen. Heute würde ich mal bei den G4 schauen ob die Dir reichen, das ist eine der neuesten Generationen und haben damit die neueste Peripherie. Und teuer sind sie auch nicht wennn man richtig einkauft: https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU-SOC_STMicroelectronics-STM32G474RBT6_C529413.html
Georg S. schrieb: > dass der > STM32F103 recht alt sei und ST bei dem "noch geübt hat" Die STM32F1 waren 2007 deren Erstlingswerke:-) - https://en.wikipedia.org/wiki/STM32#History - https://en.wikipedia.org/wiki/STM32#STM32_F1 Aber generell werden STM32F (und auch die STM32L) mittlerweile durch neuere Serien "ersetzt" STM32G/H/U. Die F und L werden derzeit zwar noch weiterhin produziert, für ein neues Design sollte man sich aber gut überlegen, die noch zu verwenden und eher was aus den aktuelleren Serien verwenden. Das die STM32F103 mal so beliebt waren bringt auch noch mit sich, dass es mittlerweile soviele 99% kompatible Nachbauten (oft mit eigenen Beschriftungen, gelegentlich auch mal mit STM...) davon gibt, dass es schon schwer wird Originale zu bekommen... - https://hackaday.com/2020/10/22/stm32-clones-the-good-the-bad-and-the-ugly/ - Beitrag "STM32F103C8T6 - Fälschung von ST bestätigt"
Irgend W. schrieb: > für ein neues Design sollte man sich aber gut > überlegen, die noch zu verwenden und eher was aus den aktuelleren Serien > verwenden. Für ein neues Design sollte man sich aber gut überlegen ob man nicht etwas an eingebauter Hardware des F407 braucht die in neueren Controllern nicht mehr vorhanden ist. Für mich ein KO-Kriterium z.B. ist der Ethernet-Core.
> ST entwickelt nichts selber, können die gar nicht, und deren BWLer > wollen dafür auch kein Geld ausgeben. Und das wo ich mal Lokalpatriotismus zeigen wollte und für meinen Einstieg bei den ARM-Prozessoren ST genommen habe... > Mit etwas Gluck haben modernere uC dann modernere Peripherie - die > komplett inkompatibel mit der alten ist. Das verstehen die Erbsenzähler nicht: die CPU ist egal, da kümmert sich der Compiler drum. Das kann morgen auch eine RISC-V CPU sein ohne dass ich das groß bemerke. Aber die Ansteuerung der Peripherie, in die muss man sich einarbeiten. Und das kostet Zeit. Die muss gut, bequem und Konsistent sein, und die darf nicht ständig über den Haufen geworfen werden. > Nun ja, der eine sieht das als Nachteil, der andere als Vorteil > ("aufwärts-Kompatibilität"). Aber im Detail gibt es schon Erweiterungen, Schon klar, so sehe ich das natürlich auch. Nur dass ich davon hörte dass ST beim alten STM32F103 einiges vergurkt hat und ich mich nicht in die Quirks&Features von Peripherie einarbeiten wollte die schon wesentlich verbessert wurde. > Heute würde ich mal bei den G4 schauen ob die Dir reichen, das ist eine > der neuesten Generationen und haben damit die neueste Peripherie. ... > Aber generell werden STM32F (und auch die STM32L) mittlerweile durch > neuere Serien "ersetzt" STM32G/H/U. Das war genau die Art Info für die ich gesucht habe. Dann weiß ich wohin ich schauen muss wenn ich die Software mal vom F103 weg migrieren will. Vielen Dank.
Georg S. schrieb: > Nur dass ich davon hörte dass ST beim alten STM32F103 einiges vergurkt hat Empfinde ich nicht so. Mit fällt nur das I²C Interface ein, für dessen Bug gibt es aber einen gut dokumentierten Workaround. Neuere Modelle haben eben mehr Features und sind ein bisschen anders. Das ist bei AVR nicht anders, da hat sich auch viel verändert. Sogar so viel, dass ich die neuen ATtinies nicht mehr ATtiny genannt hätte.
Georg S. schrieb: > Aber die Ansteuerung der Peripherie, in die muss > man sich einarbeiten. Und das kostet Zeit. Naja, man ist mit der Peripherie nicht verheiratet. Von einem F1 auf einem G0 umzusteigen ist halb so schlimm. Das meiste wird eh von der HAL Library gekapselt (die mittlerweile tatsächlich auf einem benutzbaren Zustand ist). Sich auf einen F1 oder G0 oder F4 festzulegen nur wegen ein paar Unterschieden in der Peripherie ist nicht so sinnvoll.
Der direkte Nachfolger vom F103 ist der F303, dazu gibt's extra ein Dokument https://www.st.com/resource/en/application_note/dm00073522-migrating-from-stm32f1-series-to-stm32f3-series-microcontrollers-stmicroelectronics.pdf Irgend W. schrieb: > Aber generell werden STM32F (und auch die STM32L) mittlerweile durch > neuere Serien "ersetzt" STM32G/H/U Ja. Leider kommt das Angebot für Hobbybastler nicht so schnell mit. Schon für den F303 gibt es nur wenige Anleitungen und Boards, für die G/H/U Serien noch weniger. Die L0 Serie ist einfach, macht auf mich dennoch einen deutlich moderneren und aufgeräumteren Eindruck, als F1. Insbesondere kommt es mir so vor, als ob das Reference manual deutlich ausfühlicher geschrieben wurde und damit für mich als Anfänger besser verständlich, als die die anderen STM32. Für mich sind die L0 der logisch nächste Schritt nach AVR.
:
Bearbeitet durch User
Georg S. schrieb: > Und das wo ich mal Lokalpatriotismus zeigen wollte und für meinen > Einstieg bei den ARM-Prozessoren ST genommen habe... Ist ja nicht so dass die F1 eine Vollkatastrophe sind. Es ist doch wie immer, es setzt sich nicht das absolut Beste durch, sondern was gut genug ist. Man könnte auch sagen F1 und Clone MCUs programmieren zu können ist ein vermarktbares Wissen. Auch wenn für Neuentwicklungen neuere STMs genommen werden sollten (gibt aber kein Gesetz dazu :)), gibt es noch genug Neu- und Weiterentwicklungen die mit F1 weiter machen. Alt, bewährt, ausreichend gut verstanden. > Aber die Ansteuerung der Peripherie, in die muss > man sich einarbeiten. Und das kostet Zeit. Ist doch egal wenn man dafür bezahlt wird. > Schon klar, so sehe ich das natürlich auch. Nur dass ich davon hörte > dass ST beim alten STM32F103 einiges vergurkt hat und ich mich nicht in > die Quirks&Features von Peripherie einarbeiten wollte die schon > wesentlich verbessert wurde. Die dafür andere Überraschungen bereit halten. Man, also der Normalentwickler, will nicht der Erste sein der die Überraschungen findet. Lieber per Google Lösungen für bekannte Probleme finden können. > Das war genau die Art Info für die ich gesucht habe. Dann weiß ich wohin > ich schauen muss wenn ich die Software mal vom F103 weg migrieren will. Never change a running system. Schon mal gehört? Wenn der einzige Grund für eine Migration ist, dass man was Neueres, Schöneres nutzen möchte, dann ist das nicht der beste Grund. Meist kommen ziemlich junge Kollegen auf die Idee "mal eben" ohne Grund ein paar Jahre Entwicklungsarbeit wegzuwerfen um alles Neu zu machen.
Georg S. schrieb: > Ich hatte mal im Internet gelesen (ohne Quellenangabe) dass der > STM32F103 recht alt sei und ST bei dem "noch geübt hat" bei der > Peripherie, und das bei neueren CPUs so einige Unschönheiten besser > gelöst wären. Der F103 ist zwar schon etwas in die Jahre gekommen, aber wenn man sich ernsthaft mit den STM32-µControllern beschäftigt, dann liest man auch die Erratas der entsprechenden Familien und weiß dann, dass quasi jede STM32-Familie irgendwelche Designfehler im Silizium hat – mal ist es mehr und/oder ohne Lösungsmöglichkeit, mal etwas weniger und man kann das dort beschriebene Problem relativ leicht umgehen, indem man z.B. die Registerzugriffe anders vollführt, teilweise hängt es auch von der Revision des Chips ab und wird danach unterschieden. Die meisten Datenblattphobiker lesen nicht einmal das Reference Manual für die Benutzung/Programmierung des µControllers, d.h. so etwas wie wenigstens einmal in die Errata schauen kommt einem gar nicht erst in den Sinn. Ich persönlich bin kein Fan von dem F103 und den Einstieg in die STM32-Welt habe ich direkt mit dem F411RE vollführt – solche Dinge muss aber schon jeder selbst abwägen und entscheiden und es hängt vor allem davon ab, was man schon vorher weiß und kann. Es gibt auch Leute, die mental lebenlang bei einem µController der ganzen STM32-Palette hängenbleiben, was dann oft leider auch der F103 ist – für diese spezielle Konstellation habe ich dann eventuell nur noch etwas Mitleid übrig, ansonsten ist es natürlich nicht mein Problem.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.