- 打卡等级:偶尔看看III
- 打卡总天数:52
- 最近打卡:2025-04-29 16:05:38
中级会员
- 积分
- 261
|
各位坛友好,
本来准备使用PLL来提供系统时钟,同时关闭48MHz的USB时钟。通过寄存器设置无法获得正确的频率。
通过P4.7输出SYSCLK后用示波器观察,实际频率为8MHz。 IRC设置的是24MHz, 通过PLL锁频后输出96MHz, 再3分频给到SYSCLK,从结来看似乎PLL没起到作用。但检查寄存器又没找到问题,因此发上来希望有高手指导一下。 谢谢。
1.寄存器设置如下:
HIRCCR |= 0X80;
MCLKOCR = 0X01; //SYSCLK原频输出到P4.7
HSCLKDIV = 0x02; //IO对96MHz 2分频
CLKSEL = 0x44; //选择PLL96MHz为系统时钟和IO时钟;
USBCLK &= 0x0f;
USBCLK |= 0xa0; //使能PLL倍频, HIRC 2分频送PLL, HIRC为24MHz
CLKDIV = 0x03; //对PLL 3分频后送给SYSCLK
IRC48MCR &= 0x7f; //关闭48MHz USB专用时钟.
IRCBAND = 0x02;
while(!(HIRCCR&0x01)) //等待内部IRC时钟稳定
{
_nop_();
_nop_();
}
2.ISP设置:
继续检测目标单片机 ...
单片机型号: STC8051U-34K64
当前芯片的硬件选项为:
. 系统ISP工作频率: 24.010MHz
. 内部IRC振荡器的频率: 24.000MHz
. 掉电唤醒定时器的频率: 35.725KHz
. 振荡器放大增益使能
. 用户EEPROM大小被设置为 1 K
. P3.2和P3.3与下次下载无关
. 上电复位时增加额外的复位延时
. 复位引脚用作普通I/O口
. 检测到低压时复位
3.输出频率为8MHz,和程序跑的情况一致。
|
|