Well, BAD software certainly has range to be Really Bad. Although, given a big enough FPGA I think there's plenty of room for the designers to get in trouble with poor design practices.
Do you use one set of math hardware and do the control loop calculations with a state machine? I assume you do because you say it's a small FPGA, and you have (I'm pretty sure) 512 clocks between samples.
If that's the case, then you could add the sigma-delta stuff into the state machine, hopefully without making it much bigger.
Can you ask your customer about noise level, or have them check? FPGA, software or vacuum tubes, fewer functions means fewer opportunities for bugs.
--
Tim Wescott
Control systems, embedded software and circuit design
I'm looking for work! See my website if you're interested
http://www.wescottdesign.com
My son and I have a running joke about a world where we all have personal time machines, and can go back in time to harangue our past selves when they're about to make a mistake.
At any rate, I know it couldn't have existed in 2004, because Future Me did not appear and tell Past Me to double-check his math.
On re-doing my math, I get a peak-peak variation of about 0.2 degrees. This wouldn't be tight enough to satisfy me (thereby raising questions about "well enough"), because you can't count on any one thing to be your entire error budget -- my usual rule of thumb is that, if you're not doing a detailed spreadsheet, pound the easy stuff down to 1/10 of your total error budget, and get the hard stuff down to 1/4. And, if you can't do that, do a spreadsheet.
So, to get down to 0.02 degrees you'd need more bits -- I'm not going to do the calculation, but I hope that it fairly works out to 10 to 12 bits.
With a math error. Once again, Present Me is looking for a time machine to go back and harangue Past Me.
I must have been assuming a unidirectional DAC, going from 0 to 255 (I was actually drawing on my first paid gig doing motion control, and that was the case then). With 8 bits, the acceleration is roughly 8000 deg/ sec^2/count. To get that into terms of sample rate just substitute in Ts = 1/(sample rate):
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.