Page 1 of 1

STM32L431CBT6 and low power design

Posted: Thu Nov 21, 2024 2:02 pm
by dotnetderpderp
Hi, folks.

If this is not an appropriate place for this, please let me know and I'll take it elsewhere.

I'm currently putting together a project to hopefully be as low power as possible. I've settled on the STM32L431CBT6. I've a number of I2C sensors that I'll be utilizing (SHT45, SGP41, BMP390) and driving an SPI ePaper Display (Good Display, GDEY0213B74) and incorporating their charge pump reference design in their datasheet.

I'm still in the schematic-design phase.

All of that aside, I've a few questions in regard to Stm32Duino:

1) CubeIDE allows setting up SPI as Transmit Only Master. The ePaper SPI display does not utilize MISO, so this would be the way to go regarding CubeIDE. From what I've been able to find, Stm32Duino does not support this mode. I will not be pin constrained, so I've no need for reassigning this pin, however, what is the best way to deal with the now floating MISO pin? 10K pullup to VCC? Something else?

2) How does one disable peripherals that will not be utilized? The Wiki states that the ADC is a peripheral, "which can be disabled." Is there any need to disable the peripheral prior to going to sleep for power saving reasons... and then re-enabling when the uC wakes up for a quick measurement?

3) As I'm still in the schematic design phase, and to reduce board components, I was hoping to omit the BOOT0 circuit as referenced in the AN4555 appnote. Based on the datasheet, and as I'm using the STLinkV3 and the CubeProgrammer via SWD, I would just need to tick nBOOT0 to '1' to boot from main flash. Is this correct?

4) Finally, in regard to the reset circuit also references in AN4555, I don't really see a need for an external button to reset the uC. I would imagine all I need to do is route this (with a 100n cap next to the uC pin) to the STLINK/SWD header RESET pin directly as the pin already has a weak pullup from the uC?

I'll also be using the Stm32Duino low power library and the uC will spend the vast majority of time in deepSleep mode, only waking up every 10-15 minutes for sensor/ADC readings.

Thank you for your time and expertise.

Re: STM32L431CBT6 and low power design

Posted: Fri Nov 22, 2024 6:02 am
by ag123
for stm32 peripherals, if they are not clocked, it is inactive. They would simply 'not work'.
stm32duino to help new users who may be unfamiliar with the platform normally would setup and clock quite a number of peripherals e.g. adc, gpio, uart etc so that new users won't stumble and think they don't work.

if you prefer to 'disable' (deactivate) some peripherals, you may need to work through the core codes installed locally review how the clocks are setup e.g. in

Code: Select all

void SystemClock_Config(void)
and the individual modules e.g. search in the codes for where they are initialized and perhaps comment them out to avoid initialization