世界杯2022是哪个国家_国足世界杯出线 - dtfyjq.com

  • 首页
  • 北京世界杯
  • 世界杯新秀
  • 世界杯16强名单

最新发表

  • 20厘米等于多少英寸?
  • 【自制沙拉酱的做法步骤图,自制沙拉酱怎么做好吃】不负人间烟火
  • 什么牌子手表便宜又好?十大平民手表品牌
  • 联想拯救者bios怎么进入
  • 什么是绿卡?各国绿卡简介—鹰飞国际
  • 陌陌现场回放在哪里看
  • ABO的漫画
  • 《王者荣耀》荣耀盛典活动怎么玩 荣耀盛典活动图文教程
  • 光子工作室群
  • 呼和浩特面部整形医院怎么选?2025五大排名与避坑指南

友情链接

Copyright © 2022 世界杯2022是哪个国家_国足世界杯出线 - dtfyjq.com All Rights Reserved.

如何有效的识别STM32芯片是不是假芯片呢

北京世界杯 · 2025-10-23 20:57:26

问答对人有帮助,内容完整,我也想知道答案

0

怎样用ST-LINK Utility读取STM32F1系列的容量地址信息呢?

如何有效的识别STM32芯片是不是假芯片呢?

0

2021-12-2 07:31:37

评论

淘帖0

邀请回答

您可以邀请以下用户,快速回答问题

×

heks

该类别下有 54 个回答。

邀请回答

hgimtk

该类别下有 45 个回答。

邀请回答

新星之火12138

该类别下有 43 个回答。

邀请回答

chm5

该类别下有 42 个回答。

邀请回答

wang21cj

该类别下有 41 个回答。

邀请回答

hjfjsdgfjdsf

该类别下有 38 个回答。

邀请回答

werywer

该类别下有 36 个回答。

邀请回答

h1654155957.9520

该类别下有 35 个回答。

邀请回答

fdjslkjd

该类别下有 35 个回答。

邀请回答

uvysdfydad

该类别下有 35 个回答。

邀请回答

凤毛麟角

该类别下有 34 个回答。

邀请回答

维生素B2

该类别下有 34 个回答。

邀请回答

江左盟

该类别下有 34 个回答。

邀请回答

dfzvzs

该类别下有 34 个回答。

邀请回答

jenny042

该类别下有 34 个回答。

邀请回答

储蓄叛逆

该类别下有 33 个回答。

邀请回答

ggfvxv

该类别下有 33 个回答。

邀请回答

LY0206

该类别下有 33 个回答。

邀请回答

meihuacg

该类别下有 33 个回答。

邀请回答

hfgdzc

该类别下有 33 个回答。

邀请回答

举报

youyoulan

相关推荐

• 如何根据STM32官方的芯片命名来识别Flash的大小呢

1752

• 富士通 MB91480系列芯片,怎样来判断是不是DSP芯片呢

3571

• stm32最小系统在keil烧录时不能识别芯片

4757

• 请问有什么芯片与LT1083CP功能类似,需要输出电流不小于5A

9484

• 为什么J-link能识别芯片ID却下载不了呢

2883

• 我的JLINK灯变绿了,无法识别设备

4647

• 这是什么芯片的管脚图,到底是不是真有这样配置管脚的!

6010

• 假芯片捣鬼,害了多少工程师?

2307

• 请问应该如何判断我买的STM32F152RBT6是真的还是假的?

3902

• GD32F的芯片是不是也有唯一ID?

942

提交评论

1个回答

答案对人有帮助,有参考价值

0

一、唯一 ID号

在 STM32的全系列 MCU中均有一个 96位的唯一设备标识符。在 ST的相关资料中,对其功能的描述有 3各方面:

用作序列号(例如 USB 字符串序列号或其它终端应用程序)

在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性

激活安全自举过程等

96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远不能改变这些位。

96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接起来。

对于不同型号的 STM32芯片来讲,其唯一设备 ID 寄存器(96 位)的地址是不一样的:

例如,STM32F4系列的:

当我们在应用中时,只需要用下面的程序读取出来就好了:

typedef struct

{

uint32_t id[3];

} ChipID;

typedef enum {

STM32F0 = 0x1FFFF7AC,

STM32F1 = 0x1FFFF7E8,

STM32F2 = 0x1FFF7A10,

STM32F3 = 0x1FFFF7AC,

STM32F4 = 0x1FFF7A10,

STM32F7 = 0x1FF0F420,

STM32L0 = 0x1FF80050,

STM32L1 = 0x1FF80050,

STM32L4 = 0x1FFF7590,

STM32H7 = 0x1FF0F420,

}MCUTypedef;

ChipID Get_ChipID(MCUTypedef MCU)

{

ChipID chipid = {0};

chipid.id[0] = *(__I uint32_t *)(MCU + 0x00);

chipid.id[1] = *(__I uint32_t *)(MCU + 0x04);

chipid.id[2] = *(__I uint32_t *)(MCU + 0x08);

// DEBUG_PRINTF("ID Code:0x%08Xrn", chipid.id[0]);

// DEBUG_PRINTF("ID Code:0x%08Xrn", chipid.id[1]);

// DEBUG_PRINTF("ID Code:0x%08Xrn", chipid.id[2]);

return chipid;

}

至于后期怎么利用这个 ID,采取怎样的办法加密就看个人了。

二、芯片容量

在上图中可以看到,还有一个特殊地址,那就是容量地址。

同样的,对于不同型号的 STM32芯片,其地址也是不一样的,这个可以看上面的图。

当我们用 ST-LINK Utility读取 STM32F1系列的容量信息时,得到下图:

地址中框选的 “0080” 表示的是十六进制,它的数据存储位数是 16位数据,所以我们用 16bit来显示,接着我们看下它的寄存器描述:

可以看到,地址所对应的容量对的上芯片的实际容量,而且也跟右上角的 “Flash Size” 给出的 128KBytes对的上。

三、器件 ID号

用 ST-LINK Utility读取芯片信息时,可以看到下图的显示信息:

第一个 Device:这个好理解,就是芯片类型嘛。

第四个 Flash Size:这个就是上面第二大点所说的读取出来的容量大小。

那么,第二跟第三的这俩个 ID是在哪里读取出来的呢?

这就是要讲的器件 ID号了,注意这个 ID跟上面第一大点所阐述的唯一 ID号不同,上面所说的唯一 ID相当于一个物理介质,是固定不变全球唯一的、伴随它终身的一个烙印;而现在这个器件 ID是可以相同的,属于那种种族标识符。

它存在于 DBGMCU_IDCODE寄存器中,对于不同的 STM32型号,其描述都不一样,例如:

STM32F10x:

STM32F4xx:

在这里,可以看到,即使是同系列的 STM32F4,也会再细分不同的器件 ID。

如此一来,到了这里应该就知道上述的:第二个 Device ID是属于 DBGMCU_IDCODE寄存器里的 DEV_ID[11:0]这个集合里面的;第三个 Revision ID是属于 DBGMCU_IDCODE寄存器里的 REV_ID[15:0]这个集合里面的。

而至于 Revision ID,在对应的勘察手册上,有对该类不同版本的芯片描述:

四、其它

扯了这么多,其实想说的是,利用第二、三大点,可以有效的识别 STM32的芯片是不是假芯或者是否以小(容量)充大(容量)的;翻新的谁也救不了,毕竟能用主义。

好家伙,官板还有这般操作?莫非这就是究极版

2021-12-2 09:19:32

评论

举报

林芳

提交评论

只有小组成员才能发言,加入小组>>


qq空间怎么删除留言
如何彻底注销手机QQ账号?最全步骤与注意事项解析