Generating lots of fast PWM signals

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

baadc0de

Well-known member
Joined
Jul 9, 2009
Messages
797
Location
Europe
Dear forum..

I've been theorizing lately in my head about high frequency PWM.. like say, 5ns per step, 1024 steps per PWM cycle.. and the economics to generate a lot of these signals, with independent duty%.

Do you guys know of any ICs that could do this comfortably? I've tried to go with FPGAs but my Verilog is really bad and I managed to make a PWM on 32 signals but it takes about 105k gates with a simple i2c-like protocol to set the duty cycles. So I'm thinking there has to be something cheaper... I've seen some LED drivers that do PWM, but I'm not sure about that.

So if you could offer any hints, suggestions, I'd really be thankful!

Cheers,
B.
 
You can buy stock microprocessors with a bunch of independent PWM outputs. The 10-bit does not seem much of a problem but 200 MHz clock seems about 10x faster than the cheap micro's I am familiar with.

JR
 
baadc0de said:
Dear forum..

I've been theorizing lately in my head about high frequency PWM.. like say, 5ns per step, 1024 steps per PWM cycle.. and the economics to generate a lot of these signals, with independent duty%.

Do you guys know of any ICs that could do this comfortably? I've tried to go with FPGAs but my Verilog is really bad and I managed to make a PWM on 32 signals but it takes about 105k gates with a simple i2c-like protocol to set the duty cycles. So I'm thinking there has to be something cheaper... I've seen some LED drivers that do PWM, but I'm not sure about that.

An FPGA is really your only reasonable solution.

What is used to set the duty cycle? In other words, if they're variable, some outside intelligence is needed to set them, so I can see using a small micro to manage the user interface (whatever it is) and then using it to write to some registers in the FPGA.

-a
 
Are you trying to generate audio eventually?

We have TAS5548 that is an octal audio PWM generator. The PWM system itself is running at an extremely high rate, with a frame frequency of around 384khZ... (the duty cycle being a fraction of that).
 
Thanks for the replies, really appreciated..

So, an ARM board with Ethernet I have could be used to send the PWM duty info over SPI or i2c to the FPGA, from which I need 32-channels of at least 150 MHz 10-bit PWMs. Note, they don't need to be synchronous to one another, so multiple (cheap) chips is no problem.

I'd love to target the 50K gates XC3S50A, that one is quite cheap and in the 100-pin VQFP. That would theoretically, at current Farnell prices give me 32 PWM channels for 8.57€ and I think fully loaded with just PWMs could hit 180MHz? Do you think that's realistic or would I have to target the 200K gates? Though I should probably factor in some flash for the program and xtal, but that's true for other chips too.

Rochey, thanks for the chip ref, I'm not using/needing I2S, the PWM duty changes are probably going to happen at most 30 times per second. The chip looks great though, I'll put the ref aside for something else down the road maybe.
 
baadc0de said:
So, an ARM board with Ethernet I have could be used to send the PWM duty info over SPI or i2c to the FPGA, from which I need 32-channels of at least 150 MHz 10-bit PWMs. Note, they don't need to be synchronous to one another, so multiple (cheap) chips is no problem.

That's one way of doing it, using more than one identical FPGA. I wouldn't do I2C from the micro; I'd do either SPI or a parallel bus. Too much I2C overhead and it's slow.

I'd love to target the 50K gates XC3S50A, that one is quite cheap and in the 100-pin VQFP. That would theoretically, at current Farnell prices give me 32 PWM channels for 8.57€ and I think fully loaded with just PWMs could hit 180MHz? Do you think that's realistic or would I have to target the 200K gates? Though I should probably factor in some flash for the program and xtal, but that's true for other chips too.

I would start by doing the design with the XC3S50A as the target. If the design doesn't fit, bump it to the 200A, or strip it down until it does fit and put more than one on the board.

-a
 

Latest posts

Back
Top