Looking for a D -> A converter

Go To Last Post
13 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Require to convert a pulse stream to an analogue value.

Stepper motor control signals consisting of two flags:

step

direction

Step flag pulses to initiate one ( micro)step

direction flag instructs direction of movement.

Wish to recover cumulative number of steps as an analog voltage appropriately weighed by direction flag.

So for instance clockwise movement from a point increases the analogue voltage while the anticlockwise movement decreases the analogue voltage.

A sixteen bit DAC with a 16 bit parallel interface hanging off a 16 bit up down counter is ideal.

Analogue bandwidth say up to 64KHz

Any suggestions, hints comments, told You so etc welcome

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

long long time ago I have played with DAcs, back then analog devices had a whole range of them. perhaps take a look there.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Maxim and linear do have some.. quite expensive .

Will try out a Linear 16 bit unit LTC1657 if I can get hold of it

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

A sixteen bit DAC with a 16 bit parallel interface hanging off a 16 bit up down counter is ideal.

Sounds like you just described an R-2R ;-)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes precisely..but preceded by a 16 bit counter with an up down input and clock input.
A clear line would be required also and possibly preset line.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So is there some reason you cannot simply use a pack of accurate resistors? I know you can get R-2R's in 8's not sure if they come in 16's?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The .01% Rs cost more than the laser trimmed dac. What you need is an opamp integrator running from +-5V on the step signal. Run the dir signal thru an opamp to make it + or -5 so it will integrate/accumulate up or down with dir. Done.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

Any suggestions, hints comments, told You so etc welcome

After a first read, I don't really see the utility.

The discussion is on a very accurate DAC with high resolution. By the very nature, that type of analog-subsystem design is tough, because it needs to be squeaky-clean.

Then (reading between the lines) this analog voltage is going to be read to indicate "position". Voltmeter, or precision ADC. In either case, for one part out of 100000 you need accuracy of 0.001%. And not lose ANYTHING connecting the DAC to the ADC--an admirable goal but not easily achieved in the real world.

You have the steps and know the position. So just use that digital number. If you want to display it as a dial, then do that. If you want to display position, do that. Done. In the same AVR that is doing the step counting.

BTW, high-precision ADCs 16+ bits are slow (generally). Nowhere near 64kHz. (Do you really need to update position every 15us?!?)

Yes, you might do that in CNC or similar. But then you don't do digital->analog->digital.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Can you say anything more abut the overall project?

As noted, a 16-bit DAC will be a bit of an analog challenge? You need a super good op-amp and super good power supply, or the drift and offset will negate using a 16-bit value.

Is this running on an AVR, or a bigger chip? If it is running on an AVR then why use up two ports for the interface to a DAC chip? You ought to be able to handle 64KS/S without a parallel interface.

Info on what the DAC is driving would be helpful, if you can share that.

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The idea is follows.

I use a small UV laser to expose photo sensitive material.
The laser is positioned by a couple of linear motors operating in a closed loop with glass scales ( 5micrometer in quadrature resolution).

Great result take for ever to do the job.

This was OK a few years back when 100mW was significant.
I can now obtain a solid state laser diode in the 600mW range quite readily.

So out comes an XY galvanometric movement both axis with closed loop drive based on capacitive divider sensor.

So rather than moving the heavy platform and photosensitive sheet,
the idea is to investigate analogue galvanometric movement.

Yes it will be a sxit fight but i might increase through put by at least an order of magnitude or more. Well worth the effort.

So the control chain is..PC runing linux .. supporting linuxCNC application .. driving what it thinks is a pair of stepper motors .. into the step direction to analogue converter..into the galvo driver.

Simples ...

The DAC needs to be good enough for audio as the laser energy and photo sensitive material indicate a maximum step rate of 15000steps/second ( energy limited movement )

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ignoramus wrote:
Require to convert a pulse stream to an analogue value.

Stepper motor control signals consisting of two flags:

step

direction


Consider using a 16-bit DAC with an SPI interface rather than a parallel one. The Maxim MAX5541 is one candidate.

Instead of a 16-bit up/down counter, use an ATtiny2313A running at 20MHz.

With a 64KHz step rate (I'm assuming an 8x or 16x microsteps) gives 15.625 uS between steps.

The 2313A would convert the Step and Direction inputs to a 16-bit value and send that to the DAC via the SPI interface.

You would need a buffer/amp between the DAC output and your device.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Chuck,

Good sugestion.Thank You

Serial ( SPI ) interface devices seem to offer less expensive options.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've been using the 16-bit TI SPI DAC8830 in a low power project which I am quite pleased with.

For full 16-bit effectiveness there must be attention to:

- Selection of a voltage reference for noise, temperature coefficient and load regulation to accommodate changes of the DAC reference input resistance to bit settings.

- Selection of reference voltage to achieve the desired DAC output voltage without resistive scaling.

- If resistive scaling must be done for either DAC input or output the resistors must have very low temperature coefficients.

Typical 50ppm/°C precision metal film resistors and 100ppm/°C trimpots can be a headache from minor system self-heating. Suggest (bulk) metal foil resistors like those from Vishay VPG brand, but they're pricey with limited value selections. Better are the VSMP Series Z-Foil which can be ordered with quick delivery from various Catalog Houses which can trim them to your order, where the data sheet gives ordering information showing a 5-digit resistance value, also pricey. Disclaimer - I have not ordered any of the VSMP series. Another solution is the 2ppm/°C tracking divider networks - Vishay MPM, limited ratio values, affordable. For buffering, amplifying use zero-drift CMOS opamps like the OPA333.

For DAC and reference selection - collect data sheets of likely devices, make a spreadsheet with critical parameters. You'll find that the MAX5541 has a reference input limitation of 2.0V to 3.0V, while the DAC8830 reference input can range from 1.25V to Vdd. Reference REF3233 was my other selection. The selection of usable devices for my low power project was quite limited.

To evaluate for performance a 6.5-digit DMM is needed. I have an Agilent 34461A and a Keithley 2000. The 34461A graphical trend display and data capture to a USB thumb drive features are excellent.

From my limited experience with resistors in this project I cannot comprehend the details in design, component acquisition and manufacture of those 6.5-digit DMM's.

Stan