Voltage to PWM chip (similar to class D)?

On Fri, 30 May 2014 09:47:56 -0700, Joerg wrote:

Tim Wescott wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and
can handle PWM frequencies in the 50-1000kHz range? Similar to a class
D driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all. A
uC is not suitable either because it should be simple and I need very
fine control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.

A 555 or other teeny thing wrapped with integrating feedback, to hold
the average at precisely what you want? It kinda violates your "one
chip" desire, but at least it can be done with a minimum of small
parts.


I am going to do something like that (but probably not with a 555) if
nothing single-chip comes up. That's the reason for this thread, to see
if there isn't anything out there. I mean, every class-D amp must have a
super-linear PWM generator. It's just that most have the power stages
built in (would be ok, can be left idle) and have lousy or no DC
performance (would not be ok).

Are you sure they aren't digital inside, with 2nd- or 3rd-order sigma-
deltas to make up the bit count?

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
 
On Fri, 30 May 2014 09:41:02 -0700, Joerg wrote:

Tim Wescott wrote:
On Fri, 30 May 2014 09:32:27 -0600, Reinhardt Behm wrote:

Tim Wescott wrote:

On Thu, 29 May 2014 14:20:26 -0700, Joerg wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and
can handle PWM frequencies in the 50-1000kHz range? Similar to a
class D driver but has to go down to DC. The changes in control
would be restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all.
A uC is not suitable either because it should be simple and I need
very fine control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and
such.
Hey! Microprocessors are simple! You just need to learn some
valuable skills, that's all.

http://www.c-for-dummies.com/
But generating a PWM at 1MHz with a resolution of 0.1% mean you need a
base frequency for your counter of 1GHz. I don't know any CPU that
could do that.

Some MCUs follow the PWM section with a selectable delay line, which
gives you sub-clock PWM resolution.


If that's the usual silicon delay line deal I don't want it. Took my
lumps there, or rather a client did and when they called me in all I
could do is rip it all out and design an analog solution. The digital
delay section had the noise performance of a pressure-assist loo during
the flush :)


But often you can stand higher error in the higher frequencies than you
can at DC. In that case you can put a sigma-delta modulator between
your drive number and your PWM. I do this often in control loops,
because it works well, it's easy, and it's cheap.


Which IC do you use for generating the PWM? Creating a number would be
as easy as dropping in an ADC. Most sigma-delta chiops I've seen use a
fairly low clock frequency and you don't get the granularity needed at a
sufficnetly hig PWM frequency. I could drop the upper frequency to
500kHz if hard-pressed but not a lot lower.

You originally said 50-1000kHz. At 50, I'd use an ST ARM-core micro
running at 48 or 50MHz.

If _all_ you're doing is generating PWM at 500kHz you could probably
still do that. You'd get 1% or 2% steps in your PWM (some of those chips
limit the PWM clock to 1/2 the core clock). To get delta-sigma you'd
need to use DMA, though, which is getting beyond simple for most folks.

On the bright side, at a 500kHz PWM frequency and a 15kHz "I care"
bandwidth, a simple 1st-order delta-sigma modulator would buy you roughly
five bits of precision -- at that point, your error drivers are probably
asymmetries in the power circuitry, rather than the actual behavior of
the PWM.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
 
On Fri, 30 May 2014 09:47:56 -0700, Joerg wrote:

Tim Wescott wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and
can handle PWM frequencies in the 50-1000kHz range? Similar to a class
D driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all. A
uC is not suitable either because it should be simple and I need very
fine control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.

A 555 or other teeny thing wrapped with integrating feedback, to hold
the average at precisely what you want? It kinda violates your "one
chip" desire, but at least it can be done with a minimum of small
parts.


I am going to do something like that (but probably not with a 555) if
nothing single-chip comes up. That's the reason for this thread, to see
if there isn't anything out there. I mean, every class-D amp must have a
super-linear PWM generator. It's just that most have the power stages
built in (would be ok, can be left idle) and have lousy or no DC
performance (would not be ok).

No DC performance can't be fixed -- but lousy DC performance could be
fixed with feedback, assuming there's an appropriate loop frequency to
make it easy, yet have enough authority at low frequencies to clean up
the crap.

