Philipp L. schrieb:
Zum SWD/JTAG:
Links (z.B. bei Connectivity) sehe ich allerdings kein JTAG.
Schau mal unter SYS nach.
Die Cube IDE erstellt standardmäßig Code, welcher SWD und JTAG deaktiviert. Wahrscheinlich willst du aber eine der beiden Schnittstellen aktiviert lassen, um dein Programm zu debuggen. Falls du unsicher bist, aktiviere nur SWD.
Zum I2C:
Philipp L. schrieb:
Man darf scheinbar PB5 nicht mit einem Input belegen, wenn auf PB7&PB8
I2C liegt. Es muss doch irgendwo dokumentiert sein, was ich alles
nicht belegen darf wenn auf PB7&PB8 I2C liegt.
Ich frage mich nun, wo ich diese Abhängigkeiten nachlesen kann.
Bei ST immer im Datasheet des Mikrocontrollers, welches man stets zusammen mit dem Reference Manual lesen muss. Eigentlich ist das Reference Manual die Haupt-Doku, aber im Datasheet stehen die spezifischen Details der unterschiedlichen Chips aus der jeweiligen Serie. Die elektrischen Daten, Anzahl der Pins und deren Mehrfach-Belegung variiert nämlich innerhalb der Serie.
Dokumente zum Mikrocontroller:
https://www.st.com/en/microcontrollers-microprocessors/stm32wb55vg.html#documentation
Dokumente zum Modul:
https://www.st.com/en/microcontrollers-microprocessors/stm32wb5mmg.html#documentation
Auf beiden Seiten ist der Link zum jeweiligen Datasheet ganz oben links in rosa. Weitere Dokumente findest du weiter unten auf den Seiten.
2023-01-15_13-56.png ist ein Screenshot vom Datenblatt des Mikrocontrollers. Es zeigt die Pinbelegung der drei unterschiedlichen Gehäusegrößen. Du hast konkret den STM32WB55VGY, das ist die 100 Pin Version. Ich denke das ist die Tabelle, die du gesucht hast.
Beim Verstehen der Dokumente von ST besteht die Kunst darin, die wichtigen Infos zu finden und miteinander zu kombinieren. Diesbezüglich sind die Dokumente von ST völlig anders strukturiert als die von Atmel. ST schreibt fast nichts zweimal hin und spart auch an Querverweisen. Beim Lesen von diesen Dokumenten benutze ich sehr oft die Volltextsuche.
Schau dir in den Screenshots an, wie ich anhand der Volltextsuche zuerst im Datenblatt, dann weiter im Reference Manual, die Belegung von PB5 untersucht habe. PB5 hat die alternative Funktion I2C1_SMBA. SMBA sagt mir nichts, also schaue ich, was es dazu zu finden gibt. Offenbar hat SMBA mit einer optionalen Funktion von I2C1 zu tun, die du nicht verwendest, also ist PB5 in Ordnung (denke ich).
Ähnlich geht es mir mit allen anderen Pins, die in der Fehlermeldung genannt werden. In der grauen Box mit der Fehlermeldung meckert er lauter Pins an, die unten in den "GPIO Settings" vom I2C1 gar nicht benutzt werden. Es ist mir nicht gelungen, heraus zu finden, wo diese Fehlermeldungen her kommen.
Ich finde diese Konfliktabhängigkeiten aber leider nicht.
Ich auch nicht. Da es offenbar nicht dokumentiert ist, und ich solchen Sonderlocken bei STM32 bisher auch noch nicht begegnet bin, scheint es sich um einen Bug in der IDE zu handeln.
Kannst du mal deine *.ioc Datei posten, damit ich dein Problem reproduzieren kann und damit ich alle relevanten Einstellungen sehen kann?
Philipp L. schrieb:
von den Atmegas kenne ich keine Pin-Konflikte.
Die gibt es da ebenso. Zum Beispiel kannst du den bei einem Arduino Nano/Uno Board die Pins PD0 und PD1 nicht als general purpose output benutzen, wenn der UART eingeschaltet ist. Nur hast du da keine IDE, die dir das so schön bunt in der Form anzeigt, wie es die Cube IDE tut. Im Arduino Umfeld nutzt man da eher die bunten Pin-Diagramme wie dieses: https://www.researchgate.net/profile/Mohammed-Therib/publication/312372376/figure/fig10/AS:450882367168521@1484510141868/Atmel-MCU-ATmega328-and-the-Arduino-pin-out.png