Forum: Mikrocontroller und Digitale Elektronik Welches stm32 Entwicklungsboard?


von Toni E. (johny123)


Lesenswert?

Also ich möchte ein Entwicklungsboard an dem ich die Sachen entwickle 
und später möchte ich eine Platine selbst erstellen mit dieser 
Funktionalität, also muss der µC auch beschaffbar sein(Reichelt,Conrad, 
mouser) und so günstig wie möglich sein.

Der Chip sollte auch in einem noch lötbaren package sein, also maximal 
lqfp64, lqfp48 natürlich besser.

Es muss mindestens 2x SPI, 2x ADC haben. Rest ist meistens genug drauf.

Außerdem wichtig wäre ein gutes begleit Tutorial, welches es Online gibt 
wie zum Beipsiel diller-technologies.
Als IDE würde ich µVision 4 von Keil benutzen. Soweit ich weiss ist sie 
kostenlos bis zu einer gewissen Programmgröße.

Welches Eval-Board könnt ihr da empfehlen?

von Axel S. (a-za-z0-9)


Lesenswert?

Toni E. schrieb:
> Also ich möchte ein Entwicklungsboard an dem ich die Sachen entwickle
> und später möchte ich eine Platine selbst erstellen mit dieser
> Funktionalität, also muss der µC auch beschaffbar sein und so günstig
> wie möglich sein. Der Chip sollte auch in einem noch lötbaren package
> sein

Das eine folgt doch nicht aus dem anderen? Du kannst doch durchaus auf 
dem Evalboard den einen µC haben und später für das Produkt einen 
anderen benutzen. Für gewöhnlich macht man das genau so, daß man ein 
Evalboard mit einem eher großen µC verwendet, und dann wenn man weiß, 
welche Resourcen man braucht, einen passenden kleineren Typ (aus der 
gleichen Familie natürlich) verwendet.

> Es muss mindestens 2x SPI, 2x ADC haben. Rest ist meistens genug drauf.
>
> Welches Eval-Board könnt ihr da empfehlen?

Jedes. Was du da an "Anforderungen" hast, erfüllt jedes. Wenn du sonst 
noch gar nichts hast, könntest du z.B. ein Nucleo-Board von STM nehmen. 
Da ist kein überflüssiger Schnickschnack drauf (im Gegensatz zu den 
Discovery-Boards) aber du hast einen Debug-Adapter dabei, den du auch 
für Eigenbauten verwenden kannst.

von Robin S. (der_r)


Lesenswert?

Ich würde an der Stelle einfach mal den STM32F103 (z.B. STM32F103C8T6) 
in den Raum werfen, bei Reichelt günstig zu haben, leistungsstark genug 
für die allermeisten Projekte, via China gibt es Boards für wenige Euro, 
die sich mit einem ST-Link flashen lassen...

Dazu noch einen ST-Link V2 oder ein beliebiges Discovery-Board, geht 
auch als Programmer.

von test (Gast)


Lesenswert?

NUCLEO-F103RB

dazu das Tutorial von diller-technologies und du solltest für den 
Einstieg gut ausgerüstet sein.

Für den STM32F0 gibts bei Keil keine Codebegrenzung. Das mal als Hinweis 
falls es ein großes Projekt werden soll.

von Simi (Gast)


Lesenswert?

Robin S. schrieb:
> Dazu noch einen ST-Link V2 oder ein beliebiges Discovery-Board, geht
> auch als Programmer.

Zur Verdeutlichung: Der ST-Link V2 ist bei den Discovery boards auf der 
Platine mit drauf und ist über Jumper mit dem Prozi des Boards 
verbunden. Wenn Du die Jumper umsteckst, hast Du einen vollwertigen 
ST-_Link V2, mit dem Du eingene Boards programmieren und debuggen 
kannst.

Für diese etwa 10 Euro kannst du hier also nichts falsch machen.

von Christian J. (Gast)


Lesenswert?

Mal nach Blue-Pill Board googlen und dann bei ebay oder banggood für 
3,95 / Stüeck bestellen.

+ Stlink V2 + EmBitz 1.1 + Diller Tutorial

und alles wird gut.

von Toni E. (johny123)


Lesenswert?

ich fasse mal zusammen:
Diese zwei Sachen, und ich kann dann wie gewohnt mit KEIL µVision 
fortfahren?
https://de.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino/32246273606.html?spm=2114.13010308.0.0.jPKCJ7

