你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

批量中有少数几片STM8L101F3的uid多次读出不一致

[复制链接]
qm2022 提问时间:2022-9-22 18:58 / 未解决
不知道大家有没有遇到这样的情况:批量生产1K,其中有五六片 STM8L101F3 的 uid 在同一次上电的多次读出,它的值的前3个字节是变化的,变化有特定值,不是随机的。比如有这么一些数值:

14 80 00 2D 06 47 38 33 33 38 37 38
00 80 00 2D 06 47 38 33 33 38 37 38
14 80 40 2D 06 47 38 33 33 38 37 38

不同时候读出来的uid 不一致,对于程序来说基本上无法基于uid做一些算法。

下面是我读取 uid 的函数代码:
#define ID_BaseAddr                0x4925
static unsigned char STM8L_ID[12] = {0};

unsigned char * Get_STM8L_UniqueID(void)
{
        unsigned char i = 0;
        for (i=0; i<12; i++)
        {
                STM8L_ID[i] = *(unsigned char *)(ID_BaseAddr+i);
        }

        return STM8L_ID;
}


收藏 1 评论4 发布时间:2022-9-22 18:58

举报

4个回答
xmshao 回答时间:2022-9-23 11:11:42
反馈属实的话,这个问题有点意思,锁定在特定芯片。


你也可以通过工具直接看看,比方STVP看看,是不是 也会出现类似现象。


这些数据按理不会因为读访问而发生变化的。
qm2022 回答时间:2022-9-23 16:15:11
xmshao 发表于 2022-9-23 11:11
反馈属实的话,这个问题有点意思,锁定在特定芯片。

谢谢回复。

我也是这么认为,不应该因为读访问而改变的。稍后我用 STVP 直接读一下,看看结果如何。
qm2022 回答时间:2022-9-23 20:11:57
qm2022 发表于 2022-9-23 16:15
谢谢回复。

我也是这么认为,不应该因为读访问而改变的。稍后我用 STVP 直接读一下,看看结果如何。


刚才测试了,用stvp不能读出非 Flash 地址空间的信息,改用IAR调试的方式来读写,如果读出来数据变化了,则跳到一个异常输出分支,并且在此设置断点,触发 IAR 来读取 uid 地址的数据,uid存放在 0x4925,下面的gif动图,能看到我执行了2次单步step-over操作的内存变化:

STM8L-uid变化

STM8L-uid变化

qm2022 回答时间:2022-10-8 15:18:42
qm2022 发表于 2022-9-23 20:11
刚才测试了,用stvp不能读出非 Flash 地址空间的信息,改用IAR调试的方式来读写,如果读出来数据变化了, ...

这论坛会有ST官方的工程师/技术支持关注吗?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版