I2C SDA Pullup Causes STM32G473xx Family to Lockup
I started a new project using an STM32G473CB in the QFN48 package. I've used this and other G4 chips for many other projects and never encountered this issue. This issue occurs with all 3 flash size variants (CB, CC, and CE).
I've replicated this issue using both STM32CubeIDE and CubeMX generated projects.
I have the basic project configured with PB3, PB4, PB5, and PB7 as outputs driving low current LEDs (issue occurs no matter the combination of these configured pins or connected LEDs). I'm using these just to show the processor running with the HAL_GPIO_WritePin function and HAL_Delay to create a blinky.
Everything is fine, until I solder the I2C1 pullup resistor to the SDA line assigned to PB9 (pin 47). When I do this, the program gets stuck inside of HAL_Delay. Digging deeper, the SysTick_Handler interrupt is never called, and thus the systick value remains on 0, causing the loop and the program "lockup". I have tried several resistor values, even going up to 10K to check if it's a strange power consumption issue, but no luck.
The program executes other functions correctly (it runs the initial GPIO write calls), but then hangs inside the HAL_Delay loop.
I have assembled a couple of boards, and tried multiple G473 chips on them, with the exact same result. I'm at a bit of a loss as to what could cause this. Does anyone have any ideas?