(And no microprocessor -- see, I can propose analog solutions to analog
problems).

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
 
Tim Wescott wrote:
On Fri, 30 May 2014 09:41:02 -0700, Joerg wrote:

Tim Wescott wrote:
On Fri, 30 May 2014 09:32:27 -0600, Reinhardt Behm wrote:

Tim Wescott wrote:

On Thu, 29 May 2014 14:20:26 -0700, Joerg wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and
can handle PWM frequencies in the 50-1000kHz range? Similar to a
class D driver but has to go down to DC. The changes in control
would be restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all.
A uC is not suitable either because it should be simple and I need
very fine control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and
such.
Hey! Microprocessors are simple! You just need to learn some
valuable skills, that's all.

http://www.c-for-dummies.com/
But generating a PWM at 1MHz with a resolution of 0.1% mean you need a
base frequency for your counter of 1GHz. I don't know any CPU that
could do that.
Some MCUs follow the PWM section with a selectable delay line, which
gives you sub-clock PWM resolution.


If that's the usual silicon delay line deal I don't want it. Took my
lumps there, or rather a client did and when they called me in all I
could do is rip it all out and design an analog solution. The digital
delay section had the noise performance of a pressure-assist loo during
the flush :)


But often you can stand higher error in the higher frequencies than you
can at DC. In that case you can put a sigma-delta modulator between
your drive number and your PWM. I do this often in control loops,
because it works well, it's easy, and it's cheap.


Which IC do you use for generating the PWM? Creating a number would be
as easy as dropping in an ADC. Most sigma-delta chiops I've seen use a
fairly low clock frequency and you don't get the granularity needed at a
sufficnetly hig PWM frequency. I could drop the upper frequency to
500kHz if hard-pressed but not a lot lower.

You originally said 50-1000kHz. At 50, I'd use an ST ARM-core micro
running at 48 or 50MHz.

Yes, that's the range I need this to be able to operate in.


If _all_ you're doing is generating PWM at 500kHz you could probably
still do that. You'd get 1% or 2% steps in your PWM (some of those chips
limit the PWM clock to 1/2 the core clock). To get delta-sigma you'd
need to use DMA, though, which is getting beyond simple for most folks.

It has to have 0.1% granularity or better.


On the bright side, at a 500kHz PWM frequency and a 15kHz "I care"
bandwidth, a simple 1st-order delta-sigma modulator would buy you roughly
five bits of precision -- at that point, your error drivers are probably
asymmetries in the power circuitry, rather than the actual behavior of
the PWM.

Not really. My most recent project contains a uC-generated PWM at 12-bit
granularity. Of course, that can only run at 2kHz. We could still double
the master clock for a 4kHz PWM at same granularity but the power
consumption penalty would be too much for this application.

--
Regards, Joerg

http://www.analogconsultants.com/
 
Tim Wescott wrote:
On Fri, 30 May 2014 09:47:56 -0700, Joerg wrote:

Tim Wescott wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and
can handle PWM frequencies in the 50-1000kHz range? Similar to a class
D driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all. A
uC is not suitable either because it should be simple and I need very
fine control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.
A 555 or other teeny thing wrapped with integrating feedback, to hold
the average at precisely what you want? It kinda violates your "one
chip" desire, but at least it can be done with a minimum of small
parts.


I am going to do something like that (but probably not with a 555) if
nothing single-chip comes up. That's the reason for this thread, to see
if there isn't anything out there. I mean, every class-D amp must have a
super-linear PWM generator. It's just that most have the power stages
built in (would be ok, can be left idle) and have lousy or no DC
performance (would not be ok).

Are you sure they aren't digital inside, with 2nd- or 3rd-order sigma-
deltas to make up the bit count?

Mostly not sure because they are usually releasing very little
information about the modulator. But they sure are good in noise
performance and granularity. Not always quite up to par with linear amps
but close.

--
Regards, Joerg

http://www.analogconsultants.com/
 
Tim Wescott wrote:
On Fri, 30 May 2014 09:47:56 -0700, Joerg wrote:

