11 Replies Latest reply on Feb 12, 2013 6:31 PM by user_14586677

    Unique Die Serial Number

    user_14586677

      There is a recurring problem in customer base, need for a unique silicon die

         

      ID for each chip. This is not a Device ID, as currently implemented. Something

         

      akin to this

         

       

         

      http://www.maximintegrated.com/datasheet/index.mvp/id/2903?ver=E&t=al&utm_expid=50713806-2&utm_referrer=http%3A%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3Dmaxim%2Bsilicon%2Bid%26source%3Dweb%26cd%3D1%26ved%3D0CC8QFjAA%26url%3Dhttp%253A%252F%252Fwww.maximintegrated.com%252Fdatasheet%252Findex.mvp%252Fid%252F2903%26ei%3DvbQKUZ7EDojr0gGE5YHoBQ%26usg%3DAFQjCNHMcL3cFAqD3zcOFyRmguDpXeg1AQ%26bvm%3Dbv.41642243%2Cd.dmg

         

       

         

      Would it be possible to implement thru programmer ? All PSOC Families ? Auto generated, say off a tax number, GPS

         

      coordinates, or IP group number, something unique to the customer. Even a Cypress seed for those who are consultants,

         

      the generated serial # stored in FLASH or EEPROM, and then protected as read only during programming.

         

       

         

      Regards, Dana.

        • 1. Re: Unique Die Serial Number
          user_2405011

           Dana,

             

          PSoC3 and 5 do have a kind of die number. It's called PseudoID and it reflects the die date, number and x and y position. It's unique for each part however there's no 100% guarantee.

             

           

             

          For PSoC1 there's no unique number. 

             

           

             

          I've made software to program PSoC with an unique serial number for production.

             

           

             

          i'll give you more details as soon as I am home (mobile atm)

             

           

             

          Regards,

             

          Rolf

          • 2. Re: Unique Die Serial Number
            user_14586677

            x and y position sounds like the coordinates of the die on the wafer ?

               

            If so definitely would not be unique, wafer to wafer, same production

               

            fab day.

               

             

               

            I look forward to your post on how you did this.

               

             

               

            Regards, Dana.

            • 3. Re: Unique Die Serial Number
              user_2405011

               Hi Dana,

                 

               

                 

              There are 8 bytes stored at the so called "Customer Tables" which might be of your interest. The Customer Tables are located in flash area at 0x000C0100u, consists of 64 bytes and are written during manufacturing time. The first 8 bytes belongs to the Pseudo Unique ID.

                 

               

                 

              Please have a look at page 1639 of the PSoC® 3 Registers TRM: http://www.cypress.com/?rID=37833

                 

               

                 

              0x000C0100u - Y location of die on the wafer (row number)

                 

              0x000C0101u - X location of die on the wafer (column number)

                 

              0x000C0102u - Wafer Number: 1 to 24

                 

              0x000C0103u - LSB of lot number/wafer start

                 

              0x000C0104u - MSB of lot number/wafer start

                 

              0x000C0105u - Work week: 1 to 53

                 

              0x000C0106u - [7:4] Fab Number: 4 or 5 & [3:0] Year: 0 to 9

                 

              0x000C0107u - Marketing part number - minor: 000 to 999

                 

               

                 

              Be aware of the fact that the year can roll over from 9 to 0 and that there's no testing done if these values are correct programmed. So this number is not guaranteed to be unique.

                 

               

                 

              Also have a look at your "cydevice.c" in your project, these locations are already defined:

                 

              #define CYDEV_FLSHID_CUST_TABLES_Y_LOC 0x000c0100u

                 

              etc..

                 

               

                 

              To read these values within your firmware, you can just use the following:

                 

              unsigned char   ID_Y_LOC = CY_GET_XTND_REG8( (void far *) CYDEV_FLSHID_CUST_TABLES_Y_LOC);

                 

               

                 

              To read these values from MiniProg3, you have to use the PP-COM component and do the following:

                 

              - Aquire the PSoC

                 

              - Read Wafer ID from customer tables

                 

                          pp.swdiow(0x4720, 0xB6);    // First initiation key

                 

                          pp.swdiow(0x4720, 0xDD);    // READ_HIDDEN_ROW opcode

                 

                          pp.swdiow(0x4720, 0x0A);    // READ_HIDDEN_ROW opcode

                 

                          pp.swdiow(0x4720, 0x00);    // Flash Array ID

                 

                          pp.swdiow(0x4720, 0x01);    // RowID of Protection bytes row

                 

                          byte Val; string PSoCpseudo = "";

                 

                          ReadIO(0x4720, out Val);

                 

                          for (int i = 0; i < 256; i++)

                 

                          {

                 

                              ReadIO(0x4720, out Val);

                 

                              if (i < 8)

                 

                              {

                 

                                  PSoCpseudo += Val.ToString("X2");

                 

                              }

                 

                          }

                 

               Hope this helps you out!

                 

               

                 

              Regards, Rolf

              • 4. Re: Unique Die Serial Number
                user_14586677

                So it looks like, in the worst case, there will be 24 parts bearing the same ID.

                   

                But this may be good enough for many users.

                   

                 

                   

                Thanks Rolf.

                   

                 

                   

                Regards, Dana.

                • 5. Re: Unique Die Serial Number
                  user_2405011

                   You're welcome!

                     

                   

                     

                  Don't get how you get to 24? Anyway, the ID is not guaranteed to be unique, but for most applications it is not a problem. I use the Pseudo ID in an application where multiple PSoCs are communicating over a single bus and it works great!

                     

                   

                     

                  For PSoC1 I use the PP_COM library with a custom made application to program the unique serial number on the fly. The program loads the lastest firmware from a server and puts the number at the right place in flash.

                     

                   

                     

                  Regards!

                     

                  Rolf

                  • 6. Re: Unique Die Serial Number
                    user_14586677

                    24 Wafers in  a lot can have all identical x. y, and......... So 24 parts can have

                       

                    the same ID.

                       

                     

                       

                    Thanks for all the other info, very helpful to the forum.

                       

                     

                       

                    Regards, Dana.

                    • 7. Re: Unique Die Serial Number
                      user_2405011

                       Dana,

                         

                       

                         

                      I don't know if the X and Y values range fully from 0-255. Probably there will fit less dies on one wafer.

                         

                      Also when a new lot starts, the wafer number can be starting from 0 again, In the end, there will be as much identical x/y values as the total amount of wafers, and I guess there will be a lot wafers produced.

                         

                       

                         

                      If you need a 16 bit value, maybe it's better to make two groups of 4 bytes and XOR those 4 bytes together to get 2x 1byte.

                         

                      And to get an even more variation, you'd better use an 16 bit LFSR and shift all the 64 bits in!

                         

                       

                         

                      regards,

                         

                      Rolf

                      • 8. Re: Unique Die Serial Number
                        user_14586677

                        In a 24 wafer lot, each wafer will have N number of die. This varies wafer to wafer,

                           

                        due to mask alignment. I wrote a program in 70's, FORTRAN, for a given die geometry

                           

                        and scribe channel spacing, what min and max number of full die will be achieved. As

                           

                        die size increased, the range narrowed as one would expect. The corollary is true as well.

                           

                         

                           

                        Range of X, Y irrelevant in a sense, as each wafer has N die, therefore have N X,Y pairs,

                           

                        therefore in a lot of W wafers there will be W die carrying the same X,Y pairing.

                           

                         

                           

                        Regards, Dana.

                        • 9. Re: Unique Die Serial Number
                          ronald.pace

                          Hi Rolf, I am using a PSoC1 and need to program unique IDs as I am using them in a wireless remote control application.  Can you share with me how I can do it please?  Thanks, Ron

                          • 10. Re: Unique Die Serial Number
                            user_285675076

                            Hi Ron,

                               

                              I have the same problem. Did you find the answer to it?

                               

                            Thanks,

                               

                            George

                            • 11. Re: Unique Die Serial Number
                              user_347933176

                              Update for other people who were also looking for a solution - the function CyGetUniqueId is now implemented in CyBoot. I upgraded from PSocCreator 3.1SP2 to PSocCreator 3.3

                                 

                              More information : PSoc3/5LP System Reference Guide. There is nothing mentioned in this document about being a real unique number or a pseudo-unique number as discussed in this thread.