I need to capture several I2c packets, each with a start - data - stop sequence and
with as much as 100mS delay between packets, at 400KHz. The sequence lasts for as much as
2 to 3 seconds. Is this possible with the logic sniffer?
So far the best I have been able to accomplish is the capture of 1 packet at which point the LS stops
capturing and dumps the data to the PC.
Any help would be greatly appreciated.
[quote author="twgray"]I need to capture several I2c packets, each with a start - data - stop sequence and
with as much as 100mS delay between packets, at 400KHz. The sequence lasts for as much as
2 to 3 seconds. Is this possible with the logic sniffer?
So far the best I have been able to accomplish is the capture of 1 packet at which point the LS stops
capturing and dumps the data to the PC.
Any help would be greatly appreciated.[/quote]
Should be possible. You need to setup for "RLE" mode. That will only use memory when an actual transition event is detected. Well, there is a limit to the amount of time it will wait for an event before storing anyway. It goes something like this; let's say you have it configured for 8 channels and none of those 8 channels are changing hi/lo. After 128 internal sampling clocks, the counter rolls over and one memory slot gets consumed with the current state of the 8 lines and then it again waits for a transition on one or more of the lines, limited by the max 128 internal sample clocks. If any of the lines does transition, then the state of the 8 lines immediately get stored into a memory slot.
With 8 channels, one channel gets used for RLE management, while the other 7 are for data. The counter-intuitive thing is that if you configure for 24 channels, the count roll-over occurs at 2^23 counts instead of 2^7 counts for 8 channel mode. So, choosing 24 channel mode, would net 8388608 counts at 100 MHz (200 ns) yielding 83 ms per roll-over. I don't remember off the top of my head, how much total storage there is in 24 channel mode, but I'm sure that it's more than a few seconds worth at 83 ms per roll-over worst case.
The only strange thing you'll notice in RLE mode is that once the trigger condition has been detected, the acquisiton will not end until all of the memory has been used, which may take longer most people are expecting. Easy way to tell how much recording time you'll get, is to keep all channels quiet with no transitions being detected and start an acquisition to see how long before it completes.
update here:
In 8 channel mode with RLE, you get a max capture time of 15.36 ms at 100 MHz. That's off by a factor of 2 from what I expect from a theoretical standpoint, but ok. In 16 ch mode with RLE, you get a max capture time of 1.96 seconds. In 24 channel mode with RLE, you get a max capture time of some 251.6 seconds. These numbers assume that no channels actually undergo any hi/lo transitions, since each such transition will consume an add'l byte, word or dword of storage from the total of 24K bytes available. Keep in mind that in 24 or 32 channel mode, there are only 6K slots (24K bytes) of storage available. So, the total number of transitions expected in the waveform will consume one slot per transition and the timer overflow will consume one slot per 41.9 ms for 24 channel mode or one slot per 10.7 seconds for 32 channel mode.
So, you tradeoff max quiescent capture time for more transition event storage. If you go with 32 channel mode, the max quiescent capture time with RLE is an astounding 17.8 hours.....assuming no transitions during that time of course. All of the times quoted here assume that you're sampling at 100 MHz. If you don't need that high of a sample rate, then the times will be extended inversely proportional to the sample rate ie; at 10 MHz 32 channel mode would give a stupendously long 178 hour total acquisition time, not counting any actual transitions.