电子小陈 发表于 2024-4-26 14:29:06

高速PLL配置问题,配置出错

本帖最后由 电子小陈 于 2024-4-26 14:36 编辑

/*******************************************************************************
* 函数名: ClockInit
* 描述    : 系统时钟设置函数
* 输入    : 无
* 输出    : 无
* 返回    : 无
* 说明    : //11.0592 * 12 = 132.7104 / 4 = 33.1776M
*******************************************************************************/
void ClockInit(void )//11M倍频至132M/4,132M给PWM,33M给系统
{
        CKCON = 0X00;
        WTST = 0X00;
        CLKSEL |= 0X80;
        USBCLK &= ~0X60;
////        USBCLK |= 0X00;
        USBCLK |= 0X80;
        Delay_ms(1);
        CLKDIV = 0X04;
        CLKSEL &= 0XF0;
//        CLKSEL |= 0X04;//死在这一句
        HSCLKDIV =0X00;
        CLKSEL &= ~0X40;
}

/*******************************************************************************
* 函数名: Delay
* 描述    : 延时函数(ms)
* 输入    : d:延时系数,单位为毫秒
* 输出    : 无
* 返回    : 无
* 说明    : 延时是利用产生的1毫秒的计数来实现的
*******************************************************************************/
void Delay_ms(unsigned intx)
{
        unsigned int i;

        while (x)
        {
        i = 8293UL;
        while (i) i--;
        x--;
        }
}
以上的时钟配置程序,完全按照数据手册的例程来的。
使用isp下载时选择内置预设频率11.0592,不能工作,而选择总是动态调节却能正常工作。经过逐句断点和注释定位到CLKSEL |=0x04;时出错。

乘风飞扬 发表于 2024-4-26 16:34:50

STC32G使用PLL时钟作为主时钟,可以参考附件例子

电子小陈 发表于 2024-4-26 17:18:43

乘风飞扬 发表于 2024-4-26 16:34
STC32G使用PLL时钟作为主时钟,可以参考附件例子

刚试了您的程序,按原来的时钟频率还是不行
但我选了22.1184M的频率,程序里PCKI做2分频就正常了,不知道是什么原因,新手调了两天都搞不清,头好大!

乘风飞扬 发表于 2024-4-26 17:36:12

本帖最后由 乘风飞扬 于 2024-4-26 17:37 编辑

电子小陈 发表于 2024-4-26 17:18
刚试了您的程序,按原来的时钟频率还是不行
但我选了22.1184M的频率,程序里PCKI做2分频就正常了,不知道 ...
例子有段注释:选择PLL输入时钟分频, 保证输入时钟为12M
例子使用24M做主频,输入给PLL时钟,经过2分频后的时钟正好12M。

电子小陈 发表于 2024-4-26 19:25:16

本帖最后由 电子小陈 于 2024-4-26 20:51 编辑

乘风飞扬 发表于 2024-4-26 17:36
例子有段注释:选择PLL输入时钟分频, 保证输入时钟为12M
例子使用24M做主频,输入给PLL时钟,经过2分频后 ...

刚才注释掉这行就可以了,好像分频默认是2(或者isp软件设置的?),如果我程序里设置2分频,然后我下载时选择12M和24M,pll输出的频率都是一样的!所以难道IRC不能直接出12M频率的?

电子小陈 发表于 2024-4-26 19:30:13

电子小陈 发表于 2024-4-26 19:25
刚才注释掉这行就可以了,好像分频默认是2(或者isp软件设置的?),如果我程序里设置2分频,然后我下载时 ...

但是为什么动态调整却没有影响呢?同样的程序1分频设置,动态调整却能正确输出

电子小陈 发表于 2024-5-5 14:23:03

本帖最后由 电子小陈 于 2024-5-5 14:24 编辑

attach://43206.jpg
解决了,手册上写了效准好的频率并没有11M,实际上选择预置频率小于22.1184M以下的频率都是ISP软件自动设置分频寄存器的结果
页: [1]
查看完整版本: 高速PLL配置问题,配置出错