找回密码
 立即注册
查看: 1287|回复: 19

请问下读ID号的问题

[复制链接]

该用户从未签到

35

主题

78

回帖

429

积分

中级会员

积分
429
发表于 2023-2-9 17:47:32 | 显示全部楼层 |阅读模式
因为把单片机的ID号用作密码,所以每次上电都会读一次ID号,我想知道在ROM读和在RAM读有什么区别? 读太多次会有什么影响吗?谢谢
回复 送花

使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 122 天

    [LV.7]常住居民III

    26

    主题

    1242

    回帖

    3887

    积分

    论坛元老

    积分
    3887
    发表于 2023-2-9 18:10:35 | 显示全部楼层
    只要ID存放位置不被擦除/覆盖的话,读取多少次都没问题。
    ID号存放在RAM的位置,如果变量定义太多,或者堆栈使用多一些的话,就可能被覆盖掉,所以不推荐从RAM里面读取。
    ID号存放在ROM的位置,如果被划分到EEPROM区域的话,只要所在扇区不被擦除或者改写,里面的内容就不会产生变化。

    点评

    谢谢  发表于 2023-2-9 23:28

    该用户从未签到

    549

    主题

    9195

    回帖

    1万

    积分

    管理员

    积分
    13993
    发表于 2023-2-9 18:50:16 | 显示全部楼层
    ID号,这个功能要用,最好选择有 CHIP-ID功能的芯片:
    1,STC32全部有 CHIP-ID 功能
    2,部分 STC8H有 CHIP-ID 功能
    3,STC8A8K64D4有 CHIP-ID 功能
    1.png
    2.png

    该用户从未签到

    549

    主题

    9195

    回帖

    1万

    积分

    管理员

    积分
    13993
    发表于 2023-2-9 18:51:17 | 显示全部楼层
    1.png
    1.png

    该用户从未签到

    35

    主题

    78

    回帖

    429

    积分

    中级会员

    积分
    429
     楼主| 发表于 2023-2-9 23:26:09 | 显示全部楼层

    在RAM跟ROM读取都正常,从CHIPID中读取,得到的都是FF,用的STC8A8K64D4,这个是不是没有CHIPID功能吧?用的烧录器的范例程序

    点评

    STC8A8K64D4系列支持全球唯一ID号(从CHIPID中读取)  详情 回复 发表于 2023-2-10 09:09

    该用户从未签到

    549

    主题

    9195

    回帖

    1万

    积分

    管理员

    积分
    13993
    发表于 2023-2-9 23:37:46 | 显示全部楼层
    1.png

    2.png
    你直接下载 HEX 进去测试,我担心你一改就错

    点评

    谢谢,区别在这句,P_SW2 = 0x80;,因为后面我用外部晶振之后加了句P_SW2 = 0x00;,所以无效了  发表于 2023-2-10 14:36
  • TA的每日心情
    开心
    2024-1-24 13:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    615

    回帖

    1026

    积分

    超级版主

    积分
    1026
    发表于 2023-2-10 09:09:18 | 显示全部楼层
    sky999 发表于 2023-2-9 23:26
    在RAM跟ROM读取都正常,从CHIPID中读取,得到的都是FF,用的STC8A8K64D4,这个是不是没有CHIPID功能吧? ...

    1.png

    STC8A8K64D4系列支持全球唯一ID号(从CHIPID中读取)
    STC官网:https://www.stcai.com/
    QQ:2593903262
    微信号:18106296598

    该用户从未签到

    45

    主题

    2896

    回帖

    6508

    积分

    超级版主

    积分
    6508
    发表于 2023-2-10 11:20:27 | 显示全部楼层
    读SRAM和CODE都没有次数限制,无穷次读取都可以。
    新版的MCU可以从CHIPID中读取。
    不建议从SRAM读取,因为SRAM很容易被修改。

    点评

    谢谢,区别在这句,P_SW2 = 0x80;,因为后面我用外部晶振之后加了句P_SW2 = 0x00;,所以无效了  发表于 2023-2-10 14:37

    该用户从未签到

    35

    主题

    78

    回帖

    429

    积分

    中级会员

    积分
    429
     楼主| 发表于 2023-2-10 14:44:17 | 显示全部楼层
    梁工 发表于 2023-2-10 11:20
    读SRAM和CODE都没有次数限制,无穷次读取都可以。
    新版的MCU可以从CHIPID中读取。
    不建议从SRAM读取,因为S ...

    在这里顺便问下,为什么P_SW2要做个使能和禁止访问?上电直接打开,不再禁止,有什么影响吗?

    点评

    因为扩展的寄存器放在xdata的地址,为了避免与xdata访问冲突,所以用一个位来选择是访问xdata还是扩展寄存器,只对相同的寄存器地址有效。低于寄存器地址,则不管是否置1,均是访问xdata。 因为xdata地址远远未到扩  详情 回复 发表于 2023-2-10 16:22

    该用户从未签到

    45

    主题

    2896

    回帖

    6508

    积分

    超级版主

    积分
    6508
    发表于 2023-2-10 16:22:29 | 显示全部楼层
    sky999 发表于 2023-2-10 14:44
    在这里顺便问下,为什么P_SW2要做个使能和禁止访问?上电直接打开,不再禁止,有什么影响吗? ...

    因为扩展的寄存器放在xdata的地址,为了避免与xdata访问冲突,所以用一个位来选择是访问xdata还是扩展寄存器,只对相同的寄存器地址有效。低于寄存器地址,则不管是否置1,均是访问xdata。
    因为xdata地址远远未到扩展的寄存器地址,所以程序一开始就允许,不再禁止,没有影响。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-4-24 21:50 , Processed in 0.073263 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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