Tim Wescott wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and
can handle PWM frequencies in the 50-1000kHz range? Similar to a class
D driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all. A
uC is not suitable either because it should be simple and I need very
fine control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.
A 555 or other teeny thing wrapped with integrating feedback, to hold
the average at precisely what you want? It kinda violates your "one
chip" desire, but at least it can be done with a minimum of small
parts.


I am going to do something like that (but probably not with a 555) if
nothing single-chip comes up. That's the reason for this thread, to see
if there isn't anything out there. I mean, every class-D amp must have a
super-linear PWM generator. It's just that most have the power stages
built in (would be ok, can be left idle) and have lousy or no DC
performance (would not be ok).

No DC performance can't be fixed -- but lousy DC performance could be
fixed with feedback, assuming there's an appropriate loop frequency to
make it easy, yet have enough authority at low frequencies to clean up
the crap.

That's a problem, my signal path goes all the way to DC and the loop
would be a pain.


(And no microprocessor -- see, I can propose analog solutions to analog
problems).

And I did a project with a uC in there last month. Plus one the month
before. But ... other than prescribing how I want the code to flow and
what the individual chunks of it should do the programming was done by
others.

I like things analog if possible. Like my new mountain bike (which by
now looks like it came back from a war zone), in contrast to cars those
do not contain any uC. On higher-end road bikes that is already starting
to change where some have electronic shifting. Couldn't believe it.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 5/30/2014 10:15 AM, Joerg wrote:
John Larkin wrote:
On Thu, 29 May 2014 18:07:45 -0700, Joerg <invalid@invalid.invalid> wrote:

John Larkin wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg <invalid@invalid.invalid
wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and can
handle PWM frequencies in the 50-1000kHz range? Similar to a class D
driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all. A uC
is not suitable either because it should be simple and I need very fine
control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.
How about a sawtooth or triangle waveform and a comparator. Close a
feedback loop around that, with a PWM to DC converter; the PWM-DC part
can be made very linear.

That's what I wanted to avoid for real estate reasons. But if I hafta
I'll do it.

If you want 0.1% accuracy, you might be able to do it open-loop, with a very
linear ramp, but it will be hard at that frequency. If you only want 0.1%
resolution ("granularity"?) it's not so bad.

Can you use delta-sigma? There are some integrated d-s modulators around.


I could but then I'd have to build a one-shot that stretches the pulses
into a very precise length and that's almost the same kind of challenge
as building my own PWM generator (needs too much space).

Can the pulse width be dithered or does each pulse width have to adjust
to within 0.1% of the needed value? I think a digital solution could do
this if you just need the average pulse width to match.

--

Rick
 
On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need a base
frequency for your counter of 1GHz. I don't know any CPU that could do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.

--

Rick
 
rickman wrote:
On 5/30/2014 10:15 AM, Joerg wrote:
John Larkin wrote:
On Thu, 29 May 2014 18:07:45 -0700, Joerg <invalid@invalid.invalid
wrote:

John Larkin wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg <invalid@invalid.invalid
wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM
and can
handle PWM frequencies in the 50-1000kHz range? Similar to a class D
driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and
all. A uC
is not suitable either because it should be simple and I need very
fine
control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.
How about a sawtooth or triangle waveform and a comparator. Close a
feedback loop around that, with a PWM to DC converter; the PWM-DC part
can be made very linear.

That's what I wanted to avoid for real estate reasons. But if I hafta
I'll do it.

If you want 0.1% accuracy, you might be able to do it open-loop, with
a very
linear ramp, but it will be hard at that frequency. If you only want
0.1%
resolution ("granularity"?) it's not so bad.

Can you use delta-sigma? There are some integrated d-s modulators
around.


I could but then I'd have to build a one-shot that stretches the pulses
into a very precise length and that's almost the same kind of challenge
as building my own PWM generator (needs too much space).

Can the pulse width be dithered or does each pulse width have to adjust
to within 0.1% of the needed value? I think a digital solution could do
this if you just need the average pulse width to match.

Dither is a problem. If it's dithering between 2-3 consecutive pulses,
maybe, but it would be a serious compromise.

This does not mean I am ruling anything out at this point, it's just
that I'd first like to see if there is a class-D chip that can be
pressed into service. Thise have very clean PWM, just not down to DC
because offset voltages and stuff aren't important for audio.