https://de.aliexpress.com/item/ST-Link-V2-stlink-mini-STM8STM32-STLINK-simulator-download-programming-With-Cover/1956977845.html?spm=2114.13010308.0.0.jPKCJ7

Dieses Board hat doch USB, wozu dann der st link? Oder was macht der Usb 
Anschluss hier?

Und habe ich irgendwelche Nachteile im Vergleich zum NUCLEO-F103RB? Der 
Nucleo hat bereits St Link V2 drauf. Ich kann ja bei beiden CubeMX 
benutzen, richtig?

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

> wie gewohnt mit KEIL µVision

Die gibt es unlimited fuer lau nur fuer die M0/M0+ (also z.B. F030).

Der F103 ist ein M3.

von Lutz (Gast)


Lesenswert?

Toni E. schrieb:
> Dieses Board hat doch USB, wozu dann der st link? Oder was macht der Usb
> Anschluss hier?

USB ist bei dem Board nur für die Spannungsversorgung (soviel ich weiß).

> Und habe ich irgendwelche Nachteile im Vergleich zum NUCLEO-F103RB? Der
> Nucleo hat bereits St Link V2 drauf. Ich kann ja bei beiden CubeMX
> benutzen, richtig?

Kann ich nix zu sagen. Ich kann aber aus eigener (langer) Erfahrung 
empfehlen: Kauf dir einen J-Link EDU. Kostet zwar einmalig um die 50 
€, aber der funktioniert immer. out-of-the-box (aktuelle Software bei 
Segger laden; klar). Und: Du bist auf keinen Hersteller beschränkt. 
Morgen gefallen dir die LPC* oder sonstwas. Gerade am Anfang, wenn man 
noch gar nicht weiß, wo der Weg hinführt oder was einem persönlich an 
einem Controller wichtig ist und was nicht. Dann ist's Asche mit dem 
ST-LINK.
Deshalb würde ich auch eine völlig neutrale IDE empfehlen, weil dann 
brauchst du den ganzen Sekundärkram nur einmal lernen: Eclipse, J-LINK 
und das zugehörige ARM-plugin. Die einzige Variable bleibt dann der 
Prozessor.

von Axel S. (a-za-z0-9)


Lesenswert?

Toni E. schrieb:
> Dieses Board hat doch USB, wozu dann der st link? Oder was macht der Usb
> Anschluss hier?

Der USB-Anschluß ist ein USB-Anschluß. Und kann sowohl zur Strom- 
versorgung als auch zur Kommunikation mit dem µC verwendet werden. 
Letzteres aber nur, sofern ein Programm auf dem µC den USB bedient. 
Dummerweise hat der F103C8T6 keinen Bootloader mit USB-Support im ROM. 
Um überhaupt irgend ein Programm drauf zu bekommen, brauchst du entweder 
einen SWD-Adapter wie den ST-Link. Oder du verwendest den vorhandenen 
UART-Bootloader und einen entsprechenden Adapter für z.B. USB auf 3.3V 
UART. Ersteres hat den klaren Vorteil, daß du darüber auch debuggen 
kannst.

> Und habe ich irgendwelche Nachteile im Vergleich zum NUCLEO-F103RB?

Der F103RB auf dem Nucleo-Board hat mehr GPIO's herausgeführt (64 Pins 
vs. 48 Pins) und doppelt so viel Flash (128KB vs. 64KB)

> Nucleo hat bereits St Link V2 drauf.

Ja. Kann man als Vorteil oder Nachteil sehen.

Noch eine Variante wäre ein Maple-leaf kompatibles Board vom Ali. Das 
ist genauso "nackt" wie das "Bluepill" Board von oben, aber es sitzt ein 
F103CBT6 drauf. Der hat ebenfalls 128KB Flash und einen USB-Bootloader 
vorprogrammiert im Flash. Dann kommst du im Prinzip ohne ST-Link aus, 
verlierst aber die Möglichkeit zum Debuggen.

von Ralph S. (jjflash)


Lesenswert?

Axel S. schrieb:
> Der USB-Anschluß ist ein USB-Anschluß. Und kann sowohl zur Strom-
> versorgung als auch zur Kommunikation mit dem µC verwendet werden.
> Letzteres aber nur, sofern ein Programm auf dem µC den USB bedient.

Stimmt, aber leider hat das einen größeren Haken:

Auf der Unterseite des Boards ist der Pullup - Widerstand R10 meistens 
falsch (10k oder 4,7k anstelle von 1,5k) und somit funktioniert die 
USB-Schnittstelle mit diesen Boards nicht (es sei denn es wird der 
Widerstand ausgetauscht)

