找回密码
 立即注册
查看: 29|回复: 6

请教如何读取AI8H1K17的唯一ID

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-11-04 08:34:56
已绑定手机

1

主题

4

回帖

23

积分

新手上路

积分
23
发表于 昨天 17:30 | 显示全部楼层 |阅读模式

3.png

首先,阅读数据数据手册,并没有得出明确答案,AI8H1K17到底是否支持CHIPID来读取唯一id。

另外,使用STC-isp带的demo,也没读取出id来,下面是我尝试从rom种读取id的代码:

  1. void printf_deviceID()
  2. {
  3.         uchar flag;
  4.         char *ID;
  5.        
  6.         ID = (char code *)0x43f9;  
  7.        
  8.         printf("device ID is is : ");
  9.         for(flag=0;flag<7;flag++){
  10.                 printf("0x%02bx  \r\n"  , ID[flag + flag]);
  11.                 //printf("0x%02bx  \r\n"  , CBYTE[0X43F9 + flag]);
  12.         }
  13.         printf("\r\n");
  14. }
复制代码

上面代码读取出来的7个字节都是0xff;

请问下,到底怎么读取AI8H1K17的内置ID




回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-11-04 08:45:49
已绑定手机

90

主题

3371

回帖

7559

积分

荣誉版主

无情的代码机器

积分
7559
发表于 昨天 17:54 | 显示全部楼层
和8H1K08一个系列,没CHIPID,使用ISP加载重要参数读取ROM区,参考此例程(15W408是8K FLash,注意更改至1K17的17K Flash地址):
https://www.stcaimcu.com/forum.p ... 0799&pid=192751


截图202511031751114587.jpg

截图202511031752246561.jpg

三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-11-04 08:34:56
已绑定手机

1

主题

4

回帖

23

积分

新手上路

积分
23
发表于 12 小时前 | 显示全部楼层
erci*** 发表于 2025-11-3 17:54
和8H1K08一个系列,没CHIPID,使用ISP加载重要参数读取ROM区,参考此例程(15W408是8K FLash,注意更改至1K17 ...

你好,按照你的提示,仍然没有读取到AI8H1K17单片机的唯一id;


首先,按照你提供的demo,移植到我的工程中,代码如下:

  1. #define ID_ADDR_ROM 0x43eb  //存放自增ID
  2. volatile bit remote_config_Enable = 1;
  3. void printf_deviceID()
  4. {
  5.         uchar i;
  6.         unsigned char code *ptr;
  7.         ptr = ID_ADDR_ROM;
  8.        
  9.         for(i=0;i<21;i++){
  10.                 printf("%04X:%02bX\r\n",(ID_ADDR_ROM+i),*ptr);
  11.                 ptr++;
  12.         }
  13. }
复制代码
stc-isp工具勾选和打印日志,截图如下:
4.png

如上图所示,读取出来的数据全部都是FF呢,不知道什么原因,请继续帮忙跟进解决下。谢谢

点评

这是个IAP型号,末尾是EEPROM区,往前再减去EEPROM区大小试下 [attachimg]119913[/attachimg] [attachimg]119914[/attachimg]  详情 回复 发表于 12 小时前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-11-04 08:45:49
已绑定手机

90

主题

3371

回帖

7559

积分

荣誉版主

无情的代码机器

积分
7559
发表于 12 小时前 | 显示全部楼层
zwub*** 发表于 2025-11-4 08:34
你好,按照你的提示,仍然没有读取到AI8H1K17单片机的唯一id;

这是个IAP型号,末尾是EEPROM区,往前再减去EEPROM区大小试下

截图202511040844391721.jpg
截图202511040845462468.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-11-04 08:34:56
已绑定手机

1

主题

4

回帖

23

积分

新手上路

积分
23
发表于 12 小时前 | 显示全部楼层
erci*** 发表于 2025-11-3 17:54
和8H1K08一个系列,没CHIPID,使用ISP加载重要参数读取ROM区,参考此例程(15W408是8K FLash,注意更改至1K17 ...

经过测试我又有了新的进展,由于程序初始化阶段,我对EEPROM扇区0进行了清零操作,导致读取ID那部分的数据得到的全部是FF;

我屏蔽掉对EEPROM扇区0的清零操作就能读取到ID了;

但是,我确实需要用EEPROM,这矛盾怎么解决?

点评

先读取到RAM,清零后重新写入  详情 回复 发表于 12 小时前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-11-04 08:45:49
已绑定手机

90

主题

3371

回帖

7559

积分

荣誉版主

无情的代码机器

积分
7559
发表于 12 小时前 | 显示全部楼层
zwub*** 发表于 2025-11-4 08:46
经过测试我又有了新的进展,由于程序初始化阶段,我对EEPROM扇区0进行了清零操作,导致读取ID那部分的数 ...

先读取到RAM,清零后重新写入
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:546
  • 最近打卡:2025-11-04 09:02:17
已绑定手机

48

主题

2303

回帖

8134

积分

论坛元老

积分
8134
发表于 12 小时前 | 显示全部楼层
zwub*** 发表于 2025-11-4 08:46
经过测试我又有了新的进展,由于程序初始化阶段,我对EEPROM扇区0进行了清零操作,导致读取ID那部分的数 ...

保留最后一个扇区的EEPROM空间不要使用,例如需要用0.5K空间存储数据
那么EEPROM空间可以设置1K,只擦写前0.5K空间,后面0.5K空间不要擦写。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-11-4 21:15 , Processed in 0.123953 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表