打印

关于芯片的unique ID

[复制链接]
1655|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gll123|  楼主 | 2016-1-28 18:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

如果想知道片子的unique ID,可以通过下面的途径,下面以PSOC3位例进行说明:

首先追踪这个函数,你可以知道下面的信息:unique ID为一个64bit的数据。

    uniqueId[0u]  =  (uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_LOT_LSB   ));
    uniqueId[0u] |= ((uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_LOT_MSB   )) <<  8u);
    uniqueId[0u] |= ((uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_MLOGIC_REV_ID                )) << 16u);
    uniqueId[0u] |= ((uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_WAFER_NUM )) << 24u);

    uniqueId[1u]  =  (uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_X_LOC     ));
    uniqueId[1u] |= ((uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_Y_LOC     )) <<  8u);
    uniqueId[1u] |= ((uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_WRK_WK    )) << 16u);
    uniqueId[1u] |= ((uint32) CY_GET_XTND_REG8((void CYFAR *) (CYREG_FLSHID_CUST_TABLES_FAB_YR    )) << 24u);
       
然后,就是分析这8个字节的含义:
第一个字节和第二个字节,是lot number/wafer start
第三个字节是MLOGIC_REV_ID  
第四个字节是: 晶片的number。
第五和第六个字节,表示这个晶体所在的位置。
第七个字节表示时间:Work week: 1 to 53
第八个字节表示:第0位到第3位表示fab号,第4位到第7位,表示year。

举一个例子:
#1:   0x0E050327,  0x5418140A

你就可以拆分成5 4 18 140A 0E 05 0327 (你可以拆开来看)这个是05年第24周的片子,其它的信息都是关于晶元的位置和晶片的批号。

下次遇到这个unique的问题,你可以自己分析:
第一步:追踪函数,查到寄存器。
第二步:到register trm上面找这些寄存器的意思。
第一个:每个字节每个字节的分析。

希望我这次对unique ID的分析,可以解决你的问题。如果你还是有疑问,建议你查看register trm
沙发
gll123|  楼主 | 2016-1-28 18:10 | 只看该作者
补充一下,函数名字为void CyGetUniqueId(uint32* uniqueId)

使用特权

评论回复
板凳
peace555| | 2016-1-28 22:22 | 只看该作者
这个很不错,学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

186

帖子

3

粉丝