von Florian (Gast)


Lesenswert?

Einen f103c8t6 gibt es nicht entweder c8 oder t6.
Die T Typen gibts laut stm nur in 36 qfn und haben nur 1spi.
Die f103x(4 oder 6) Typen haben laut Stm nur 1Spi
Als lqfp 48 oder 64 kommen nur die C oder R Typen in frage
Zwei SPI gibts dabei ab Nummer 8 (zb. C8).
Zwei ADC haben sie wohl alle.
Bei den f0 Typen wird es an den 2 adc's scheitern wenn 2 adc's
auch als solches gemeint ist, Channel mux können sie natürlich alle
hat aber mit 2 adc's soviel gemein wie Tag und Nacht...
Ich hatte bei Stm zumindest keinen m0 mit mehreren adc's
Gefunden und liebäugele daher auch mit den atmel m0 die es mit zwei
gibt zumal Ich deren sercom Block auch für bedarfsgerechte Konfiguration
der Kommunikations pereherie nett finde.

von U.G. L. (dlchnr)


Lesenswert?

Ich empfehle immer das NUCLEO-F091RC (Cortex-M0-Nucleo mit dem meisten 
SRAM), wenn Interesse an einem nicht kastrierten Keil-Compiler besteht: 
http://www2.keil.com/stmicroelectronics-stm32/mdk

von Dieter (Gast)


Lesenswert?

Zum Debugger: auf meinen Nucleo-Boards habe ich die ST-Link-Firmware 
durch die blackmagic-probe ersetzt und bin damit rundum zufrieden.
https://github.com/blacksphere/blackmagic

Von Segger gibt es auch noch die J-Link-Firmware, damit habe ich aber 
keine Erfahrung.

von Axel S. (a-za-z0-9)


Angehängte Dateien:

Lesenswert?

Ralph S. schrieb:
> Axel S. schrieb:
>> Der USB-Anschluß ist ein USB-Anschluß. Und kann sowohl zur Strom-
>> versorgung als auch zur Kommunikation mit dem µC verwendet werden.
>> Letzteres aber nur, sofern ein Programm auf dem µC den USB bedient.
>
> Auf der Unterseite des Boards ist der Pullup - Widerstand R10 meistens
> falsch (10k oder 4,7k anstelle von 1,5k) und somit funktioniert die
> USB-Schnittstelle mit diesen Boards nicht

Ja. Und Nein.

Ja, der Widerstand ist i.d.R. falsch bestückt. Aber Nein, das bedeutet 
nicht, daß die USB-Schnittstelle kategorisch nicht funktionieren würde. 
Es hängt von der Gegenseite ab, ob sie das Board trotz des zu großen 
Pullup-Widerstands erkennt. Mit meinen Geräten (1 PC, 2 Notebooks) 
funktioniert es überall. Und wenn es nicht funktionieren sollte, dann 
reicht es, R10 durch den korrekten Wert 1.5K zu ersetzen (oder 
einfacher: einen 2.2K parallel zu den vorhandenen 10K zu schalten).

Florian schrieb:
> Einen f103c8t6 gibt es nicht entweder c8 oder t6.

Erzähl doch bitte nicht so einen Blödsinn. Siehe angehängten Screenshot.

von W.S. (Gast)


Lesenswert?

Toni E. schrieb:
> Diese zwei Sachen, und ich kann dann wie gewohnt mit KEIL µVision
> fortfahren?

Fortfahren? Wie gewohnt?

Wenn du es bereits gewohnt bist - warum fragst du dann?

W.S.

von Toni E. (johny123)


Lesenswert?

Axel S. schrieb:
> Noch eine Variante wäre ein Maple-leaf kompatibles Board vom Ali.

