Hi, I inserted trigger_high() and trigger_low() to capture the traces for a portion of the code. But the trigger_low() did not appear to stop the capture. How to fix this?
trigger_high()
kicks off the capture; everything else about the capture is controlled by scope.adc
settings.
trigger_low()
only serves to bring the trigger line back low (so that it may be raised again later for the next capture). Also, ChipWhisperer counts how many cycles the trigger was high for, which can be useful - this is explained here.
We like to analyze the timing side channel associated with the power/current measurements. For example, if the code exists from a for() loop at different count of indexes, the code will execute a different number of instructions. If the trigger_low does not stop the capture, the capture is controlled by the number of samples in the scope.adc settings. Then how do we measure the “timing” difference? is there another way to let the board measure the “timing” difference? if we add another trigger_high() right after trigger_low(), will it trigger another measurement?
Yes with Husky; we teach how here: When do triggers occur? — ChipWhisperer Documentation
Great. Thanks for the link to the document. We figured it out how to get the timing difference using Husky. Thanks again for your help!