This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DAC7621: Encoder DAC Circuit

Part Number: DAC7621
Other Parts Discussed in Thread: ENERGIA

Hello,

To measure crank shaft position, I've been using voltage from a pot that endlessly rolls over. During the "roll over" period, there is about 5-10 degrees that is unaccounted for. I've since then been exploring the option of using a rotary encoder in place of the pot - this would require a DAC, which is where this IC comes into play. 

The rotary encoder that I am using is a 2500 PPR, Line Driver encoder shown below (I've also attached the datasheet).

I've done some looking around and I saw one circuit that involved a PLD, is this necessary? If not, how can I link the encoder and DAC together?

I'm wondering how I can incorporate the encoder and the DAC to have the output of the crank position become a voltage while not losing any rotation like the pot was. 

Rotary Encoder TRD_S_SH.pdf

Thanks in advance!

Gage

  • Hi Gage,

    I do not know of any DAC that can accept this data format directly (line drive or open collector version). The majority of our devices are I2C, SPI, or parallel input controlled. There is likely a way to convert the output into a counter that could be used on a parallel input DAC (like the DAC7621), but it looks like this encoder only has quarter turn resolution, so you would only need a 2-bit DAC. There is an article on EDN showing how to make a analog output for an encoder, but I think that is really more of an RPM meter rather than a angular output.

    You might consider a very simple microcontroller?

    Thanks!
    Paul
  • Hi, thanks for the info! I took a look on EDN and found this article:

    He uses a MSP430F processor to decode the quad rather encoder. Do you suggest this as well?

    I’ve done stuff with micro controllers, but never from scratch like this. What programs would be needed to write the code for it? And what language?

    Thanks,

    Gage

  • This is a pretty basic application, I would use a simple MCU. You could consider the launchpad as a starting point.
    www.ti.com/.../MSP-EXP430G2

    It can be programmed in C or in the Energia environment, which is very easy.

    Thanks!
    Paul