--
Regards, Joerg

http://www.analogconsultants.com/
 
rickman wrote:
On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need
a base
frequency for your counter of 1GHz. I don't know any CPU that could
do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.

I bet an FPGA with some minor analog sprinkles around it could do this
job nicely. But that would be like using a Porsche to go to the grocery
store.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On Fri, 30 May 2014 14:41:35 -0400, rickman <gnuarm@gmail.com> wrote:

On 5/30/2014 10:15 AM, Joerg wrote:
John Larkin wrote:
On Thu, 29 May 2014 18:07:45 -0700, Joerg <invalid@invalid.invalid> wrote:

John Larkin wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg <invalid@invalid.invalid
wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM and can
handle PWM frequencies in the 50-1000kHz range? Similar to a class D
driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and all. A uC
is not suitable either because it should be simple and I need very fine
control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.
How about a sawtooth or triangle waveform and a comparator. Close a
feedback loop around that, with a PWM to DC converter; the PWM-DC part
can be made very linear.

That's what I wanted to avoid for real estate reasons. But if I hafta
I'll do it.

If you want 0.1% accuracy, you might be able to do it open-loop, with a very
linear ramp, but it will be hard at that frequency. If you only want 0.1%
resolution ("granularity"?) it's not so bad.

Can you use delta-sigma? There are some integrated d-s modulators around.


I could but then I'd have to build a one-shot that stretches the pulses
into a very precise length and that's almost the same kind of challenge
as building my own PWM generator (needs too much space).

Can the pulse width be dithered or does each pulse width have to adjust
to within 0.1% of the needed value? I think a digital solution could do
this if you just need the average pulse width to match.

That's sort of a variation on delta-sigma: PWM, but dither it one
clock to interpolate the output. Full delta-sigma has too many
transitions.


--

John Larkin Highland Technology, Inc

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com
 
George Herold wrote:
On Friday, May 30, 2014 1:00:16 PM UTC-4, Joerg wrote:
dagmargoodboat@yahoo.com wrote:

On Friday, May 30, 2014 12:45:25 PM UTC-4, Joerg wrote:
Digital is ok but 1000:1 granularity at a MHz or at least half a MHz
would require a fat processor with really good timer resources.
Okay, that narrows the field--too fast for a 555!
It's going to be hard to get good linearity from any consumer
part, and it's hard to imagine who'd need it other than class-D
audio.
That's the reason for starting this thread: Class D. They use PWM in th
hundreds of MHZ in order to get away with small magnetics yet it's quite
linear.

The DC stability is the issue, most audio ICs barely have any to write
home about.

Well I don't really know what I'm suggesting,
but can you patch up the DC response of an audio IC?
(maybe someone already did that?)

With some CODECs you can. However, so far all the ones I looked at
except for the AD1939 have sloppy offset specs. But this was for another
project, it can't do PWM.

--
Regards, Joerg

http://www.analogconsultants.com/
 
George Herold wrote:
On Friday, May 30, 2014 11:32:27 AM UTC-4, Reinhardt Behm wrote:
Tim Wescott wrote:
snip
Hey! Microprocessors are simple! You just need to learn some valuable
skills, that's all.

http://www.c-for-dummies.com/
But generating a PWM at 1MHz with a resolution of 0.1% mean you need a base
frequency for your counter of 1GHz. I don't know any CPU that could do that.
Only if you needed it "right away", if you could average 100 cycles,
then you could do it with 10MHz.

That would have the phase noise performance of a steam locomotive :)

--
Regards, Joerg

http://www.analogconsultants.com/
 
On Fri, 30 May 2014 14:48:35 -0400, rickman <gnuarm@gmail.com> wrote:

On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need a base
frequency for your counter of 1GHz. I don't know any CPU that could do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.

We have one product where we used 16 channels of 1 GHz SERDES to make
the equivalent of 16 PWMs, each with 1 ns resolution. We can make
pulses of any delay and width by streaming clever patterns into the
SERDES fifos.


--

John Larkin Highland Technology, Inc

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com
 
On 5/30/2014 3:02 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need
a base
frequency for your counter of 1GHz. I don't know any CPU that could
do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.


