Reset state of certain GPIOs in STM32G431x has unknown behaviour(s)
Hi everyone,
I am currently migrating from STM32F303x to STM32G431x microcontroller (48-pin package) and started testing the GPIOs in reset state, without any firmware on-board. Also, there are no external HW circuitries connected to the pins (I meantioned in my description below). The power pins are connected with voltage supplied from a 3.3V LDO, without any high noise on the lines.
The NRST pin is connected to GND with a 100nF capacitor.
I observed some strange behaviour which I could not get an answer from the datasheet/application note/presentations and I would like to post here and get some answers, possibly.
- PA2 is tied to VDD and has alternate function of UCPD1_FRSTX. Why is it tied to VDD?
- PA5 "controls" the state of PA6. Whenever PA5 is HIGH, PA6 goes HIGH. PA5 has alternate function of UCPD1_FRSTX but PA6 has no connection with UCPD peripheral. Why such behaviour happens?
- PA6 is tied to VDD. Why is it tied to VDD?
- PB14 has, by far, the most strange behaviour. It is tied to VDD and has no special alternate function (other than UART, SPI, TIM, COMP). It always complements the state of PB12 i.e., whenever PB12 is HIGH, PB14 goes LOW and vice versa. Apart from this, PB14 has a strange relationship with PB13. Whenever the state of PB13 changes (LOW -> HIGH or HIGH -> LOW), the outcome is unpredictable on PB14. It might not change its state, or it might change its state (permanently/temporarily). This is completely strange and would love to get some thoughts on it.
- PA9 is tied to VDD (10 ohms) and it can be because of the UCPD_DBCC1 alternate function. According to RM0440 (section 46.4.6), this pin should be tied to GND when it is not required. However, the current consumption shoots up when this pin is short to GND (>60 mA). This is not the case with PA10, which has UCPD_DBCC2 alternate function. It has an internal pullup of 40k, so I can short it to GND pretty easily. Why such behaviour happens?
The following documents were referred before I posted the question here.
- https://www.st.com/resource/en/datasheet/stm32g431cb.pdf
- https://www.st.com/resource/en/reference_manual/rm0440-stm32g4-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
- https://www.stmicroelectronics.com.cn/content/ccc/resource/training/technical/product_training/group0/33/d9/62/8f/29/26/43/df/STM32G4-Peripheral-USB_Type_C-Power_Delivery_UCPD/files/STM32G4-Peripheral-USB_Type_C-Power_Delivery_UCPD.pdf/_jcr_content/translations/en.STM32G4-Peripheral-USB_Type_C-Power_Delivery_UCPD.pdf
- https://www.st.com/resource/en/application_note/an5093-getting-started-with-stm32g4-series--hardware-development-boards-stmicroelectronics.pdf
- https://www.st.com/resource/en/application_note/an4899-stm32-microcontroller-gpio-configuration-for-hardware-settings-and-lowpower-consumption-stmicroelectronics.pdf
- https://www.st.com/content/ccc/resource/technical/document/application_note/group1/87/f0/7b/96/37/cf/49/b8/DM00442720/files/DM00442720.pdf/jcr:content/translations/en.DM00442720.pdf
I might have missed something from these references. It will be great if you can provide me some insights into them. Thanks!!