2
\$\begingroup\$

I have a system that currently uses two Maxim DS1867 digital potentiometers in a daisy-chain configuration. In a new addition to the system I would like to use a new digital potentiometer part like the Analog Devices AD5142 for availability and reduced footprint size. Both of these parts have two (2) 8-bit potentiometers, but the problem is that the DS1867 uses a 17-bit serial communication string with the first bit being an unused stack select bit, while the AD5142 uses only 16-bits in its communication stream. This wouldn't be a problem if only one part were used but I need to be able to daisy-chain the parts.

What sort of circuit should I be looking at that could throw out the first bit of every 17-bit sequence so that I can use the existing data stream?

\$\endgroup\$
8
  • \$\begingroup\$ wow, this is an interesting one. do you not have access to the serial communications from the system?? \$\endgroup\$ – KyranF Oct 10 '14 at 15:00
  • \$\begingroup\$ @KyranF in theory the serial communication could be changed, however due to personnel changes doing so would be a time-consuming process. So I'm investigating what could be done to make the new part compatible with the legacy communication. \$\endgroup\$ – DakotaD Oct 10 '14 at 15:27
  • \$\begingroup\$ So you want to want to truncate the 17-bit strings to 16 bits each and then concatenate them in order to yield a contiguous 32 bit string to stream? \$\endgroup\$ – EM Fields Oct 10 '14 at 15:32
  • \$\begingroup\$ making a whole new PCB though, and the amount of crazy components or ICs you might need to do this.. I think it's worth at least investigating the software side of this problem. In terms of implementing a 1st bit dropper, perhaps you can use a simple latch (on first rising edge) and unlatch (on second rising edge) with P channel FET or a single bit non-inverting line driver (with an enable pin) to disconnect during the first bit transmission, but reconnect for the next 16 bits. Use a hex counter to count the 17 bits total and reset the entire logic circuit ready for the next packet \$\endgroup\$ – KyranF Oct 10 '14 at 15:35
  • \$\begingroup\$ @EMFields yes that is essentially what needs to be done \$\endgroup\$ – DakotaD Oct 10 '14 at 15:53
4
\$\begingroup\$

For each 16 bit device (other than the final one) put a single D type flip flop on the output and use it's output as feed to the next 16 bit device. The d type will soak up each 17th bit or, looking in a different way, the d type makes the 16 bit device a 17 bit device.

\$\endgroup\$
2
  • 2
    \$\begingroup\$ That's not what he wants, though. He already has two 17 bit words that he concatenates and sends to two Maxim pots as a single 34 bit serial word. What he's got now are two Analog Devices pots which want to see 16 bit words each, so he wants a way to strip the first bit off of each 17 bit word, then concatenate the now 16 bit words and send them as a single 32 bit serial word to the AD pots. \$\endgroup\$ – EM Fields Oct 10 '14 at 20:51
  • \$\begingroup\$ @emfields I think, by adding a d type, after each device it soaks up the 17th bit. I'm not 100% confident because I'm on holiday on an android phone. \$\endgroup\$ – Andy aka Oct 10 '14 at 23:18
0
\$\begingroup\$

If you have available the 34 bit serial data stream, data clock, and you must do it in hardware, a brute-force way would be to read the 34 bits into a 34 bit serial-in parallel-out shift register, then to broadside load the 32 desired bits into a 32 bit parallel-in serial-out shift register and shift them out as a single 32 bit word to the daisy-chained pots.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.