sowas? 
https://de.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/32214664071.html?spm=2114.010208.3.22.xAfryk&ws_ab_test=searchweb0_0,searchweb201602_2_10000560_10000606_10000561_10000073_10000074_10000608_10000709_10000660_10000704_10000703_10000175_10000509_10000507_10000505_10000558_10136_10000068_10000552_10000369_10000063_10000365_10000367_10099_10000663_10000665_10096_10000669_10000569_10000097_10000094_10000337_10000723_10000090_10000147_10000091_10000726_10000144_10000339_10000150_10000679_10084_10000678_10083_10000676_10080_10000153_10082_10000673_10081_10110_10111_10112_10113_10000535_10114_10000534_10000089_10000086_10000710_10000083_10000349_10000690_10000135_10000716_10000080_10000693_10078_10079_10000717_10077_10000688_10073_10000684_10000140_10070_10122_10123_10126_10124_10000546_10065_10068_10000132_10000033_10000030_10000026_10000126_10000023_10000129_10000123_10000696_10060_10062_10000699_10056_10055_10054_10000632_302_10059_10000120_10000020_10000013_10000117_10103_10102_10000016_10101_10000114_10000111_10052_10053_10107_10050_10106_10051_10000621_10000384_10000629_10000101_10000100_10000576_10000579_10000104_10000045_10000578_10000375_10000108_10000377_10037_10000612_10000390_10000613_10033_10032_10000042_10000592_10000594_10000039_10000587_10000036_10000389_10000187-10052,searchweb201603_9,afswitch_1,ppcSwitch_2,single_sort_0_default&btsid=086d56d0-6614-4764-ace3-ee6979cb909a&algo_expid=fee5c02c-30a7-4d53-b03b-5bd02280d205-2&algo_pvid=fee5c02c-30a7-4d53-b03b-5bd02280d205
U.G. L. schrieb:
> Ich empfehle immer das NUCLEO-F091RC (Cortex-M0-Nucleo mit dem meisten
> SRAM), wenn Interesse an einem nicht kastrierten Keil-Compiler besteht:
> http://www2.keil.com/stmicroelectronics-stm32/mdk
Dann habe ich aber kein passendes Tutorial mehr wie diller.

Dann noch eine Frage, Wenn ich nun die Software entwickelt habe und mein 
eigenes Board erstelle und es mit einem neuen stm32 bestücke. Wie kriege 
ich nun die Software drauf?

Wie funktioniert das ohne stlink und IDE - also wie bekommt jemand meine 
Software als Binary/hex-file auf das Board. Welche pins muss ich 
rausführen und mit welchen Programm macht er das dann?

Also muss der µC wohl einen Bootloader haben müssen?

von Gerd E. (robberknight)


Lesenswert?

Toni E. schrieb:
> Dann noch eine Frage, Wenn ich nun die Software entwickelt habe und mein
> eigenes Board erstelle und es mit einem neuen stm32 bestücke. Wie kriege
> ich nun die Software drauf?
>
> Wie funktioniert das ohne stlink und IDE - also wie bekommt jemand meine
> Software als Binary/hex-file auf das Board.

Entweder über SWD, also mit einem externen stlink, J-Link, 
Blackmagic-Probe oder ähnlichem.

Sowas gibt es für unter 2 EUR, ist also kein wirkliches Hindernis:
https://www.aliexpress.com/item//32242036342.html

Oder mit dem Bootloader, der vom Hersteller schon mit drauf ist. Am 
gängigsten dürfte der wohl über UART angesprochen werden, abhängig vom 
Modell geht aber auch USB, I2C, SPI oder CAN.

Alles zum Bootloader erklärt AN2606:
http://www.st.com/resource/en/application_note/cd00167594.pdf

> Welche pins muss ich
> rausführen

für SWD: SWCLK, SWDIO, GND und sinnvollerweise auch Vdd Deines µCs
für Bootloader: siehe AN2606

> und mit welchen Programm macht er das dann?

für SWD: abhängig von der verwendeten SWD-Interface
für Bootloader: z.B. stm32flash, 
https://sourceforge.net/projects/stm32flash/

von Axel S. (a-za-z0-9)


Lesenswert?

Toni E. schrieb:
> Axel S. schrieb:
>> Noch eine Variante wäre ein Maple-leaf kompatibles Board vom Ali.
>
> sowas?
> 
https://de.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/32214664071.html

Yep. Genau so eins habe ich hier auch liegen. Hat wie gesagt doppelt so 
viel Flash wie das Blue-Pill Board. Und durch den schon aufgespielten 
Bootloader brauchst du es nur an den USB zu stecken und kannst sofort 
ein Programm drauf flashen.

> Dann noch eine Frage, Wenn ich nun die Software entwickelt habe und mein
> eigenes Board erstelle und es mit einem neuen stm32 bestücke. Wie kriege
> ich nun die Software drauf?

