Shop OBEX P1 Docs P2 Docs Learn Events
Need help with DAC (Digital => Analog Conversion) — Parallax Forums

Need help with DAC (Digital => Analog Conversion)

John R.John R. Posts: 1,376
edited 2010-03-03 15:26 in Propeller 1
Short Question: I need to generate a 0 - 10 volt signal, controlled from the Prop.

Background and details:

I have acquired an xyz gantry system with Pittman servo motors. This unit is/was a Hamilton Micro Lab 2200. The original controller boards were meant for "pick and place". The system basically has a number of pipettes (think very expensive syringes with very fine control of the output) and can place nano-liter (drop) sized samples in a series of cells.

I am working on converting this into a light duty CNC machine. I plan to mount something like a Dremel tool on the Z axis.

There is a very serviceable amplifier board that I'd like to use to drive the motors. I've had this hooked up with a 10K pot, and can get the X axis moving back and fort. The signal to the amplifier board is a 0 to 10 Volt input.

I have ready access to +5 Volts, + and - 12 Volts, and + 28 Volts. I tied the ends of the 10K pot to Ground and + 12 volts, and used the center tap for the signal.

5 volts is "neutral", lower drives the motor one direction, higher the opposite. The farther from the 5 volt center, the faster the motor is driven.

I tried looking at Digikey for a DAC integrated circuit, and was rather quickly overwhelmed.

The current draw is minimal on the signal is minimal.

Position feedback is via a TTL quadrature encoder.

What are my options to drive the amplifier?

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
John R.
Click here to see my Nomad Build Log

Comments

  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2010-03-02 04:01
    Just use the RC DAC circuit fed into a non-inverting gain opamp as in the circuit attached. With these values you will have 0-10V using very simple code such as this method:

    pri SetDAC(dacpin,value)
      dira[noparse][[/noparse]dacpin]~~
      outa[noparse][[/noparse]dacpin]~
      ctra := %00110<<26 + dacpin
      frqa := value
    
    



    Anyway try it as I am sure it will do what you want.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    *Peter*
    686 x 293 - 12K
  • kwinnkwinn Posts: 8,697
    edited 2010-03-02 04:11
    I am assuming that you will be using a prop since this is posted in the propeller forum. The simplest would be to use PWM on 3 pins to produce the drive voltage and an op amp to buffer and amplify/shift it to the required 0-10V range. An alternative would be to use a quad dac chip, also with an op amp. I would suggest going with a 12 bit dac unless there is a "dead" zone around the 5V point so the voltage can be controlled precisely enough to stop the motor.
  • John R.John R. Posts: 1,376
    edited 2010-03-03 15:26
    Thanks for the ideas. I'll be doing some testing in the coming days and over the weekend. There is a DAC chip on the original logic board that I might try and pull out just for some testing.

    I'm not sure how much of a dead zone there is, and I don't know if it matters. I'll need to be monitoring the encoders to keep the motors on position anyway, so if it starts to drift, it will need to be driven back anyway. Whether this drift is caused by external forces, or by not quite being at 5 volts may not be relavent.

    Foir a true "rest", as in "Stop", I'll be killing the motor power to the amp board. This also makes the 5 volt thing a little less critical.

    Again, thanks for the toughts, and if there are any other ideas, feel free to jump in.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    John R.
    Click here to see my Nomad Build Log
Sign In or Register to comment.