Pwm Sine Generation

Jan 23, 2008 7 Replies

Hallo to everyone, I should generate a pwm sinusoidal signal of a frequency lower than



500 Hz.

I have seen DDS Compiler into Coregen, but it seems useful to drive a DAC.



My aim instead is to output a pwm signal.



Any suggestion?



Many Thanks, Marco


Hook up the output data from the DDS to a separate PWM module.

DDS has an output width >=1, a pwm module can have an input width >=

1 ?

I was considering pwm as a counter and a comparator, there are other kind of implementation?

Thanks Marco

Hi Marco, Google pwm dac fpga HTH., Syms.

DDS has output width N, so you make an N bit counter and N bit comparator.

As the counter increments, you compare counter with DDS output. If DDS > counter, PWM output is 1, otherwise 0.

Alternatively, you could use something like this:

formatting link

Note that the example above generates PDM, _not_ PWM!

If you are intending to filter the FPGA outout signal to generate an analog signal, PDM is more appropriate. If you are using the FPGA to control power electronics, say for a motor drive, PWM is what you want.

Peter Wallace

Delta-sigma can be better than PWM, but at 500 Hz, either will be fine.

John

I couldn't use a dac because I must avoid integrated circuit that permits too much complex feedback test. With an fpga like spartan3a I can perform jtag test and matrix configuration test with icap, but the most important I can make an output diagnosis of every step, in example output of dds, output of pwm, etc., so at the output of fpga I will put an LC filter to obtain a sine.

In my application I should generate a signal modulated. I don't drive a motor, so I think PDM should be right for me.

Many Thanks, Marco

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required