Da gibt es verschiedene Möglichkeiten. Am universellsten sind die 
dezidierten Programmierschnittstellen: SWD oder JTAG. SWD kommt mit 
weniger Pins aus. JTAG läßt sich dafür kaskadieren und hat ein paar mehr 
Funktionen. Du mußt dafür die jeweiligen Pins auf einen Steckverbinder 
(oder wenigstens Testpads) führen und bist in der eigenen Verwendung 
dieser Pins auch etwas eingeschränkt.

Alternativ haben alle STM32 einen Bootloader im ROM, den sie bei 
geeigneter Beschaltung (Jumper) der BOOTx Pins anspringen. Wenn dein 
Board also eine Standard-Schnittstelle herausgeführt hat (z.B. USB oder 
UART) und der gewählte µC Bootloader-Unterstüzung für diese 
Schnittstelle hat [1] dann kannst du den µC am einfachsten auf diesem 
Weg flashen.

> Wie funktioniert das ohne stlink und IDE - also wie bekommt jemand meine
> Software als Binary/hex-file auf das Board. Welche pins muss ich
> rausführen und mit welchen Programm macht er das dann?

Wenn du die Methode (Bootloader oder ISP) festgelegt hast, liegen die 
Pins fest. Programme gibt es für verschiedene Betriebssysteme. Vom 
Hersteller (ST) eigentlich nur für Windows (manches ist Java und läuft 
mit ein bißchen Frickeln auch anderswo). Für Linux gibt es Software von 
dritter Seite, z.B. stm32flash für (UART) Bootloader-Uploads oder 
st-flash aus dem stlink Paket für SWD-Uploads. USB nutzt das 
DFU-Protokoll, da gibt es generische Tools.

[1] wie weiter oben schon gesagt, decken die Bootloader nicht immer alle 
vorhandenen Schnittstellen ab. Der F103Cx hat z.B. UART und USB, sein 
Bootloader unterstützt aber nur den UART.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Axel S. schrieb:

> Ja, der Widerstand ist i.d.R. falsch bestückt. Aber Nein, das bedeutet
> nicht, daß die USB-Schnittstelle kategorisch nicht funktionieren würde.
> Es hängt von der Gegenseite ab, ob sie das Board trotz des zu großen
> Pullup-Widerstands erkennt. Mit meinen Geräten (1 PC, 2 Notebooks)
> funktioniert es überall. Und wenn es nicht funktionieren sollte, dann
> reicht es, R10 durch den korrekten Wert 1.5K zu ersetzen (oder
> einfacher: einen 2.2K parallel zu den vorhandenen 10K zu schalten).

Wenn man sowieso schon den Lötkolben heiß hat, kann man den neuen Pullup 
nur einseitig einlöten und den zweiten Anschluss mit einem GPIO-Pin 
verbinden. Das ermöglicht dann das firmwaremäßige Abkoppeln vom USB.

von W.S. (Gast)


Lesenswert?

Toni E. schrieb:
> Wie funktioniert das ohne stlink und IDE - also wie bekommt jemand meine
> Software als Binary/hex-file auf das Board. Welche pins muss ich
> rausführen und mit welchen Programm macht er das dann?

Also,
Schritt 1: Du mußt deine Quellen erstmal mit irgendwas übersetzt 
kriegen, also mit den üblichen Verdächtigen: Compiler, Assembler, 
Linker, FromElf o.ä. was aus dem Link-Ergebnis dir eine Bin oder Hex 
Datei macht.

Schritt 2: Wenn du ohne ST-Link, J-Link oder anderweitigen 
JTAG/SWD-Adapter auskommen willst, dann führe heraus:
- GND
- TX1
- RX1
- Reset
- BOOT0 oder BOOT1 (genaueres lies im Manual nach, manche Chips haben 2 
Boot-Selektpins, andere nur einen) Belies dich auch, was den 
Default-Pegel an diesem Pin betrifft (Hochzieh- oder 
Runterzieh-Widerstand dran)

Schritt 3: Du brauchst eine serielle Schnittstelle mit TTL-Pegeln. Sowas 
hat man heutzutage mit einem USB->seriell Adapter. Meiner basiert auf 
einem FTDI Chip.

Bei den PC-Programmen sieht es etwas eng aus, aber es gibt sie. Ganz am 
Anfang gab es nur den "Flash-Loader-Demonstrator" von ST und den 
"Erfos"-Brenner, aber mittlerweile gibt es etwas mehr. Ähem.. auch ich 
hab mir eines selber geschrieben, gibt's hier im Forum. Die 
Schnittstelle zum Bootlader ist recht ausführlich dokumentiert.

W.S.

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.