I bet an FPGA with some minor analog sprinkles around it could do this
job nicely. But that would be like using a Porsche to go to the grocery
store.

And what is wrong with that? Porche makes a mom-mobile! FPGAs come in
lean, mean sizes for any budget. If you are short on board space they
even come in some pretty teeny-tiny packages if you don't mind very fine
pitch BGA type things. Otherwise they just come in small packages.

Actually a digital approach would need either the comparator that you
seem to not like or an ADC which might be a better match. If you need
up to a 1 MHz pulse rate I assume you would need a 1 MHz ADC sample rate
which is not too hard, but it would start to use a few mA. It's been a
while since I've looked at ADCs at that rate but I know they are not
hard to find, especially with only 10 or 12 bits.

The rest is easy... 1 GHz clock might be a bit tricky in one of the
very low power FPGAs, but maybe. The dual latches used for DDR work
might just enable this on a pretty low power device. It would be an
interesting design task. Either way one of the conventional FPGAs could
handle this easily I'm sure and the smaller ones don't suck so much
power. I could poke around a bit if you are interested.

--

Rick
 
rickman wrote:
On 5/30/2014 3:02 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need
a base
frequency for your counter of 1GHz. I don't know any CPU that could
do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.


I bet an FPGA with some minor analog sprinkles around it could do this
job nicely. But that would be like using a Porsche to go to the grocery
store.

And what is wrong with that? Porche makes a mom-mobile! ...

For the ritzy crowd with beaucoup disposable income, yes.


... FPGAs come in
lean, mean sizes for any budget. If you are short on board space they
even come in some pretty teeny-tiny packages if you don't mind very fine
pitch BGA type things. Otherwise they just come in small packages.

It is like shooting a fly with a 50mm canon. The fly will be killed dead
for sure, as John Wayne would say, but it's overkill. We have no people
who can program FPGA. It ain't in the budget (yet).


Actually a digital approach would need either the comparator that you
seem to not like or an ADC which might be a better match. If you need
up to a 1 MHz pulse rate I assume you would need a 1 MHz ADC sample rate
which is not too hard, but it would start to use a few mA. It's been a
while since I've looked at ADCs at that rate but I know they are not
hard to find, especially with only 10 or 12 bits.

The required rate of change is only up to about 15kHz and transferring
the analog control signal to digital at 100ksps or so is a piece of
cake. Can be done with a very tiny ADC.


The rest is easy... 1 GHz clock might be a bit tricky in one of the
very low power FPGAs, but maybe. The dual latches used for DDR work
might just enable this on a pretty low power device. It would be an
interesting design task. Either way one of the conventional FPGAs could
handle this easily I'm sure and the smaller ones don't suck so much
power. I could poke around a bit if you are interested.

Maybe not just yet because I want to find out whether we can just plop
in a class-D chip. We don't have a budget for an extra FPGA design for
this phase. But that could change when this becomes a product and I'll
keep you in mind (assuming you can legally do freelance work, as in not
bound by an employer).

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 5/30/2014 3:00 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 10:15 AM, Joerg wrote:
John Larkin wrote:
On Thu, 29 May 2014 18:07:45 -0700, Joerg <invalid@invalid.invalid
wrote:

John Larkin wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg <invalid@invalid.invalid
wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM
and can
handle PWM frequencies in the 50-1000kHz range? Similar to a class D
driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and
all. A uC
is not suitable either because it should be simple and I need very
fine
control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and such.
How about a sawtooth or triangle waveform and a comparator. Close a
feedback loop around that, with a PWM to DC converter; the PWM-DC part
can be made very linear.

That's what I wanted to avoid for real estate reasons. But if I hafta
I'll do it.

If you want 0.1% accuracy, you might be able to do it open-loop, with
a very
linear ramp, but it will be hard at that frequency. If you only want
0.1%
resolution ("granularity"?) it's not so bad.

Can you use delta-sigma? There are some integrated d-s modulators
around.


I could but then I'd have to build a one-shot that stretches the pulses
into a very precise length and that's almost the same kind of challenge
as building my own PWM generator (needs too much space).

Can the pulse width be dithered or does each pulse width have to adjust
to within 0.1% of the needed value? I think a digital solution could do
this if you just need the average pulse width to match.


