2014-10-15 01:16 AM
Hello,
i've an application where an STM32F072 is connected to a GSM engine which provides an I/O voltage when turned on and expects no current flow over the I/O lines into the engine when off. Using Vddio2 for this purpose seems to be the right solution here. Questions: 1. Is there any possibility to detect whether or not a voltage is applied to Vddio2? According to the datasheet Vddio2 is connected to a comparator which generates an internal EXTI interrupt but AFAIK this can only be used to wake up the processor from sleep when a voltage is applied. Is it somehow possible to access the comparator output directly? 2. The datasheet also tells me that when Vddio2 is disconnected the hardware puts the I/O lines in analog input mode. Does this also change the corresponding registers? What happens when Vddio2 is (re-)applied? Do i have to (re-)initialize the I/O lines? 3. In case i wanted to use the comparator are there any other prerequisites than setting up the EXTI interrupt e.g. turning on the internal reference voltage? Thanks and best regards, Ralf #vddio22014-10-16 08:39 AM
In case someone is interested in this, i did some tests on a STM32F0-discovery board with the following setup:
- SB16 removed - PA12 pulled down with 47k - PA12 output toggeling with 1Hz - a jumper between VDDIO2 and VDD - oscilloscope probes on PA12 and VDDIO2 Startup (jumper open): - VDDIO2 = 0V, no signal on PA12 As expected... Jumper closed: - VDDIO2 = 3V, square-wave signal on PA12 Ok, no re-initialisation required... Jumper removed: - VDDIO2 = 3V, square-wave signal on PA12 Surprise, VDDIO2 stays at 3V without decline, forever (well i turned it off after 20 min, but still) So i changed the setup and moved the pulldown resistor to VDDIO2 and got the same result. Changed the pulldown resistor on VDDIO2 from 47k to 4k7 then to 470R, same result. Short circuit to GND finally gets VDDIO2 back to 0V. I'd really appreciate some comment from ST on this topic and the interna of this function. Thanks and best reagrds, Ralf2014-10-17 01:01 AM
> Surprise, VDDIO2 stays at 3V without decline, forever (well i turned it off after 20 min, but still)
Can't this be simply parasitic supply from other IOs connected to powered-up external devices (MEMS on the DISCO board)? JW2014-10-17 02:27 AM
Thanks, good hint. Decided to measure the voltage on all VDDIO2 supplied pins and found a short to Vdd on my prototype board. Now VDDIO2 behaves as expected.
Means that there must no voltage be applied on any of the pins in the VDDIO2 voltage domain when VDDIO2 is removed. Makes sense but wasn't really obvious to me.2014-10-20 05:45 AM
Back to the original problem of detecting whether or not a voltage is applied to VDDIO2 i discovered that the input value of SWDIO (pulled up by default) reflects the VDDIO2 voltage connection state (in default configuration, so no disabling of SWD interface required).
Works on STM32F072, don't know if this is true for other STM32 chips.