Forum: Mikrocontroller und Digitale Elektronik STM32: Prüfen, ob korrekte MCU


von Walter T. (nicolas)


Lesenswert?

Guten Morgen,

gibt es eine einfache Möglichkeit, festzustellen, auf welche MCU eine 
Firmware geflasht wurde? Konkret will ich einen 64-pinnigen STM32F446RE 
von einem 100-pinnigen STM32F407VET unterscheiden können.

Momentan ist die einzige Variante, die mir einfällt, die folgende: Bei 
nicht-existierenden Pins wird das Eingangsregister immer als Null 
gelesen, egal wie das Ausgangsregister und die Pinkonfiguration 
eingestellt sind. Das habe ich durch ausprobieren festgestellt. Was das 
Reference Manual dazu sagt, muß ich noch prüfen. So ließe sich zumindest 
die Pinzahl prüfen. (Für meine Zwecke reicht das.)

Gibt es noch eine andere -eventuell sinnvollere - Möglichkeit?

von M2M (Gast)


Lesenswert?


von Walter T. (nicolas)


Lesenswert?

Aus der Doku der HAL-Library:

"This is supported in STM32F446 and newer and STM32F7xx. On others, 
HardFault may occur"

https://stm32f4-discovery.net/hal_api/group___t_m___i_d___macros.html#ga09814398e25cac76cf4fb9f6499425b7

Ich glaube, da ist meine Methode noch geringfügig weniger intrusiv. Aber 
es ist gut, zu lesen, daß die Frage nicht weit hergeholt ist, sondern 
sich schon Library-Hersteller damit beschäftigt haben.

von A. B. (Gast)


Lesenswert?

DBGMCU_IDCODE-, Flash size- und Package data register (s. jeweiliges 
RM).
Die muss man (da ggf. Adressen unterschiedlich) halt für alle in Frage 
kommenden Varianten abklappern.

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.