1

I am currently building a project involving a laser scanner (two galvanometers with mirrors that deflect a laser beam) that I want to control. The galvos need +-10V differential signals (and I'd like to have a least 12Bit) that I want create with some small board.

Most Arduinos I know use PWM to create an analog output which is not usable for this project. I found the Teensy3.1 which has at least one 12Bit DAC so that also doesn't work. An alternative would be a DAC breakout board like "MCP4725" but it would be nicer to just have a single board with no additional parts.

The best thing would be a small board with already two 12Bit DACs. (even If I had to upscale the voltage +-10v)

Is there a board I haven't found so far? Or have I missed a completely different approach?

FooTheBar
  • 182
  • 1
  • 1
  • 7

1 Answers1

2

For 12-bit dual DAC you want the MCP4822 which has two channels of 0-4.095V in 1mV steps.

The output of that you would then need to pass through a suitable amplifier arrangement with an op-amp giving a gain of 5 and adding an offset of -10V. The gain would change the 0-4.095V to 0-20.475V, and the -10V offset would change that to -10V to +10.475V. If you want to get more precise you could use an offset of -10.2375V (it's not easy to make an offset voltage that precise) then you would get -10.2375V to 10.2375V in 12-bit resolution.

It's doubtful you'll find a board already made up with that specific arrangement (it's fairly specialised) but it's not something that's hard to make - all the components are available as DIP or other through hole components, and the circuit for the amplification stage is pretty simple (check for non-inverting op-amp circuits online, there's millions), so building it up on strip board or matrix board would be easy enough.

Majenko
  • 105,095
  • 5
  • 79
  • 137
  • Thanks! Did you already know this component or how did you search for it? I only found SMD-parts (like the MAX5322) when searching and I don't have the equipment for them. – FooTheBar Aug 15 '15 at 10:31
  • It's a component I know well. I have a number of them in my bits box, they're very useful. – Majenko Aug 15 '15 at 10:33
  • If you already used it, could you maybe check if I understand the chip correctly: To communicate, I send two-byte messages as described on page 22 and select the output via bit 15, set Bit 13 to 1 to get the 4.095-Range, SHDN(12) to 1 to enable the output and fill 11-0 with my data. To synchronize the outputs, I set the LDAC-Pin(5) to high (VDD, Pin1), write messages for both outputs, set it back to VSS (Pin7) and then the output-voltage is updated. – FooTheBar Aug 15 '15 at 11:35
  • From what I recall that sounds right, Yes. – Majenko Aug 15 '15 at 12:02
  • I just found thist library: http://hacking.majenko.co.uk/MCPDAC :) I think that's an easier way to use the chip – FooTheBar Aug 15 '15 at 12:03
  • You might find thats out of date. Check github for the latest version – Majenko Aug 15 '15 at 12:04
  • https://github.com/MajenkoLibraries/MCPDAC – Majenko Aug 15 '15 at 12:55