Hallo Zusammen,
im Rahmen der anstehenden Masterarbeit würde ich mich gerne zuvor etwas
in die Grundzüge des STM32F7 einarbeiten. Keil ist bereits vorhanden.
In den letzten Jahren habe ich hauptsächlich (je nach Anwendungsfall)
Querbeet die ATMega Reihe durchprogrammiert. Programmiersprache ist
dabei C (Assembler zu lange her) und Hilfestellung war das hiesige Forum
bzw. die wirklich hilfreichen Datenblättern. Tiefer gehende
Anwendungsgebiete waren während dem Bachelor-Studium neben diversen
Hardware-Entwicklungen die Kommutierung/Regelung von BLDC-Motoren, CAN,
BLE sowie etwas Display-Programmierung. Also wirklich nichts wildes.
Nun würde ich gerne etwas tiefer in die oben genannten Gebiete
einsteigen (inkl. Ethernet Anbindung, DMA, USB) und suche ein gut
strukturiertes Buch. Ein genereller Einstieg in die STM32 Welt wäre
dabei ganz nett, aber auch nicht unbedingt notwendig.
An Büchern habe ich auf Amazon bereits folgende gefunden:
-
https://www.amazon.de/ARM-Mikrocontroller-Einsteiger-Projekte-Bert-van-Dam/dp/3895762628/ref=sr_1_1?s=books&ie=UTF8&qid=1495381351&sr=1-1&keywords=stm32
-
https://www.amazon.de/ARM-Mikrocontroller-30-Projekte-f%C3%BCr-Fortgeschrittene/dp/3895762717/ref=pd_bxgy_14_img_2?_encoding=UTF8&psc=1&refRID=FPP5P8S83QN6A1V72646
Vielversprechender vielleicht eher (obschon scheinbar nur auf
CMSIS-Libary eingehend):
-
https://www.amazon.de/Designers-Guide-Cortex-M-Processor-Family-ebook/dp/B01GUEKZP4/ref=sr_1_3?s=books&ie=UTF8&qid=1495381551&sr=8-3&keywords=cortex+m7
Allerdings dachte ich eher an ein Cortex-M7 spezifiziertes Buch mit min.
800 Seiten, indem gründlich Step by Step alle Register/Möglichkeiten in
Assembler/C erarbeitet werden, bestenfalls mit Übungsaufgaben und nicht
oberflächig, sondern etwas, was sich mit der Materie richtig auseinander
setzt.
Oder um es zu vergleichen: Quasi ein Tietze u. Schenk für STM32 mit der
Ausführlichkeit eines Philippows, darf dann auch gerne einiges mehr
kosten. Ein Buch zum Selbststudium, ein Nachschlagewerk sowie
Personal-Coach. Davon träume ich schon sehr lange ehrlich gesagt.
Also falls irgend jemand das hier liest und aus erster oder zweiter Hand
einen Ratschlag für einen treuen Begleiter hat (mit dem ich ein knappes
Jahr jeden Tag den ganzen Tag programmieren werde), wäre ich sehr
dankbar.
Viele Grüße und einen guten Start in die Woche,
ein Interessierter (E-Techniker)
Worüber geht es denn in der Masterarbeit? Ist davon auszugehen, dass die
Grenzen des Mikrocontrollers limitieren, oder ist da Luft? Je nachdem
lohnt es sich meiner Meinung nach nicht alle Register eines
Mikrocontrollers zu lernen. Man sollte wissen welche es gibt, um schnell
nachschauen zu können. Interessiert mich der ADC nicht, brauch ich mich
nicht intensiv damit beschäftigen, es is natürlich von Vorteil zu wissen
dass es einen ADC gibt.
Mit den cube libraries kann man schon einiges anfangen.
Warum brauchst du dazu ein Buch? Arbeite eine Hand voll Tutorials durch
um die Basics zu bekommen, dann lese das Reference Manual (bzw. nur die
relevanten Kapitel) durch, wo ja alle Register im Detail beschrieben
sind. Die Kapitel zu RCC, PWR, GPIO und Interrupts sollte man aber auf
jeden Fall lesen. Lies außerdem die Kapitel zu Interrupts und NVIC im
ARMv7M Architecture Reference Manual, überfliege das Instruction
Encoding, und sonst alles was relevant erscheint. Kostet keinen Cent;
gib das Geld lieber für vernünftige Debugger (z.B. J-Link) und
Eval-Board aus, damit kannst du dann alles direkt ausprobieren.
Ich habe mich so eingearbeitet: Für die Eval-Boards von ST gibt es
Beispielcodes für die ganzen Funktionen. Die habe ich mir angeschaut.
Dazu einmal das Datenblatt und insbesondere das Reference Manual quer
gelesen (das RM hat >1600 Seiten) und dann nur die konkret benötigten
Bereiche im Detail durchgelesen. Außerdem gibts noch die ganzen Appnotes
und so, in denen auch oft wichtige Details drin stehen. Außerdem gibt's
noch die Doku von ARM, in die man leider auch manchmal reinschauen muss.
Bücher habe ich dazu keines gelesen, da sich selbst die M4 und die M7 in
vielen Details unterscheiden.
Hallo Gerald M,
tut mir leid, das hatte ich ganz vergessen: es handelt sich um ein
künstliches neuronales Netz (ANN) auf Basis einer modellbasierten,
(nichtlinearen) feldorientierten Vektorregelung mit reduziertem
Beobachter höherer Ordnung. Das genaue Thema steht selbstverständlich
noch nicht fest aber es ist davon auszugehen, dass trotz benötigter
Spektralanalyse (was die Rechenleistung angeht) noch etwas Luft nach
oben sein dürfte. Sorgen mache ich mir eher um die Leiterbahnführung des
EVAL-Boards, da eine hinreichend genaue (und auch schnelle)
ADC-Erfassung Grundlage der Regelung bildet. Soweit ich das richtig
verstanden habe, sind viele DSP-Funktionalitäten hardwareseitig
implementiert, sodass die Vorfiltermatrix und andere Filtermethoden
parallel zum eigentlichen Code laufen können?
Als Board besitze ich das STM32756G-EVAL sowie STM32F7-Discovery und der
finanzielle Projektrahmen beläuft sich auf ca. 10.000€.
Hallo Dr. Sommer,
vielen Dank für die wertvollen Tipps. Genau aus diesem Grund
(Empfehlungen von einem Praktiker) würde ich mir ein Buch wünschen,
sodass man im Vorfeld Prioritäten setzen kann, was generell ein
must-have oder vielleicht auch nur nice-to-have ist, denn bevor man die
Arbeit beginnt, sollte das eigene Werkzeug doch beherrscht werden.
Darüber hinaus sollte doch der Weg das Ziel sein, die Einarbeitung ist
also für die Masterarbeit zwar eine hinreichende, für das spätere
Berufsleben jedoch eine notwendige Bedingung.
Hallo Markus K,
das klingt natürlich vielversprechend, arbeitest du da mit der
HAL-Library und Keil? Gegen das Reference Manual kann man natürlich
nichts sagen, das ist schon ziemlich gut aufbereitet und auch
ausführlich, doch ich dachte auch in der Anwendung gibt es sicherlich
Tricks und Kniffe, gerade was beispielsweise das Interrupt-Handling mit
dynamischer Priorisierung oder auch deterministischer Laufzeitberechnung
angeht. Inwieweit sollte da mit dem Cache gearbeitet werden?
Viele Grüße und Danke nochmal,
ein Interessierter
ein Interessierter schrieb:> Soweit ich das richtig> verstanden habe, sind viele DSP-Funktionalitäten hardwareseitig> implementiert, sodass die Vorfiltermatrix und andere Filtermethoden> parallel zum eigentlichen Code laufen können?
Nein. Er hat ein paar DSP-Features, aber ein richtiger DSP kann schon
mehr. Er hat auch kein NEON (gibt's bei den größeren ARMs). Das läuft
auch nicht gleichzeitig (abgesehen davon, dass es eine superskalare CPU
ist).
Schau einfach mal hier, was er so an Befehlen hat:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0489c/CHDIFEEC.htmlein Interessierter schrieb:> arbeitest du da mit der HAL-Library und Keil?
Ich benutze die HAL-Lib, aber als Compiler habe ich den IAR.
ein Interessierter schrieb:> deterministischer Laufzeitberechnung> angeht. Inwieweit sollte da mit dem Cache gearbeitet werden
Für die Daten gibts das Tightly coupled memory. Das macht nur einen Teil
des gesamten RAMs aus, aber das wird nicht gecached. Für den Code gibt
auch einen Cache, aber auf den wird man vermutlich aus
Performancegründen nicht verzichten können.
Da die ARM-Peripherie zum groessten Teil herstellerspezifisch ist,
kann es ein Buch das generell den Umgang damit beschreibt, nicht geben.
Fuer den STM32 wuerde ich da am ehesten: "Mastering STM32" von
Carmine Noviello als ergaenzende Literatur sehen.
Der Autor benutzt im wesentlichen den HAL-Obfuscation-Layer
zum Zugriff auf die Peripherie. Ob das fuer Dich ein Vorteil ist,
musst Du selbst herausfinden.
Hallo Zusammen,
vielen Dank nochmals für eure Hilfe. Schade das man sich wieder alles im
Internet zusammen suchen muss aber gut, dann weiß ich Bescheid.
Viele Grüße,
Ein Interessierter
ein Interessierter schrieb:> feldorientierten Vektorregelung> STM32F7
Dafür ist ein M7 nicht gedacht, obwohl es natürlich irgendie gehen
könnte. Aber ARM selbst empfiehlt Cortex-R z.B.
http://www.ti.com/tool/drv8301-rm46-kit> künstliches neuronales Netz
Sowas wird überschätzt :-)
Guten Morgen zusammen :-),
schön das ich die Elektor-Bücher bereits aussortieren kann. Mit dem
drv8301 lief bereits die Stromregelung, nur würde ich aus eigener
Erfahrung niemand TI empfehlen. CCS war sehr gewöhnungsbedürftig, das
Interrupthandling bzw Timergeschichten waren ziemlich umständlich bis
hin zu (für unsere Zwecke) nicht lösbar realisiert und das generelle
Arbeiten damit ist nicht so übersichtlich gehalten wie bei ST (Reference
Manual usw.), ist aber eine andere Geschichte. FOC gabs ja nun schon in
allerlei Varianten auf dem M4, M7 etc. Warum wäre das mit Blick auf die
Regelung eine suboptimale Lösung (rein interessenhalber) deiner Meinung
nach? Das neuronale Netze überbewertet werden stimmt in jedem Fall
natürlich aber manchmal lässt es sich leider nicht vermeiden. Über das
Forum bin ich bereits auf
http://mikrocontroller.bplaced.net/wordpress/?page_id=2736
gestoßen, was schonmal eine große Hilfe war aber der Tiefgang und die
Funktionsvielfalt fehlen dann doch ein bisschen.
Hat jemand schon Erfahrungen mit diesem Buch gemacht? Vielleicht lässt
sich da einiges adaptieren.
https://www.amazon.de/Definitive-Guide-Cortex-M3-Cortex-M4-Processors/dp/0124080820/ref=pd_lpo_vtph_107_tr_img_3?_encoding=UTF8&psc=1&refRID=MFAJQ2W4QY6566SS56N1
Vielen Dank für die rege Beteiligung. Bin sehr gespannt auf weitere
Meinungen (gerade auch zu oben genanntem Buch).
Ein Interessierter
ein Interessierter schrieb:> Hat jemand schon Erfahrungen mit diesem Buch gemacht? Vielleicht lässt> sich da einiges adaptieren.>> https://www.amazon.de/Definitive-Guide-Cortex-M3-Cortex-M4-Processors/dp/0124080820/ref=pd_lpo_vtph_107_tr_img_3?_encoding=UTF8&psc=1&refRID=MFAJQ2W4QY6566SS56N1>> Vielen Dank für die rege Beteiligung. Bin sehr gespannt auf weitere> Meinungen (gerade auch zu oben genanntem Buch).>> Ein Interessierter
Beim Cortex musst Du sehr genau unterscheiden zwischen Kern und POD. Der
Yiu ist die "Cortex Bibel," sehr viel genauere Informationen als dort
findest Du nur noch bei ARM selber. Wenn Du das Buch durch hast, weisst
Du alles 99% von dem, was Du über den Prozessor*kern* wissen musst.
Da aber ST nur ein Adapteur von Cortex Kernen ist, wirst Du über
konkrete Peripherie von ST (oder Anderen Cortex PODs) Prozessoren nur
wenig finden, genauso zum Thema Ökosysteme, Abstraktionen, IDEs etc.
Dafür musst Du auf Andere Quellen ausweichen. Mein Buch wird für Dich
vermutlich eher uninteressant sein (Du könntest Kapitel 2 und 10
getrennt runterladen, dort setht der Cortex im Fokus).