CH537读取UID的问题

GET_UNIQUE_ID读取出来的数据跟WCHISPTOOL显示的不相同,请问是什么原因?


image.png

CH573/CH571 跟wchisptool 对应的id 是GetMACAddress:

GetMACAddress(Buffer)	

GET_UNIQUE_ID 是内部flash的序列号


拿了两块芯片,发现读出来的GET_UNIQUE_ID 是一样的,这个是正常的?所以唯一的id应该是GetMACAddress吗?


请用官网最新的SDK, /downloads/CH573EVT_ZIP.html

关于GET_UNIQUE_ID 重复是个已知问题,官网放出的SDK从1.3 就已经解决.

GetMACAddress 是在生产阶段烧录进去的,理论上,是唯一的.


那如何升级呢,主要替换哪些文件?


文档上MAC地址是6字节,为何WCPISPTool v3.1识别出来是8个或者7个字节呢?

引导的时候WSPISPTool显示是8个字节,烧录固件时MAC地址是7字节。

目前我使用官网下载的1.6版本EVT,libISP573.a的MD5为:

6c988fba76fc39811d6e0f11fc0e91d1 *libISP573.a

使用GET_UNIQUE_ID()返回的8个字节的UID都是重复的。

这种二进制方式的库建议官方将库版本硬编码进去,然后提供一个API返回版本信息。


GetMACAddress(Buffer) 获取芯片唯一ID使用上面这个函数
因为MCU是32位的,Falsh操作都是4字节为一个写单位,实际ID是6字节有效位,其他字节是填充位和校验位,可以忽略。
.A文件加版本返回这个我们下个版本会增加,谢谢。


目前1.6版本的EVT,5片芯片,通过GET_UNIQUE_ID()获取到的8个字节唯一ID仍然是重复的。请问应该如何解决?

请帮忙测试,.a文件的md5校验值前面贴了。


icon_rar.gifISP.rar

ISP库读这个ID有问题,更新一下文件,替换原来的SRC里面的.a文件和INC里面的.h文件。


测试了下,这个库是可以的,UID不再重复,.a文件的md5校验值为:

3d5a906753df36518feb610971272efe *libISP573.a

文件尺寸是5226字节,还是尽快把版本号硬编码到.a文件里面吧,这样不用md5就可以区分库的不同版本了。

之前有问题的版本尺寸小一些,只有4978字节,md5校验值为:

6c988fba76fc39811d6e0f11fc0e91d1 *libISP573.a



好的,下次更新会加。


只有登录才能回复,可以选择微信账号登录