I'm new to using this scope (PicoScope 3406D), and seem to be having issues with missing trigger events. I'm capturing serial data using an advanced edge trigger or a simple edge trigger.
Most of the time, this works great.
However, I occasionally see the scope start capturing in the middle of a data stream, and I'm not sure why.
When this occurs, some serial data is lost (not captured in the buffer) at the beginning of the data stream - I'm not understanding why the scope is not actually triggering until a dozen or so events that match the trigger criteria. In the attached image "LateCapture", why aren't the earlier rising edges causing a trigger?
Change the pre trigger from 50% to 5% or so.
Use longer timebase so you catch the whole message
Make sure you have at least 5 samples per bet (preferred 10 samples per bit)
The bit rate is 250kb/s, so 1/250,000 sec/bit, or 4 microseconds per bit. 10 samples/bit would be a sampling rate of 10 samples/4 microseconds = 2,500,000 samples/s or 2.5 MS (aka 10x 250k). I made it 4 MS just for make sure.
I can increase the timebase, but each data frame is only 600 microseconds (around 128 bits). The picture I uploaded in the first post contains multiple frames. Here is a single frame (I added a serial decoder, which is a nice feature):
I can reduce the pre-trigger to a much lower percent, but it still seems like I'm missing trigger events sometimes-the scope triggers halfway through the data frame, which I still don't understand. Even if I make the pre-trigger as close to 0% as possible, if the scope doesn't trigger on the first bit, that data gets lost. I also lose some data occasionally at the end of the buffer (if the buffer ends during data transmission). Not sure I can do much about that, but is there a way to make sure the trigger occurs every time on the "first" signal that meets the trigger criteria?
For example, in this picture there are three full frames, and the end of a previous frame at the beginning. I don't understand why the scope triggered in the middle of a frame, and not before?
The decoding and the transferring of data takes time.
If there is data on the bus during decoding and transferring to the PC you will start halfway a message.
What I usually do is disable decoding during capturing and enable it after I have all the capturing done.