2
\$\begingroup\$

I am assembling a few data acquisition fixtures and would like my software to be able to identify the fixtures programatically. I have a breadboard that I can use for basic circuits. The DUT signals come into the fixture, can interact with the circuits on the breadboard, then from there it is connected to the DAQ hardware.

The DAQ hardware has 16 available digital IO lines I can use. At first I thought I would just pull some of the pins up and down with jumpers to put an 8bit identifier but then I thought it would be cool if there were chips that presented a fixed value.

To clarify, I would like to direct connect a chips pins to my DAQ digital IO pins so that I can read a value encoded in the chip. This is to prevent someone tampering with it and generally raise the level of security for the solution.

I searched for such a chip but cannot find one. I do not want anything I need to program or that requires significant support circuitry; just looking for a super simple, single chip solution to put a fixed value on my digital lines.

BTW, in case it's not obvious: I'm an electronics newbie... big time.

\$\endgroup\$
2
  • \$\begingroup\$ why not just set of test (SOT) resistors. This is what is done in practice. \$\endgroup\$
    – user16222
    Commented Dec 11, 2016 at 0:05
  • \$\begingroup\$ I probably should have mentioned that I don't have a PCB in the fixture, but rather a breadboard and as such I wanted something that wouldn't be easily molested, accidentally or otherwise. I had to google "SOT" :) \$\endgroup\$
    – Steve K
    Commented Dec 11, 2016 at 0:47

4 Answers 4

4
\$\begingroup\$

Usually when we need something like that, an EEPROM is used. It's convenient to be able to change the numbers at will then lock them. Some EEPROMs are available pre-programmed with unique numbers such as MAC addresses.

For a few bits, these things are still available (called DIP shunts).

enter image description here

To program them to any of the 255 other possible combinations, you poke through the hole and break the connection as so:

enter image description here

Of course you could always use a DIP switch, but that would be easier to change.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ I accepted your answer because it most closely addresses my original question. Not to say I will stick with my plan after reading the great responses and comments, but I thought you deserved the answer for finding the "DIP shunts" - thanks! \$\endgroup\$
    – Steve K
    Commented Dec 11, 2016 at 0:49
  • \$\begingroup\$ BTW, DigiKey part \$\endgroup\$
    – Steve K
    Commented Dec 11, 2016 at 1:41
  • 1
    \$\begingroup\$ Even if such a device is used, one would often need to combine it with something else unless one has a generous amount of I/O available. Still, it may be more convenient than cutting traces. \$\endgroup\$
    – supercat
    Commented Dec 11, 2016 at 16:07
3
\$\begingroup\$

AFAIK, there's no such chip. Because there is not a large market for a $0.50 product that has the same function you could achieve with $0.05 worth of resistors, or essentially $0.00 of wires on a PWB.

There is a product category called secure authenticators, however these will provide more features, and so require a more complex interface, than what you suggested.

Another option is to use an EEPROM, perhaps with a 2 or 3-wire interface. Interacting with the EEPROM would require a sequence of steps rather than just reading pin values, but it would also allow storing more information. Often things like board revision code, assembly revision code, manufacturing date, etc., are stored in EEPROMs for programmatic access.

Of course if you just want to know the PWB revision, the easiest solution is simply use traces to connect some pins to Vdd and some to ground.

\$\endgroup\$
9
  • 1
    \$\begingroup\$ Maxim (formerly Dallas) has some "one-wire" ID chips which make no pretext of being "secure", but can fairly easily read out a 64-bit ID which is guaranteed to be unique; with a little bit more work, if one has many such chips connected together it's possible to read the IDs of all of them. \$\endgroup\$
    – supercat
    Commented Dec 11, 2016 at 0:26
  • \$\begingroup\$ @supercat, I was thinking of that when I went to Maxim's site and found the authenticator parts...but I didn't find the ID parts...got a link? \$\endgroup\$
    – The Photon
    Commented Dec 11, 2016 at 0:28
  • 1
    \$\begingroup\$ Any of the DS memory chips should have such an ID. \$\endgroup\$ Commented Dec 11, 2016 at 0:52
  • \$\begingroup\$ @The Photon - You've piqued my interest about the use of the EEPROM, if nothing else it sounds like a good excuse to learn something new. First thing I need to find out is can my DAQ hardware interact with the EEPROM? I'll try looking for some intro tutorials on EEPROM to understand the communication mechanisms. \$\endgroup\$
    – Steve K
    Commented Dec 11, 2016 at 0:52
  • \$\begingroup\$ @SteveK, if the IO pins are bidirectional, you should be able to interface with an I2C EEPROM; however it will be very slow (milliseconds to 100's of ms per transaction). \$\endgroup\$
    – The Photon
    Commented Dec 11, 2016 at 0:54
2
\$\begingroup\$

Yes, there are number-coded ICs intended for microprocessor identification applications such as you describe. Maxim makes several variants DS2401 . They typically require one I/O pin, and are interrogated by an easily programmed logic sequence. As I read the datasheet, it seems that a number of these can be chained together, and there are extra features available in addition to ID numbering. enter image description here

\$\endgroup\$
1
\$\begingroup\$

Another option not yet mentioned if one has two pins available with pull-ups and ADCs would be to have have a location for a resistor between each pin and ground, and another between the two pins. It should be possible, by stuffing different resistors, to end up with more than 256 clearly-distinct combinations of values, though if one wants to map those to values 0-255 the software might be a little tricky (it may be easier to map readings to a 16-bit code, of which some values would be possible and some not, and then have a table to map those to values 0-255).

With the circuitry as indicated, one could take the following ADC readings:

Enable both weak pull-ups; read input A Enable both weak pull-ups; read input B Output high on A; float and read B Output high on B; float and read A Output low on A; pull-up and read B Output low on B; pull-up and read A

Additional readings would also be possible, but it should be possible to identify more than 256 combinations of resistors that would yield clearly- distinct sets of readings in the above scenarios (if one uses two decades' worth of six-per-decade resistors, that could yield more than 1600 possible combinations; some of them may be hard to distinguish, but I would expect that there would be at least 256 distinct ones.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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