Forum: Mikrocontroller und Digitale Elektronik Literatur STM32F7/Keil


von ein Interessierter (Gast)


Lesenswert?

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)

von Gerald M. (gerald_m17)


Lesenswert?

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.

von Dr. Sommer (Gast)


Lesenswert?

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.

von Markus K. (markus-)


Lesenswert?

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.

von ein Interessierter (Gast)


Lesenswert?

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

von Markus K. (markus-)


Lesenswert?

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.html

ein 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.

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


Lesenswert?

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.

von ein Interessierter (Gast)


Lesenswert?

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

von Lothar (Gast)


Lesenswert?

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 :-)

von Hans (Gast)


Lesenswert?

Hallo,

die beiden Elektor Bücher sind Schrott. Vergiss es.

Ciao

von ein Interessierter (Gast)


Lesenswert?

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

von Ruediger A. (Firma: keine) (rac)


Lesenswert?

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).

: Bearbeitet durch User
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.