Dither is a problem. If it's dithering between 2-3 consecutive pulses,
maybe, but it would be a serious compromise.

This does not mean I am ruling anything out at this point, it's just
that I'd first like to see if there is a class-D chip that can be
pressed into service. Thise have very clean PWM, just not down to DC
because offset voltages and stuff aren't important for audio.

I'm not clear on your answer. To make sure you understand what I am
suggesting... You can use a slower counter clock if you dither the
pulse width. In reality you would need to use some feedback similar to
a sigma-delta circuit. The pulse width would only vary from ideal by a
fraction of a count at any one time and the error could be accumulated
and used to add a delta on the next pulse width. Another plus is that
the feedback loop can be internal to the digital circuit since the error
source is the low order bits that are being truncated.

I think John Larkin has picked up on this judging from his post. The
question is whether the small instantaneous deviations will make a
difference. Similar to sigma-delta the "noise" would be at a high
frequency.

--

Rick
 
rickman wrote:
On 5/30/2014 3:00 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 10:15 AM, Joerg wrote:
John Larkin wrote:
On Thu, 29 May 2014 18:07:45 -0700, Joerg <invalid@invalid.invalid
wrote:

John Larkin wrote:
On Thu, 29 May 2014 14:20:26 -0700, Joerg <invalid@invalid.invalid
wrote:

Folks,

Does anyone know an IC that can turn a control voltage into PWM
and can
handle PWM frequencies in the 50-1000kHz range? Similar to a
class D
driver but has to go down to DC. The changes in control would be
restricted to the audio spectrum below 15kHz.

The LTC6992 does this nicely but isn't precise enough. Same with
555-style timers or switcher chips. I am looking for better 1% and
ideally a lot better, including nonlinearity, drift, warts and
all. A uC
is not suitable either because it should be simple and I need very
fine
control granularity, down to around 0.1%.

Can't use short-lived consumer chips for radios and TV sets and
such.
How about a sawtooth or triangle waveform and a comparator. Close a
feedback loop around that, with a PWM to DC converter; the PWM-DC
part
can be made very linear.

That's what I wanted to avoid for real estate reasons. But if I hafta
I'll do it.

If you want 0.1% accuracy, you might be able to do it open-loop, with
a very
linear ramp, but it will be hard at that frequency. If you only want
0.1%
resolution ("granularity"?) it's not so bad.

Can you use delta-sigma? There are some integrated d-s modulators
around.


I could but then I'd have to build a one-shot that stretches the pulses
into a very precise length and that's almost the same kind of challenge
as building my own PWM generator (needs too much space).

Can the pulse width be dithered or does each pulse width have to adjust
to within 0.1% of the needed value? I think a digital solution could do
this if you just need the average pulse width to match.


Dither is a problem. If it's dithering between 2-3 consecutive pulses,
maybe, but it would be a serious compromise.

This does not mean I am ruling anything out at this point, it's just
that I'd first like to see if there is a class-D chip that can be
pressed into service. Thise have very clean PWM, just not down to DC
because offset voltages and stuff aren't important for audio.

I'm not clear on your answer. To make sure you understand what I am
suggesting... You can use a slower counter clock if you dither the
pulse width. In reality you would need to use some feedback similar to
a sigma-delta circuit. The pulse width would only vary from ideal by a
fraction of a count at any one time and the error could be accumulated
and used to add a delta on the next pulse width. Another plus is that
the feedback loop can be internal to the digital circuit since the error
source is the low order bits that are being truncated.

I think John Larkin has picked up on this judging from his post. The
question is whether the small instantaneous deviations will make a
difference. Similar to sigma-delta the "noise" would be at a high
frequency.

What this means is that my filter after the power stage would have to
roll off at lower frequencies, to combat the resulting noise. That lead
to two not so nice effects: Larger magnetics in a product where small
size is very important. Also more ringing upon rapid control signal
changes which becomes harder to mitigate the lower the ringing frequency is.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 5/30/2014 3:35 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 3:02 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need
a base
frequency for your counter of 1GHz. I don't know any CPU that could
do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.


I bet an FPGA with some minor analog sprinkles around it could do this
job nicely. But that would be like using a Porsche to go to the grocery
store.

