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.
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.