| Products > Test Equipment |
| Arbitrary Waveform Generator with fast edges in ARB mode |
| (1/7) > >> |
| _pat_:
Hello all! I'm looking for some recommendations for an arbitrary waveform generator which is able to produce fast edges not just on their nominated square or pulse waveforms, but also on ARB waveforms : I recently took delivery of a Rigol DG1022Z - based on its spec and manual it looked like it would do the job, but sadly it doesn't look like it will : When operating in ARB mode, you have the choice of Sample Rate mode and Frequency mode. The manual is not best clear, but to any potential buyers beware : the deep sample memory (anything over 8k) is ONLY possible in Sample Rate mode, and whilst in that mode modulation does not work, moreover trying to manually sweep the frequency causes horrendous waveform artefacts (unusable). As an added "bonus" (show stopper for me) it also tries to interpolate between samples in the ARB data, which crucifies the slew rate when you actually want to generate fast edges (it's impossible). If you elect to use the Frequency mode, then beware, the ARB data *MUST* be 8192 samples long, there are no other options, it's 8192 or not at all. The manual suggests 8 to 8192 - but that doesn't appear to be the case, indeed Rigol's own waveform editor software greys out the #samples when you choose Frequency mode for the DG1022Z. On the plus side, when you're in Frequency mode the unit does not apply interpolation to the sample data so you can get nice fast edges, but woe betides the user that needs a signal that can't be subdivided into 8192 pieces. The second plus is that modulation does work, and even when manually changing the frequency it does it without artefacts (it is quite usable)..... if only it could do it with fewer samples! My use case pertains engine signal simulation, ergo it needs to somehow divide into 360 degrees.... ie 360 samples would be fine (one per degree), as would 3600 (one per 1/10th of a degree), 7200 (1 per 1/20th degree or 1 per 1/10th degree per complete cycle). There's no "clean" way to fit this into 8192 samples and still be able to get to integer degrees.... ie you can't place an edge at 10 degrees, it's got to be 9.975585938 or 10.01953125 degrees (and you'll get jitter as you try to round). Looking at other manuals for units such as the 2000 series Rigol and also Siglent they're similarly uninformative. My question, then, is if anyone has used a ARB wavegen for this kind of signal generation and managed to get fast (<15ns) edges out of it whilst also being able to use "random" sample counts ? Many thanks, Pat. |
| alm:
A true arbitrary waveform generator with a variable clock, as opposed to a DDS-based arbitrary function generator, might work better here. See here for a brief description of the two types. Unfortunately I don't have a specific recommendation. I'm guessing that might well exclude all the cheaper B-brands like Rigol, GW-Instek and Siglent. Tektronix and Keysight would probably have something suitable. However, transition times will still depend on a fast clock and output stage, which usually translates into expensive. You might want to consider if a programmable pulse generator / pattern generator can also do the job. They are generally more designed for fast edges than arbitrary waveform generators. |
| _pat_:
Hiya Alm! My leaning is normally toward good gear and so I had been looking at Agilent/Keysight and Sony/Tektronix. I found stuff on YouTube that *suggests* that maybe a 33512B could do it. Maybe. They certainly showed an example of an ARB waveform with spikes in it, where a DDS based solution was skipping some but theirs wasn't. Price and availability are "awkward". The ultimate irony of this is that I started looking because of a jitter bug in the wavegen of a Keysight scope, LOL. The link seems to confirm pretty much my understanding of DDS.... that you have a fixed high frequency clock that is used with a fixed point accumulator to advance the address used to index into a memory array. This seems to match up nicely to the "Frequency" mode of the Rigol. The fixed size means that the Accumulator does not need to worry about overlfows... the integer part can just be 13 bits long. If it needed to overflow at (say) 7200 then it would need an additional comparator to see if it should subtract 7200.0000000 from the current value. It also makes sense that modulation is easy to achieve here since you're just changing the phase adder. It also makes sense that it steps since it doesn't necessarily "know" how many additions it will take for the integer part to increment, ergo it "cannot" interpolate. [yes, of course, there are mitigation measures you could use, but not trivial ones]. When it is running in Sample Rate mode it can be certain that after one sample period it will be at the next sample, and so it can interpolate between them. I guess the certainty of the next sample also makes the overflow comparator easier to sort out.... say with a sequence of 7200 samples and a 200M base clock, you'd need to advance the sample index every 27778 clock cycles for 1Hz (with an occasional 27777 to maintain a 27777.77777 average, so you may end up with 5ns jitter)... you'd have 27777 cycles to work out whether when you get to the end of that lot you need to overflow or not, as opposed to working that out *and correcting for it* 200 million times per second. It also makes a little more sense why modulation doesn't work properly - in the above example, if you were at 27770 and you sped up then perhaps you'd want to step at 27765 but you're already past that. The same issue doesn't affect the phase accumulator method. I had actually been thinking that maybe the only way to do this right is to roll my own (hopefully not)....maybe based off Si570 or something like that clocking a Spartan6 or something like that. Fingers crossed that there are units out there that do what I need, without requiring a mortgage or shipping from Proxima Centauri... In terms of pattern generator I guess I could try to get one into my 16902A (but then I seem to recall that they may not be compatible with stuff later than the 16700 series). I do have other options for generating digital signals with fast edges, but I was after a wavegen so that I can run it with fast edges when I need to check timing with utmost precision, but then go over to a simulated VR signal as well.... and I can't do that with a digital pattern generator :( Cheers, Pat. |
| joeqsmith:
--- Quote from: _pat_ on January 18, 2023, 10:50:59 pm ---... My use case pertains engine signal simulation, ergo it needs to somehow divide into 360 degrees.... ie 360 samples would be fine (one per degree), as would 3600 ... --- End quote --- Welcome to the forum Pat. I also had a use for such an Arb. You could look at D-Space, ADI or other companies specializing in HIL. NI has something but I've never looked into it. Not sure with all the drama at NI, I would even waste any time looking. Still, you never know. https://www.dspace.com/en/inc/home.cfm In my case, I designed my own PCI card which is all digital. I suspect you could purchase something much nicer than mine from the big players. |
| joeqsmith:
Looks like ADI may be gone but doing a search on Google: https://www.genuen.com/blog/what-is-hardware-in-the-loop-hil-testing https://www.opal-rt.com/automotive-overview/ https://www.dspace.com/en/inc/home/applicationfields/foo/hil-testing.cfm https://www.ni.com/en-us/innovations/case-studies/19/reconfigurable-hil-simulator-for-vehicle-dynamics-based-ecu-development.html |
| Navigation |
| Message Index |
| Next page |