STM32L100 as a target

Hi all,

I’m building a new target for ChipWhisperer (Lite) that uses an STM32L100 device (Cortex-M3 device).
The quality of the trace is a bit lower than the XMEGA target. Maybe you guys have some ideas on how to fix this.

This is the schematic of my target board.

The measurements are done via X-GLITCH SMA as it has “better” results.

This is a capture of the firmware that runs a bunch of nops in a loop (~80 nops per iteration).


Overall, the synchronization seems quite good: the peaks shape align well on X and as well on Y axis. However, there are some peaks that appear with a certain frequency (around 500kHz) with a /random/ offset. What could be the cause of this?

My initial guess was that there is a clock involved into this, for this I tried disabling every clock/timer on the STM32L100, the peaks are still there. Looking at the clock tree (Figure 15 in the TRM) of STM32L100 and playing with various software configs, I was able to conclude the frequency of “misterious” peaks is proportional with the AHB prescaler. Changing the APB1 prescaler doesn’t make any difference, nor does the APB2 prescaler. I also made sure that SYSTICK (Cortex M3) is disabled as well the DMA engine. I also disabled the clock output of the STM32L100 (MCO). The peaks are no longer present when the device sleeps (of course it is a bit useless, but wanted to make sure that there is no external noise).

As I’m running out of ideas I will just consider these peaks as noise, but it would be interesting to see what could be other source of this “noise”.

The TRM for the STM32L100 is here: http://www.st.com/resource/en/reference_manual/cd00240193.pdf.

P.S. I confirmed the traces with a scope as well, but cannot upload it now as there is some limit on the number of images being posted.

Thanks,
Lucian

Hi Lucian,

It’s really cool to see someone building a new target from scratch!

This doesn’t answer your question, but one way to deal with this noise is to work around it with some processing. The ChipWhisperer Analyzer has a “Digital Filter” preprocessing module that you could use to deal with this noise - a low-pass Butterworth filter with a pretty high cutoff frequency should knock out the spikes without ruining your traces.

Hopefully someone else can help you get to the bottom of this…