Skip to main content
David Koster
Associate II
April 13, 2026
Question

STM32WB05 - 1.8V supply IOs, 3.3V pullups. Clamped at 2.5V?

  • April 13, 2026
  • 1 reply
  • 155 views

I have a STM32WB05TZF6TR. All VCCs are running off 1.8V. I'm trying to use PA8 and PB5 with 3.3V 10k pullups. But the signals are being clamped at 2.5V. I had expected this not to happen, as they are supposed to be 5V tolerant. 

Does anyone know what's happening here? There's nothing connected to the pins besides the pullups. 


I have a bare STM32CubeMX project, with just this GPIO init:

void MX_GPIO_Init(void){
 GPIO_InitTypeDef GPIO_InitStruct = {0};
 /* GPIO Ports Clock Enable */
 __HAL_RCC_GPIOB_CLK_ENABLE();
 __HAL_RCC_GPIOA_CLK_ENABLE();

 /*Configure GPIO pin : PB5 */
 GPIO_InitStruct.Pin = GPIO_PIN_5;
 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
 GPIO_InitStruct.Pull = GPIO_NOPULL;
 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

 /*Configure GPIO pin : PA8 */
 GPIO_InitStruct.Pin = GPIO_PIN_8;
 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
 GPIO_InitStruct.Pull = GPIO_NOPULL;
 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}

 
Much appreciated,
David 

1 reply

Peter BENSCH
Technical Moderator
April 14, 2026

A 5V tolerant pin does not mean it can be pulled to 3.3V in every mode and supply condition. With the chip powered at 1.8V, the pin is probably being clamped by its protection structure at about: VDD+0.6...0.8V = 2.4...2.6V. So your ~2.5V reading is expected. If you want to avoid that, you should use a level shifter or an input current limit set by a series resistor.

Regards
/Peter

Ozone
Principal
April 14, 2026

You beat me to it ...

This 2.5V - 1.8V difference looks a lot like the average VF (forward voltage) of a p-n junction, probably a protective diode.