And what is wrong with that? Porche makes a mom-mobile! ...


For the ritzy crowd with beaucoup disposable income, yes.

Have you looked at the price of a Honda lately? There are *no* cheap cars.


... FPGAs come in
lean, mean sizes for any budget. If you are short on board space they
even come in some pretty teeny-tiny packages if you don't mind very fine
pitch BGA type things. Otherwise they just come in small packages.


It is like shooting a fly with a 50mm canon. The fly will be killed dead
for sure, as John Wayne would say, but it's overkill. We have no people
who can program FPGA. It ain't in the budget (yet).

You can make any analogy you wish, but mostly people just don't "get"
FPGAs. You have no people with FPGA experience, so I expect you won't
be learning much more about them in the future. They really aren't so
hard.


Actually a digital approach would need either the comparator that you
seem to not like or an ADC which might be a better match. If you need
up to a 1 MHz pulse rate I assume you would need a 1 MHz ADC sample rate
which is not too hard, but it would start to use a few mA. It's been a
while since I've looked at ADCs at that rate but I know they are not
hard to find, especially with only 10 or 12 bits.


The required rate of change is only up to about 15kHz and transferring
the analog control signal to digital at 100ksps or so is a piece of
cake. Can be done with a very tiny ADC.

The requirements seem to be a bit vague. So the sample rate would only
need to be 100 ksps? So why is the pulse rate up to 1 MHz? Can the
pulse widths be dithered across 10 pulses? That can lower the clock
rate by 10x.


The rest is easy... 1 GHz clock might be a bit tricky in one of the
very low power FPGAs, but maybe. The dual latches used for DDR work
might just enable this on a pretty low power device. It would be an
interesting design task. Either way one of the conventional FPGAs could
handle this easily I'm sure and the smaller ones don't suck so much
power. I could poke around a bit if you are interested.


Maybe not just yet because I want to find out whether we can just plop
in a class-D chip. We don't have a budget for an extra FPGA design for
this phase. But that could change when this becomes a product and I'll
keep you in mind (assuming you can legally do freelance work, as in not
bound by an employer).

Yeah, I get that. Simpler is better and if you understand it well, that
makes it simpler.

No employer other than myself. :) Happy to help if you need it.

--

Rick
 
On Fri, 30 May 2014 12:35:10 -0700, Joerg <invalid@invalid.invalid>
wrote:

rickman wrote:
On 5/30/2014 3:02 PM, Joerg wrote:
rickman wrote:
On 5/30/2014 12:42 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den fredag den 30. maj 2014 17.32.27 UTC+2 skrev Reinhardt Behm:


But generating a PWM at 1MHz with a resolution of 0.1% mean you need
a base
frequency for your counter of 1GHz. I don't know any CPU that could
do that.

he did say the input was limited to 15KHz, so 2*15K*1000 >= 30MHz
plenty of cpus that can do that


But their timers won't run faster than MLCK and that seriously limits
the granularity if the PWM has to pipe out at a MHz. I'd need almost a
Giggeehoitz. Not that it can't be done but that's a really fat CPU.

This is starting to sound like a job for FPGAman! Where's my cape?
Durn, at the cleaners after that messy SERDES job.


I bet an FPGA with some minor analog sprinkles around it could do this
job nicely. But that would be like using a Porsche to go to the grocery
store.

And what is wrong with that? Porche makes a mom-mobile! ...


For the ritzy crowd with beaucoup disposable income, yes.


... FPGAs come in
lean, mean sizes for any budget. If you are short on board space they
even come in some pretty teeny-tiny packages if you don't mind very fine
pitch BGA type things. Otherwise they just come in small packages.


It is like shooting a fly with a 50mm canon. The fly will be killed dead
for sure, as John Wayne would say, but it's overkill. We have no people
who can program FPGA. It ain't in the budget (yet).

I know a guy, if you're ever interested. We swap Visio block diagrams
to define the function, and then he codes it.

Some of the so-called CPLDs are actually small FPGAs with internal
flash, cost roughly $1.50 in low volumes. It's liberating to have all
that logic available.



--

John Larkin Highland Technology, Inc

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com
 

Welcome to EDABoard.com

Sponsor

Back
Top