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

CHIPID应用,STC8H8K64U只读特殊功能寄存器中存储的十种高速时钟和唯一ID号等重要参数

[复制链接]

该用户从未签到

550

主题

9235

回帖

1万

积分

管理员

积分
13946
发表于 2023-3-21 20:40:11 | 显示全部楼层 |阅读模式
CHIPID应用,STC8H8K64U只读特殊功能寄存器中存储的十种高速时钟和唯一ID号等重要参数
使用STC出厂前用专业时钟调校设备,调校的如下10种常用高精准内部HIRC频率--STC8H8K64U
22.1184MHz,24MHz,27MHz,30MHz,33.1776MHz,35MHz,36.864MHz,40MHz,44.2368MHz,48MHz
在用户程序区用户自己选择设置如上STC出厂前调校的这10种内部高精准的HIRC的频率--STC8H8K64U
===常温下STC出厂前用专业的高精准设备调校的这10个固定频率时钟误差 < + - 0.3%
===没有压飘,只有+-1%附近的温漂【-40度 ~ +85度】
而如用户使用在ISP烧录时任意设置的频率,虽然范围很宽很灵活,但如用户使用第三方不专业的USB转串口来烧录,
来校准成其他的频率,这有可能会将第三方不专业工具的时钟误差,在用户ISP下载时重新校准频率而带入芯片内部
即使用户要设置特殊的频率,也请使用 STC的专业工具 STC-USB Link1D
===用STC-ISP下载时设置任意频率, 请使用STC-USB Link1D校准内部高精准HIRC的频率,
===这个STC-USB Link1D 专业工具专门外挂了22.1184MHz晶振来ISP下载时校准内部时钟到任意频率
===STC-USB Link1D是【专业仿真器,专业在线全自动下载器/无需手工停电,专业脱机烧录器,专业时钟校准器】
这是超级重点,不要那么强大的内部时钟不会自己在程序区自己任意设置

CHIPID应用,STC8H8K64U只读特殊功能寄存器中存储的十种高速时钟和唯一ID号等重要参数-1.png
CHIPID应用,STC8H8K64U只读特殊功能寄存器中存储的十种高速时钟和唯一ID号等重要参数-2.png

用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-1.png

用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-2.png
用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-3.png
用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-4.png
用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-5.png

用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-1.png
用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-2.png
用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-3.png
用户程序设置内部IRC的频率在用户程序区--STC8H8K64U-4.png









回复 送花

使用道具 举报

该用户从未签到

3

主题

51

回帖

473

积分

中级会员

积分
473
发表于 2023-4-2 10:36:53 | 显示全部楼层
这个验证过了,在自己的程序里面添加那么几行,就可以固定在某个选定的频率下工作,无论下载的时候用什么频率下载,一运行自动归位,很实用的。
我把他整理好了,在.h里面添加下面的几行:
#define     CPUIDBASE        0xfde0
#define     T22M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x0b))    // 22.1184MHz
#define     T24M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x0c))    // 24MHz
#define     T27M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x0d))    // 27MHz
#define     T30M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x0e))    // 30MHz
#define     T33M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x0f))    // 33.1776MHz
#define     T35M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x10))    // 35MHz
#define     T36M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x11))    // 36.864MHz
#define     T40M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x12))    // 40MHz
#define     T44M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x13))    // 44.2368MHz
#define     T48M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x14))    // 48MHz
#define     VRT6M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x15))    // VRTRIM_6M
#define     VRT10M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x16))    // VRTRIM_10M
#define     VRT27M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x17))    // VRTRIM_27M
#define     VRT44M_ADDR        (*(unsigned char volatile xdata *)(CPUIDBASE + 0x18))    // VRTRIM_44M
初始化的时候加入主频设置:
        // 改用44.2368MHz IRC时钟
        CLKDIV = 0x04;
        IRTRIM = T44M_ADDR;
        VRTRIM = VRT44M_ADDR;
        IRCBAND &= 0xfc;                // 注意保护USB的设定,这个寄存器高位包含了与USB相关的东西
        IRCBAND |= 0x03;
        CLKDIV = 0x00;
OK,其他频率都类似,查看手册对比一下就行
回复 支持 1 反对 0 送花

使用道具 举报

该用户从未签到

550

主题

9235

回帖

1万

积分

管理员

积分
13946
 楼主| 发表于 2023-4-2 11:39:54 | 显示全部楼层
大家用起来,在用户程序中可以动态修改频率,
典型应用:一箭双雕之USB转双串口
1.png
这一会 6M bps, 一会 10M bps 的你咋产生,就得像晓奇兄这样
动态切换不同的频率来适应广泛需求的不同的波特率

1.png


回复 支持 反对 送花

使用道具 举报

该用户从未签到

7

主题

31

回帖

132

积分

注册会员

积分
132
发表于 2023-4-17 15:12:48 | 显示全部楼层
本帖最后由 hiper 于 2023-4-17 15:14 编辑

微信图片_20230417151313.jpg
时间走得有点快。

这个32khz怎么校准到32.762khz
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9235

回帖

1万

积分

管理员

积分
13946
 楼主| 发表于 2023-4-17 15:58:16 | 显示全部楼层
RTC 必须外部32768
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    擦汗
    前天 20:58
  • 签到天数: 39 天

    [LV.5]常住居民I

    2

    主题

    54

    回帖

    336

    积分

    中级会员

    积分
    336
    发表于 2024-3-17 10:00:46 | 显示全部楼层
    晓奇 发表于 2023-4-2 10:36
    这个验证过了,在自己的程序里面添加那么几行,就可以固定在某个选定的频率下工作,无论下载的时候用什么频 ...

    活到老学到老
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.5]常住居民I

    2

    主题

    517

    回帖

    655

    积分

    高级会员

    积分
    655
    发表于 2024-3-17 10:29:31 | 显示全部楼层
    晓奇 发表于 2023-4-2 10:36
    这个验证过了,在自己的程序里面添加那么几行,就可以固定在某个选定的频率下工作,无论下载的时候用什么频 ...

    还能这样操作啊
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-29 16:41 , Processed in 0.077701 second(s), 56 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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