I'm using the 32b SDK for a 2204A to write a simple application in C++ that will test the response time of GPIO under various CPU loads.
The idea is to send a regular stream of signals to one GPIO input and the CPU will then echo an output on another GPIO. One to one if all goes well.
I need to measure any misses and delays that may happen under the various CPU loads.
My question is : how can I know when the 2204A signal is pulsed so I can accurately measure any delays/misses on the corresponding input?
I would greatly appreciate any help on this. Thank you.
You can't know when it was pulsed because there is no time-stamping in the PicoScope 2204A. However, you don't need to know the absolute time it was generated if your trying to measure the response time of a processor or controller. You just need to measure the difference in time between the original signal and the response.
One way to do that would be to have some idea of when the response is expected relative to when the original signal was sent, so that you can send the original signal to one channel, the response to another channel, and set the timebase to the appropriate length of time to be able to capture both signals over the expected delay time. Also, you should use a suitable Signal and Signal Period, or Signal Burst (with a fixed number of cycles) from the Signal Generator, with an appropriate length to (a) be recognised by the processor/controller GPIO, (b) trigger one scope channel and (c) be captured in the other scope channel as the regenerated signal from the processor/controller.
There are models with Time Stamping (specifically our 6000E series, which gives the date and time to one-second resolution), but it isn't possible to perform Time Stamping by data processing because you have no record of the absolute time the data was captured. You can perform 'Trigger' Time Stamping in more devices (3000D and 5000D series) which will give you relative Time Stamping (elapsed time of the block from the trigger point) but not in the 2204A.