Differentiate between different triggers

Hi everybody,

I designed some custom target for a MCU and currently having the problem, that I can’t use the predefined U(S)ART pins to go into the CW.
So, I guess there is no chance to use the simpleserial.

The goal is to glitch some complex computation, so I was thinking about doing the following in abstract:

TARGET:

  1. set trigger high
  2. to some computation
  3. set trigger low
  4. check if computation is erroneous
    4.1) if it is, set GPIO3 high

CW:

  1. Waits for glitching trigger
    1.1) Glitch on trigger high
    1.2) Afterwards checks gpio3 (attempt to glitch successful / failed)

Well, I just found out the hard way you cant use the GPIOs as inputs to the CW.
So, I was searching around and found, that there may be a workaround in using the scope.trigger.triggers() to combine gpio4 (real trigger) and gpio3 (success indicator) with some logical combination:

How would you then at the CW side differentiate between both these events, as both simple trigger the CW-Lite.
Is it somehow necessary to disarm the CW in between?

I hope someone finds the time for a short reply.

Cheers mates!
Bemifo

Hi Bemifo,

You should be able to read the GPIO inputs (only 1-4) via scope.io.tio_states, as per the documentation: https://chipwhisperer.readthedocs.io/en/latest/api.html#chipwhisperer.capture.scopes.cwhardware.ChipWhispererExtra.GPIOSettings.OpenADC.tio_states.

You can read the state of the trigger by scope.adc.state. You don’t have to worry about disarming the ChipWhisperer after the first glitch.

Alex