0

I have an existing product which I'm tasked to add an electronically read serial number to. There are specialized ICs for the purpose but they all require some initialization or handshaking before the serial number is sent out, but all I have access to is a (fairly slow) clock and an enable signal from power-on-reset circuity or user pressing a manual reset button. I can't ask the end user to press the button in many kHz rate and "Morse code key" an SPI sequence or emulate an I2C master. Also the circuit would reset each time. Downstream is much simpler though, there I can decode whatever protocol is needed or parse out the serial number from whatever structure. I basically don't have any mean of an incoming RX, just outgoing TX and I just need it to bootstrap itself.

I'm an analog guy out of my element here and I need help with some search term for how to proceed.

I'm sure and MCU would do this for me, but it would require software environment, programming in mass production, revision control and what not. If everything else fails, this is my backup solution.

What search terms should I be using? Silicon serial number (seems related to Maxim and all 1-Wire)? Unique serial number IC (Microchip I2C EEPROMS turns up here)? Is there some weird memory type which once programmed will just dump it's contents once started, or can be configured to do so?

EDIT: The product does not contain an MCU today.

winny
  • 13,064
  • 6
  • 46
  • 63
  • Have you given any thought to how you will program a unique serial number onto each unit? – user28910 Feb 12 '21 at 16:03
  • Winny, are you saying you are not allowed to modify the software on this one unit, but you are perfectly allowed to modify the software on the other end? And that you must have a means of retrieving a unique serial number from the device whose software you cannot modify? Something like that? Yet you *are* allowed to modify the hardware, so long as the modification does not interfere with the existing software behavior on power-up? Are you allowed more wires between the two? If not, what exactly do you have right now between them? – jonk Feb 12 '21 at 16:51
  • @user28910 The “silicon serial number” ICs have it built in from the factory. No need to program. Also, EEPROMs can be ordered pre-programmed. – winny Feb 12 '21 at 18:05
  • @Jonk The product does not contain an MCU. To make it contain one, an MCU vendor needs to be audited and qualified, any software suite budgeted for, a virtualization environment and build scrips reviewed and approved, a request for software written, approved and pushed to the backlog. The software team needs to pick it, their ScrumMaster approve it and so on. It’s like Dilbert but in real life. But hardware, that I’m in full control over. – winny Feb 12 '21 at 18:09
  • What do you mean with "electrically read"?`What exactly are the constraints on that "outgoing TX"? Do you have control over how many electrical signals you can use, or add? – CL. Feb 13 '21 at 09:00
  • @CL. When the system boots or is reset, I can listen in on my only single TX line and I wish to capture the serial number being sent (asynchronously). Not much constrains. It can’t be too fast but decoding I2C and parse out any header or similar is no problem. – winny Feb 13 '21 at 09:03
  • so you can't spare a bidirectional line which could just connect to a 1-wire? – Jasen Слава Україні Feb 13 '21 at 10:40
  • @Jasen Hardware limitation. TX only. – winny Feb 13 '21 at 10:41
  • Why is there a TX line when there is no MCU? What *is* that line? – CL. Feb 13 '21 at 13:41
  • @CL. Opamps, comparator, reference, clock generator and good old 74-series logic to basically bitbang out system status in a crude but good enough way. I wish to bitbang a serial number there on startup to facilitate deployment and service. – winny Feb 13 '21 at 21:07
  • the only simple serial memories seem to be FPGA configuration memories, but if you use one of those you'll need to write the serial number to the memory chip yourself. so you may as well use a cheap microcontroller. – Jasen Слава Україні Feb 14 '21 at 05:19
  • That is information that would have belonged in the question in the first place. Also, how many bits do you need? How do you prefer do program the number? Could you use 74xx165? – CL. Feb 14 '21 at 08:31

2 Answers2

0

Your idea is correct. The 1-wire products are widely used for that. However you can look for a serial number alike in various places, in you MCU for example:

  • If you have ethernet or bluetooth it will have a MAC which is globally unique;
  • Some MCUs have some kind of production marker (TI calls it 'silicon record'), so from the wafer id and coordinated you could compute a useful silicon number;
  • Some MCUs have an 'unclonable' facility which is actually a unique number which is factory assigned;
  • If everything else fail you could generate some kind of truly random bit sequence (something like 128) and save it in flash/eeprom; this is a kind of UUID too and it's useful as a serial number.

When above I said MCU you could look for the feature in FPGAs and even some peripheral chip.

Lorenzo Marcantonio
  • 8,231
  • 7
  • 28
0

Turns out the magic search term was "Transmit-Only Mode" which some I2C EEPROMS feature. Documented but not really advertised either.

If anyone looks for something similar, the Microchip 24LC22A does feature Transmit-Only Mode with just a pull-up and a clock. enter image description here

Datasheet

winny
  • 13,064
  • 6
  • 46
  • 63