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?
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.
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.
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.
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.
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.
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?
> 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.
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.
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.
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)
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.
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
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.
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.
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.
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?
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/
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
