-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Milestone: Glitching and trigger library #11
Comments
Have you looked at chip whisperer at all? What do they do? |
I've used CW for power analysis, but I haven't considered looking into its glitch implementation for this project. The parameters the CW glitch module uses are:
Looks somewhat similar, would be good to keep them as compatible as possible so folks can port parameters between the CW and tl866. I like the idea of combining voltage / clock glitching like the CW does, so I will keep that in mind while working on this. |
Instead of scheduling voltage and clock changes in the main loop for glitching, the tl866a MCU has a few timers and counters which might assist greatly in implementing this with precision. ww1.microchip.com/downloads/en/DeviceDoc/39775c.pdf Section 12.x and onwards. |
Use primitives in io.c (potentially expanding on it if necessary), and make some code to handle triggering. Applications can be made with the library for more specific glitch routines for specific chips and applications.
Some parameters for a preliminary voltage glitching implementation:
Target pin to glitch (usually Vcc)
Nominal voltage
Glitch voltage
Pin to listen to for triggering (a data pin, might be worth abstracting this for parallel buses.)
Clock pin (user can use device's or add their own clock to a free pin)
Trigger type
Delay (in clock cycles from 'clock pin')
Duration (in clock cycles)
Need to measure and figure out how to deal with delays introduced when changing voltages of the target pin.
Working on this right now and this is still cooking, feedback would be appreciated.
The text was updated successfully, but these errors were encountered: