Thanks for taking the time to answer my questions. This was very helpful. Your one comment
Data points over USB are always uncalibrated.
was going to be my next question.
I am curious why the need for a valuesperfrequency. Was the thought that holding steady at each frequency yields a higher throughput because you don't need to wait for the system to settle? I was thinking I would just read the whole data set multiple times if I wanted to average.
The whole idea of a free running system is fine. Had you thought about using some sort of index (starting frame) followed by the data without sending up the frequency for each sample? It would seem like you could improve on the throughput removing this data but then again, it may help the software keep in sync when using the valuesperfrequency.
Hope to really put in some effort in a few weeks. For now, I'm just trying to understand enough to give me an idea how to code it. If you do decide to change the firmware (add a READ8 or just a generic READn commands, other), if you are posting this somewhere, it would be good to know ahead of time.
You should have your company make up some decals for them to bling them out a bit. I keep thinking to letter mine but if you are planning to come out with something I would wait.
***
Trying it at 500MHz, 100 points, 1 sample per point, it does seem to sweep in about a half second. Is the slow sweep rates due to settling time or other hardware or a limitation of the USB bus?
When using the valuesperfrequency >1, if you collect all the sweeps and perform the average for each discrete point and download it once rather than having the PC perform the average, would this be faster?
It looks like mine is about a -10 dBm at 100MHz and -20 at 4GHz. Any idea what the compression is at the two extremes? Any way to adjust the level?
It appears I can program the frequency up to about 4.6GHz I assume I could run it up this high with a very reduced performance as long at I use this as the stop frequency, or is there something that would prevent it?
Is there any sort of diagnostic information that can be queried over USB?
****
You have a ReadFIFO command that accepts an address and one byte for the number of values. However SweepPoints is a uint16. So, to pull down the entire sweep could require several reads which are all out of sync? So after some chance, we have the full amount of data for a sweep but really don't know which sweep which segments went with?
I just tried the ReadFIFO command telling it to read a single sample. Each time I do this, the index increments. I would assume doing this slower than the sweep time would cause each value to be from a different sweep. From your last post, this would seem to be the case but I just want to make sure I understand it.
Looking at the FIFO data format you define Bytes 1a..1f as reserved. However, it seems that the last byte may be a checksum for the packet. If this is a checksum, could you please provide how you calculate it?
Sadly, the official support group was locked for viewing messages so I joined hoping that others have already asked you similar questions. After joining, I didn't find a lot of details. If there is a better group where you have already covered these questions, just let me know.
Thanks again for your help.