找回密码
 立即注册
查看: 1959|回复: 7

STC8H使用外部晶振,如何关闭IRC?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:515
  • 最近打卡:2025-05-03 05:51:43

24

主题

515

回帖

994

积分

荣誉版主

积分
994
发表于 2023-5-4 14:15:43 | 显示全部楼层 |阅读模式
void OSC_SET(void)
{
        u16 j;
       
        P_SW2 = 0x80;
        XOSCCR = 0xc0;
        for(j = 0;j < 32766;j ++)
        {
                if(XOSCCR & 1)
                {
                        CLKSEL = 0x01; //切换到外部晶振
                        CLKDIV = 0x00;
                        HIRCCR = 0;  //关闭内部IRC
                //        HIRCCR &= ~0X80;  //关闭内部IRC
                        break;
                }
        }
       
        P_SW2 = 0x00;
}

问:是用HIRCCR = 0;
还是用HIRCCR &= ~0X80;  //关闭内部IRC
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-04-28 08:49:07
已绑定手机

90

主题

961

回帖

2318

积分

超级版主

积分
2318
QQ
发表于 2023-5-4 15:50:31 | 显示全部楼层
1.png
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-05 16:23:47

3

主题

51

回帖

487

积分

中级会员

积分
487
发表于 2023-5-4 16:43:21 | 显示全部楼层
我也是启用了外部晶振,8h8k64u当尝试关闭内部IRC后,USB转的串口没了
关闭irc是在转用晶振后做的:
            IRC24MCR &= ~ENIRC24M;
程序正常运转,就是USB部分没了,是不是同时影响到了USB时钟?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15632
发表于 2023-5-4 17:53:53 | 显示全部楼层


STC提供的USB参考程序,一般USB用的时钟是内部独立的48M-IRC,跟 CPU 用的时钟无关
1.png

2.png


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-5-5 09:42:11 | 显示全部楼层
        P_SW2 |= 0x80;        //SFR enable   

        P1IE = ~0xc0;                                //P1.6 P1.7关闭数字输入功能
//        XOSCCR = 0x80;                        //启动外部有源时钟, 此时P1.6固定为高阻, 仅能用于数字输入或ADC输入.
//        XOSCCR = 0xc0 + 0x00;                //启动外部晶振(STC8H8K64U),    12M以下+0x08, 24M以下+0x04, 48M以下+0x00.
        XOSCCR = 0xc0 + 0x00;                //启动外部晶振(STC8H其余系列), 12M以下+0x20, 24M以下+0x10, 48M以下+0x00.
        while (!(XOSCCR & 1));                //等待时钟稳定
        CKSEL    = 0x01;                        //选择外部晶振
        HIRCCR   = 0x00;                        //关闭内部高速时钟
        IRC32KCR = 0x00;                        //关闭内部32K IRC
        X32KCR   = 0x00;                        //关闭外部32K晶振
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-05 16:23:47

3

主题

51

回帖

487

积分

中级会员

积分
487
发表于 2023-5-5 12:10:29 | 显示全部楼层
本帖最后由 晓奇 于 2023-5-5 12:18 编辑

按照梁工的代码试了一下,如果关闭了内部IRC,USB部分直接卡死在
    while (!(IRC48MCR & 0x01));
后面的32K关闭没影响,看来这个内部的IRC是总开关,一旦关闭usb的48M也停了
32g和8h8k64u都试了一下,都是IRC 不能关闭,一旦关闭,usb直接进不了
为了验证外部晶振正常,特意用最低IRC下载,然后串口115200通信到另一个芯片接收再转发回来,没有误码。所以认为外部晶振正常工作

点评

按需要来,楼主估计是不用USB的。 用 了USB,就不要关闭内部IRC。  详情 回复 发表于 2023-5-5 14:03
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-5-5 14:03:31 | 显示全部楼层
晓*** 发表于 2023-5-5 12:10
按照梁工的代码试了一下,如果关闭了内部IRC,USB部分直接卡死在
    while (!(IRC48MCR & 0x01));
后面的32 ...

按需要来,楼主估计是不用USB的。
用 了USB,就不要关闭内部IRC。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15632
发表于 2023-5-5 14:59:48 | 显示全部楼层
我不动MCU应用N年了,这个STC8H8K64U 的时钟当时是我要求的:
STC8H8K64U内部有2个独立的高速IRC
===1,USB-48MHz-HIRC
===2,CPU-可调高速-IRC,52MHz ~ 4MHz ?

STC8H8K64U外部晶振支持2种,同时只能开1种
===1,外部高速晶振
===2,外部低速32768晶振

==============================================================================
1,外部高速晶振,如启动,就不要启动外部低速32768RTC晶振,外部高速晶振的时钟进 MCU后,经过或者不经过 PLL
===1A, 【外部高速晶振,可+PLL】只给 USB 用,CPU使用【CPU-可调高速-IRC】或内部 LIRC-低速30K
===1B, 【外部高速晶振,可+PLL】给 USB 用, 也给 CPU及其他外设用
===1C,  不给USB用,【外部高速晶振,可+PLL】给 CPU及其他外设用,USB可使用内部USB专门的 USB-48MHz-HIRC

2,外部低速32768RTC时钟,如启动,就不要启动外部高速晶振
===2A, 只给 RTC使用,  CPU及其他外设用 CPU-内部高速IRC-【HIRC 可+PLL】/ LIRC-低速30K
===2B, 给 RTC使用, 也给 CPU及其他外设用

3, 外部高速,低速晶振都不使用
===3A, USB用USB-48MHz-HIRC,CPU及其他外设用 CPU-内部高速IRC -【HIRC 可+PLL】/ LIRC-低速30K
===3B, USB不用 【不启动外部晶振,也不启动内部USB-48MHz-HIRC】,CPU及其他外设用 CPU-内部高速IRC -【HIRC 可+PLL】/ LIRC-低速30K

但还是看下图:


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 08:08 , Processed in 0.159050 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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