(Nico
After all
float to
harder.
output=sin(angle)
which
top N bits
It's very
tests, some
That would
integer
BAMS. It has been around for over 50 years. (Fraction portion) MSB is
180 degrees and so forth. It is not all that well known though.?-)
(Nico
After all
float to
harder.
output=sin(angle)
which
top N bits
It's very
tests, some
That would
integer
BAMS. It has been around for over 50 years. (Fraction portion) MSB is
180 degrees and so forth. It is not all that well known though.?-)
I can even do that in fixed point. Select a reference frequency, say 100 Hz, then scale for frequency at beginning of sweep, and sweep step size (may be negative for some cases), then each time you update the phase register calculate the new value by adding step to current phase/step value. loop until at stop frequency, reset phase step value to start and go again.
If everything is fast enough you can even do high futility FM stereo modulation at MHz carrier frequencies with an MP3 source. But at more than 8 bits to the DAC you are looking at 200 MB/s, enough to choke a single PCIe lane.
ADI has an ap note on generating FM Stereo via DDS, along with some code. I saw it about a year ago.
If i could get you to stop and listen i could show you haw to do the operating side in very little code space, no lookup table, fixed point math without divides. The user interface or system interface is another matter though.
?-)
Operating
whip
somewhat
See:
I am sure it can be done somehow. But it's not a slam dunk because the little uC in there is already running an LCD and other things. One could do some interrupt shuffling and all that. But ... I've now resorted to the old analog method. It's my home turf and there's just too many other tasks at hand to let one like this balloon into its own sizeable project.
The way he died was very sad, I did not know that. Thanks for sharing.
Ofcourse but with floating point its a total no brainer so faster to develop. In the end floating point is automatic fixed point without having to think about where to put the decimal point for maximum accuracy.
Not if the software runs fast enough and is done right.
You can microstep a DDS's frequency by jittering the phase accumulator step size.
Fast enough and done right usually don't go well with an 8051. In an ideal sweep (or FM modulation) you'd have to recalculate the step size for every sample.
Somehow I have a feeling that will look funny on a spectrum analyzer. My guess is that you'll see two distinct peaks instead of an intermediate frequency.
:
ote:
g phat
Cool, I've seen this phasor diagram that shows FM is just 90 deg phase shifted AM. (but only at low amplitude) I never knew how to make it work, 'in practice'.
George H.
- Hide quoted text -
I understand that 8051 is the uC that everone that everyone loves to hate, but the claim depends on the frequency you're running it all at.
You have to do it between each sample. It's the same effect you'd get by adding more bits to the phase accumulator, but not widening eange of phase bits used for output.
floating
100I understand where you are coming from. But the nature of this application, as stated, is inherently fixed point with an obvious radix placement. Why put up with FP overhead when you don't need to.
Different viewpoint for this case.
?-)
the
manufacturer
Operating
whip
not
somewhat
The best way to learn is to just build one and play with it. It would be fun to work with you if you want to explore this. I haven't had the chance to actually build one, but i guessed the principle while still a teen.
?-)
If the overhead is not in the way then why bother trying to 'improve' something which doesn't need improving? I'd rather spend my time on adding features which are actually useful to the customer. New technology brings new solutions to old problems.
And somtimes it brings new problems to old solutions. Like the electronics in many cars, which came at the price of reduced reliability. Or what just happened with my Thunderbird. Tried an add-on called Menhy or something to be able to jump to these weird NG post links with the @-sign in there. Didn't work, no surprise there. But ... it totally screwed up TB in that now every printed email has the first
3/4 page full of routing garbage. And no proper address field display anymore. Now I'll have to do a re-install. Just great.
Hate? It is just about the only uC that has 2nd source (in some of the packages) and where you can find a capable programmer in almost every village. What there to hate?
Depending on the application some "spectral fuzz" is ok. Certainly would be in my current one. I just don't want to program a uC :-)
The architecture? The instruction set? The speed?
So what? It's a practical uC, for many reasons. In the same way that I won't complain that my car would not perform well on the Indianapolis racetrack. But it does ferry 1/2 ton of pellets back home rather nicely and that matters more to me than winning some race.
If I can find an appropriate eval board for an FPGA, I can gen up a solution that should do everything you need. How much are you willing to spend? Unfortunately the FPGA boards tend to be a bit more than MCU boards. Nearly anyone should be able to do this on an MCU board, but that isn't my forte.
Heck, I have an old sig gen that I need to repair. I just got a Renesas MCU eval board for free. I'm sure it has the analog I/O needed. I'll take a look to see if it will do this. When you are done can I get it back so I don't have to repair my sig gen? I was just starting to take a look at it today and got called away. Too fine detail and too hard to get into... damn old eyes!
Have something to add? Share your thoughts — no account required.
Ask the community — no account required