2024-02-07 10:17 PM - edited 2024-02-07 10:55 PM
Hello,
maybe someone has an idea or can share an similar experience. Since I'm currently in the evaluation phase for selecting an MCU for our new industrial embedded project. I want to inspect and analyze this problem, to be sure the used MCU is working fine and i can use it (STM32H735IGK6).
Issue:
Pushbuttons on different EXTI-Interrupt randomly fires twice or more times. Some GPIOs are effected, but not all, i have tested.
Setup:
Own PCB-Layout, 6 Pushbuttons, every one is debounced with 10kOhm and 10nF. Signal looks fine on scope, no bouncing can be seen with scope, absolutely clean signal.
Test 1:
apply a 200mHz sine-wave directly to the button pin. Expected behavior is: one interrupt on rising one interrupt on falling signal (due to the 200mV hysteresis on every input pin, as mentioned in datasheet). Behavior in RealLife: as soon as the voltage level on the pin reaches the switching thresholds of the input pin, i get lots of Interrupts (Rising and falling edge).
BUT now its getting freaky: if i turn off the running FMC access to an external RAM, instantly everything works as expected - only one single interrupt per transition.
Test 2:
same as above, but the FMC-access only bursts data every few seconds for approx. 250ms. Result: only, during FMC-access i get this accidential interrupts. (just to be sure: i checked the signal with the scope again: the waveform looks perfectly clean, without any noise, glitches, or something else)
I don't know if this can be an mcu-internal emc-issue or something like that, but fact is, if i enable the data transfer to the external RAM, the EXTI-Peripheral (or the schmitt trigger inside) gets extremely disturbed.
Of course, in this use case with buttons, a simple workaround is possible, but i also need a solution for other, more complex applications with combinations of FMC and EXTI (e.g. FPGA Communications, ...)
2024-02-12 08:40 AM
Hello @AZorn.1
Try to monitor the VDD supply during FMC to check for noise due to simultaneous switching noise (SSN).
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-13 01:23 AM
Hello AScha.3,
i like the idea, to measure the voltage of the pin, when it is configured as output, for checking the internal power rail of the GPIO Peripheral.
Compare GPIO driven LOW - without and with FMC-Active:
vs.
Compare GPIO driven HIGH - without and with FMC-Active:
vs.
noise is in both cases definitely more than nothing. The 3V3-supply-ripple, the noise on the pin and the noise on the power-rails in sum is with sure not that far away from the 200mV Hysteresis of the GPIO-Pin. Most of the noise effects the chip internally, so i think, with better filtering, or better layout you can't reach a really safe design with this mcu as long as the schmitt trigger hysteresis is that low.
You are right, that the 0.3 to 0.7xVDD (in my case 3.3V * .4 = 1,3V) - undefined area for digital pins is much higher the the 200mV Hysteresis, but if this sum of noise is the problem of this/my issue, wouldn't it be better to have higher Schmitt Trigger hysteresis (e.g. 500mV or even more)? Why isn't it designed higher?
I have never paid so much attention to a GPIO evaluation as I did with ST now. And I didn't need it either.
2024-02-13 02:02 AM - edited 2024-02-13 02:06 AM
Hi @AZorn.1 ,
I see about 10mVss + 50mVss with FMC on gnd ; i am little bit surprised - i expected more. :)
Is cpu setup with slow/medium pin speed or hi ..? Would be interesting, to see "gnd " with highest pin speed , to compare effect.
+
btw Where is this 30kHz ripple on vdd coming from? smps supply ?
+
Which pin/port is tested ? + on which group is FMC ?
Because cpu internal ground is not same on all digital ports + analog group (just guessing here).
Maybe @STOne-32 could tell us about internal ground - if he likes...
+ see my last problem with a pin on H743 ->
2024-02-13 02:09 AM
Hello,
2024-02-13 03:40 AM
Just to make sure:
scope measurements are done without the ~10cm GND clip, but with the ground / spring / tip directly besides the "hot" contact?
2024-02-13 03:50 AM
@LCEyes, with the spring-tip, to have GND loop as small as possible.
:thumbs_up:
2024-02-13 04:30 AM
Ah, spring-tip is the official name? Never used that in english... :grinning_face_with_sweat:
2024-02-13 05:25 AM
Hi @AZorn.1
Can you store PB12 IDR values in an array with a while loop and see if it matches with the unexpected EXTI firing ?
You said that the 30KHz noise on your VDD is coming from SMPS. It is an external SMPS providing 3V3 to the MCU ?
Can you provide MCU VDD from another source for test purpose
Can you make sure there is enough decoupling on VDD as mentioned in HW getting started Getting started with STM32H723/733, STM32H725/735 and STM32H730 Value Line hardware development - section 9.3?
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-13 08:38 AM - edited 2024-02-13 08:39 AM
sorry for my partially google-translated way of writing here.
What would you name this item:
2024-02-13 08:43 AM
I was rather laughing about myself, I think "spring-tip" is pretty good.
I would call it "Probe-Kontakt-Feder", beautiful "Denglisch". ;)