Victim clock frequency

Hi,
I have a chipwhisperer Lite and an STM32F4 victim board. I am running my victim c code on a freq of almost 7 MHz. I am wondering if this is a fixed frequency i.e., can I increase the frequency of the victim board (and NOT the sampling) to a higher frequency e.g., 100MHz

Best,
Sou

The sampling frequency of the ChipWhisperer and the clock that it outputs are always linked. If you want to run the target at a different clock frequency, you’ll either need to use a clock external to the ChipWhisperer or use the target’s internal PLL to run at a higher frequency.

Alex

Hi Alex,
Thank you for the answer. I am not really familiar with it. Can you please guide me, to change it through the target internal PLL?
Best,
Sou

Here’s the code I’ve written before for the PLL. You can probably adapt that using the F4 reference manual and the documentation for the F4 HAL.

Alex

I can’t find the code.

Sorry, forgot to link: https://github.com/newaetech/chipwhisperer/blob/develop/hardware/victims/firmware/hal/stm32f4/stm32f4_hal.c#L47

Hello Alex,
I changed the PLL as the following:

#elif USE_PLL
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
RCC_OscInitStruct.HSIState = RCC_HSI_ON; // HSI is needed for the RNG
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; // we need PLL to use RNG
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 12; // Internal clock is 16MHz
RCC_OscInitStruct.PLL.PLLN = 98;//196;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;// it was 4
RCC_OscInitStruct.PLL.PLLQ = 7; // divisor for RNG, USB and SDIO
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
for(;;);
}

I want to have the victim board running on a higher frequencies. I assume the output frequency of my PLL is 64 MHz.

I removed the jumper on from tje J3
When I run the code I have the error:

WARNING:ChipWhisperer Target:Unexpected start to command: 
WARNING:ChipWhisperer Scope:Timeout in OpenADC capture(), no trigger seen! Trigger forced, data is invalid. Status: 0b
WARNING:ChipWhisperer Scope:Timeout in OpenADC capture(), no trigger seen! Trigger forced, data is invalid. Status: 08

Do you know what is the cause of this error?

Best

Another question: If I change the frequency (using PLL or external quartz crystal clock), is the sampling rate also on the same frequency?
I have seen in this forum that the chipwhisperer has always a synchronous sampling with the victim board frequency.

Best,
Sou

Did you change the baud rate so that it matches the new clock speed of the target? Also, you may need to play around with the clock for the device’s peripherals, as that sometimes has a lower max frequency than the core.

Synchronous sampling comes from the ChipWhisperer’s ADC and the target running off the same clock. If the clock is transformed inside the target, as with a PLL, this won’t do anything to the ADC clock. The two clocks should still have a synchronized phase though.

Alex

I changed the baud to 115200 for a frequency of ~64, but I still have the same error.