Forum: Mikrocontroller und Digitale Elektronik Mezzanine B-F446E-96B01A STM32F446VET6


von Neuling (Gast)



Lesenswert?

Hallo liebes Forum.
Ich habe mir das Board Mezzanine B-F446E-96B01A STM32F446VET6
erstanden als guenstigen Einstig in die Arm Programmierung, unter
anderem auch weil es diverse Sensore beinhaltet.
Ich dachte, daß es original von ST wäre, doch ich habe erst
danach herausgefunden daß dem nicht so ist. So habe ich erst
nach Installation der STM32CubeIDE gesehen, daß das Board selber
nicht enthalten ist. Nach Wahl der richtigen MCU konnte
ich einfaches wie die LED ansteuern und auch den Button abfragen,
aber ich kann keine serielle Ausgabe über den STLink schicken
wie es original war. Bei Auslieferung war das so, daß es über
USB Port einerseites ein Laufwerk am Computer angezeigt hat
und einen virtuellen Com Port hatte, über den permanent
Sensorausgaben übertragen wurden. Diese waren mit 115200 Baud.
Ich habe im MCU Selector in der Konfiguration alle Usart/Uart
aktiv gesetzt zum Testen um jeweils einen Teststring zu übertragen,
aber es wurde in HTerm nichts angezeigt.

Mir fehlen die Möglichkeiten, die seriellen Ausgabepins zu überprüfen,
um zu sehen, ob vielleicht nur irgendwo ein falsches Timing eingestellt
ist.

Die Sachen die ich gefunden habe waren Anleitungen von originalen
Bords, bei denen man durch die Board-Konfiguration einfach  Usart/Uart
aktiviert und dann auch eine Ausgabe erzielt.
(Wenn ich die Beschreibung richtig verstanden habe hätte das
der USART1 sein müssen, aber da passiert halt nichts)

Leider finde ich im Netz keine Art von "Musterlösung"  oder überhaupt
etwas das mir weiterhilft. Ich habe bewußt die IDE gewählt weil ich
kein Hardcoreprogrammer bin und dachte, daß die Umgebung vom
Hersteller die beste Wahl wäre was den schnellen und besten Einstieg
in die Programmierung angeht. Jetzt hänge ich aber schon zu Anfang.

Ich kenne mich nicht aus mit Keil oder anderen Umgebungen und habe
auch noch nicht die Kenntnisse um da in die Tiefe einzusteigen, so wäre
es sehr hilfreich wenn jemand wüßte was ich in der CubeIDE machen
müßte damit ich da wieder eine serielle Übertragung hinbekomme.

Da die GPIO generell ja funktionieren vermute ich das Problem irgendwo
zwischen der MCU und dem STLink und ich habe die korrekte Einstellung
dazu nicht gefunden.

Danke schon mal im Voraus

von Thomas W. (Gast)


Lesenswert?

Moin, -

ist doch alles da: Doku, Bewegt-Bilder, Getting started

https://www.st.com/en/evaluation-tools/b-f446e-96b01a.html

Viel Spass

Th.

von Thomas W. (Gast)


Lesenswert?


von Neuling (Gast)


Lesenswert?

Thomas W. schrieb:
> Moin, -
>
> ist doch alles da: Doku, Bewegt-Bilder, Getting started
>
> https://www.st.com/en/evaluation-tools/b-f446e-96b01a.html
>
> Viel Spass
>
> Th.

Hallo
genau das habe ich ja vorhin beschrieben daß das alles mir
nicht weiterhilft, das habe ich ja schon alles durch.
Irgendwo habe ich halt etwas noch nicht richtig verstanden,
darum ja die Frage hier.

von Thomas W. (Gast)


Lesenswert?

Moin,

aber der letzte Link 
https://www.96boards.org/documentation/mezzanine/stm32/files/hw-manual.pdf 
ist doch die komplette Hardware-Beschreibung.

Jetzt kannst Du mit STM32CubeIDE den Chip konfigurieren, programmieren, 
upload und (wenn noetig) debuggen. Dir steht das ganze Vollprogramm von 
ST zur Verfuegung (ist ganz schon viel).

LEDs sind PD10 - PD12, PD13 ein Taster gegen Masse.

Das ist natuerlich natuerlich keine Arduino-Loesung. Ein bisschen 
Einarbeiten (je nach Leistungsfaehigkeit und Vorwissen) und Du solltest 
nach einem Nachmittag (nach dem Tee) Serial I/O (polling, IRQ oder DMA) 
hinbekommen. Es gibt auch eine Unmenge an Tutorials (z.B. hier 
http://stefanfrings.de/mikrocontroller_buch2/index.html) oder, wenn Du 
Bewegt-Bilder bevorzugst: https://controllerstech.com/stm32/

Gruesse

Th.

von J. S. (jojos)


Lesenswert?

das Board wird auch von Mbed unterstützt, allerdings wurde es aus Mbed6 
rausgeworfen (könnte man sich aber einbauen).

Geht auch im Online Compiler, da muss man nichts installieren zum 
Testen, sich nur bei ARM registrieren.
https://studio.keil.arm.com/

Dann kann man ein neues Projekt anlegen, z.B. Example-Blinky, muss aber 
in der Auswahl aufpassen das es für Mbed-OS5 ist, nachträglich umstellen 
liefert Fehler.
Target auswählen, Kompilieren drücken und es spuckt ein bin aus das per 
Drag&Drop auf das Board kopiert werden kann. Debuggen könnte auch gehen, 
das soll jetzt auch klappen, braucht als Browser aber Chrome oder Edge.
Ausgaben über die VCOM dann einfach per printf() rausfeuern.

von Neuling (Gast)


Lesenswert?

Hallo

und danke für eure Tips. Für mich als Einsteiger sind sie
sehr hilfreich. Hoffe ich kapiere das auch alles noch.

von Neuling (Gast)


Lesenswert?

Hallo

hier nun die Lösung:

zunächst der Gedankenfehler, erstens weil mir die CubeIDE
fremd ist/war und die Prossessoren ebenfalls und ich dachte,
mit einer IDE müßte es ansich doch einfach sein.

Wenn man Nucleo Bords auswählt die im Boardmanager enthalten sind
und dann z. B. den UART4 aktiv setzt, dann funktioniert das auch
sofort mit der seriellen Ausgabe (dafür gibt es ja auch
genug Videos im Internet mit einem Code-Einzeiler dazu).

Das obengenannte Board ist aber nicht im Boardmanager.
Ich habe es über den entsprechenden Prozessortyp ausgewählt
und danach habe ich einfach alle UARTs und USARTs zum Testen
aktiv gemacht um zu sehen, wo eine Ausgabe erfolgt.
Also, alle UARTs und USARTs waren aktiv, aber nichts hat funktioniert.
Es hätte doch nach dieser Theorie irgendein Port eine lesbare Ausgabe
produzieren müssen?! Offenbar aber nicht.

Lösung: man wählt in der Pinout view die entsprechenden Pins aus,
im Falle des Mezzanine Boards
PC11 als UART4_RX und PC10 als UART4_TX

Vermutlich kann man also die Pins beliebiger setzen als ich
gedacht habe und als ich das automatisch hab machen lassen hat
er halt die besagten Pins nicht gesetzt.

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.