Using Beagle board as external trigger for ChipSHOUTER

Hi,
I want to trigger my ChipShouter through the ChipWhisperer using the trigger output from a Beagle USB 5000 V2. I hooked the Beagle using Out4 to pin 16 (tio4) on the Target-IO port on my CWLite (and ground to ground). Beagle is sending an active high signal which I can verify on my oscilloscope. The ChipShouter is connected through the SMA connector with the glitch output of the ChipWhisperer.

I used the python library to setup my scope like this:

cwlite Device
gain =
mode = low
gain = 0
db = 5.5
adc =
state = False
basic_mode = low
timeout = 2
offset = 0
presamples = 0
samples = 24400
decimate = 1
trig_count = 2428084156
clock =
adc_src = clkgen_x1
adc_phase = 0
adc_freq = 96000000
adc_rate = 96000000.0
adc_locked = True
freq_ctr = 0
freq_ctr_src = extclk
clkgen_src = system
extclk_freq = 10000000
clkgen_mul = 2
clkgen_div = 1
clkgen_freq = 192000000.0
clkgen_locked = True
trigger =
triggers = tio4
module = basic
io =
tio1 = serial_tx
tio2 = serial_rx
tio3 = high_z
tio4 = high_z
pdid = high_z
pdic = high_z
nrst = high_z
glitch_hp = False
glitch_lp = False
extclk_src = hs1
hs2 = glitch
target_pwr = True
glitch =
clk_src = clkgen
width = 10.15625
width_fine = 0
offset = 10.15625
offset_fine = 0
trigger_src = ext_single
arm_timing = after_scope
ext_offset = 0
repeat = 1
output = glitch_only

But the CW is not triggering the CS. Which configuration of the CW is wrong?

Hi,

You’ll need to enable either glitch_hp or glitch_lp to actually see anything on the glitch output of the ChipWhisperer. Also, not sure if you’ve accounted for this in your glitch setup, but the ext_single setting requires the ChipWhisperer to be armed before each glitch. Setting trigger_src to ext_continuous instead will trigger the glitch every rising edge of the trigger.

Let me know if that resolves things,

Alex

Thank you for your helpful reply.

Unfortunately this does not fix my problem. Maybe I do something fundamentaly wrong here.
Here is my full setup for the CW:

import chipwhisperer as cw

scope = cw.scope()
scope.glitch.output = “glitch_only”
scope.io.hs2 = “glitch”
scope.glitch.trigger_src = “ext_continuous”
scope.glitch.output = “clock_xor”
scope.glitch.clk_src = “clkgen”
scope.trigger.triggers = ‘tio4’

scope.io.glitch_lp = True
scope.arm()

Hi,

Can you try the following settings?

scope = cw.scope()
scope.default_setup()
scope.glitch.clk_src = "clkgen"
scope.glitch.output = "enable_only"
scope.glitch.trigger_src = "ext_continuous"
scope.io.glitch_lp = True
scope.trigger.triggers = "tio4"

A few notes about this setup:

  • scope.default_setup() will set the ChipWhisperer’s clock to 7.37MHz, and scope.glitch.output = "enable_only" will make it so a glitch will keep the glitch port low for a full clock cycle.
  • The trigger will be active low coming out of the ChipWhisperer

Alex