SDS 1104X-E SPI decode erratic - Page 1
Forum section: electronics / testgear

author: dige
author_rank: Contributor
timestamp: October 30, 2021, 06:05:07 pm
content: I seem to have gotten the correct SPI decode working, I used it all day yesterday, it was displaying correct hex values. Today, SPI decode simply won't display. After powering off the scope, using autoset, and redoing the SPI signal setup, the decode came back. Now it won't display again. I have not yet been able to trigger on a SPI byte successfully, but that will be the next thing I post about.I have all SPI channels thresholds set to 1.6V. SPI decode display is on. I am triggering on MOSI edge and using the SPI decode function. Why won't it decode the bytes? I need to use SPI decode whenever I need it.I need to use the history function. Based on the max frames in page 165 of the user manual, I set the memory depth to 7k. History will sometimes show 30 frames and other times 1 or 4 frames. Why is this?I am concerned I am not using the correct tool for SPI decoding. I appreciate your pointers.Edited to add: Each SPI transaction is between 1-8 bytes. The SPI is 1MHz.

author: Performa01
author_rank: Super Contributor
timestamp: October 31, 2021, 05:32:43 am
content: Your description doesn't make much sense to me - maybe you could provide a screenshot or two?it's a bit unusual to trigger on MOSI - it would be more common to use a falling edge trigger on CS~ for triggering. But okay, this should not be a problem.if you set 7 kpts memory length, then you should be able to get more than 1800 history frames. Of course you need to have the scope running long enough so that this number of records can be captured in the first place.if you set only 7 kpts memory length, you have to watch your sample rate! Depending on the timebase setting, this could be too low for proper decoding. Five times the SPI clock is the bare minimum for reliable operation. A little more is even better. So I would aim for no less than 10 MSa/s for the 1 MHz SPI signal. That in turn means no timebase settings slower than 50 µs/div - for an 8 byte message at 1 MHz a setting of 10 µs/div should be appropriate.

author: dige
author_rank: Contributor
timestamp: November 02, 2021, 08:20:54 pm
content: Thank you for your reply and explanation. The SPI decode is displaying correctly now but I am not able to capture more than 9 frames history.

author: Performa01
author_rank: Super Contributor
timestamp: November 02, 2021, 08:35:28 pm
content: As I said before, you should be able to get more than 1800.It is just that I cannot think of any setting that would limit the number of history entries. For Sequence Recording you can set the number of frames, but not for history. That leads me to the inevitable question: are you absolutely sure that you are really generating more than 9 frames in a row?

author: rf-loop
author_rank: Super Contributor
timestamp: November 03, 2021, 09:20:49 am
content: If SDS1104X-E is currently using 7kpts memory length*), history buffer max is 3912 frames and also if use Sequence mode max is same 3912.*) if you have selected 7kpts Mem Depth in acquire menu it need of course remember it is maximum.If example set is max 7k and (both channel groups in use)from 100s/div to 1us/div memory length is 7k and max segments / frames is 3912.More detailed, with 7k memory max limit, 1-5ns/div max is 80000 frames (segments), then 10ns/div 77026, 20ns/div 65667, 50ns/div 45526, 100ns/div 29140, 200ns/div 16943, 500ns/div 7510, 1us/div 3912 and then continue same down to 100s/div.If you can not get more than example 9 frames, reason is somewhere but not scope history buffer limits, something is perhaps wrong in signal or scope settings but it need knowledge how scope really work and it need knowledge about whole timing in your data stream what you want record and analyze.In normal mode acquisition works in burst mode. It can capture sequentially quite fast but then every 40ms it keep pause and in this pause it do not listen signal. If just in this pause time there exist trigger event in signal, oscilloscope do not know anything about it. Same also between all acquisitions but inside burst, blind time is much smaller.In fast Sequence mode it works quite different compared to oscilloscope normal fast or slow acquisition mode. There it can capture with constant speed without extra pauses.ETA: table small error corrected in interleving mode part (14k/14k/1.4M/14M)As can also see there can be up to 54M for 1 channel (much more than just 14M) in history (or in sequence) and up to 109M in history (or in sequence) for 2 to 4 channels depending t/div and one segment size.

author: Kean
author_rank: Unknown
timestamp: November 03, 2021, 12:18:30 pm
content: @dige People here would be able to help a lot more if you didn't keep starting new threads so they can see the context of your questions. Each time someone replies the topic gets bumped to the top of the forum for visibility.

author: dige
author_rank: Contributor
timestamp: November 04, 2021, 01:40:39 pm
content: rf-loop-- many thanks for your post. I finally have come to understand that though 11 frames are being captured, this includes multiple SPI transactions in one frame. I do have the max segments now matching the max frames. At 7K memory depth and 5MSa/s, this is 1891 frames. I have the time div set to 100 us/div. I will need to learn how to transfer this history to the computer for easier viewing.Is there a way to transfer this frame history with SPI decode to the computer for better viewing?