找回密码
 立即注册
查看: 361|回复: 4

内部时钟PLL以后不能工作 | 已解决

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

542

积分

高级会员

积分
542
发表于 2024-12-9 16:56:18 | 显示全部楼层 |阅读模式

内部时钟经过PLL以后不能正常工作

代码

使用 32G12K128

/* 设置时钟,初始时钟要设置为 22.1184 Mhz */
	CLKSEL &= ~0x80; /* 选择 x8 作为 PLL 的输出时钟 */

	USBCLK &= ~0x60;
	USBCLK |= 0x20; /* 22.1184Mhz/2 */
	USBCLK |= 0x80; /* 启动PLL*/

	{
		int i;
		for (i = 0; i < 200; i++)
		{
			_nop_();
		}
	}

	MCLKOCR = 2;

	CLKDIV = 8;		/* 8 分频回来 */
	CLKSEL &= 0xf0; /* 选择 PLL 时钟源 */
	CLKSEL |= 0x04;
	/* 时钟设置完毕 */

测试结果

本来直接使用内部高精度IRC直接设置 SYSCLK 是 11.0592Mhz 的时候工作正常,串口工作正常。
心血来潮,想琢磨一下 PLL,实验了两种情况

  • 22.1184MHz / 2 送 PLL x8 后,分频/8, P54 输出 5.56MHz 左右,串口工作异常,上述代码就是这种情况
  • 11.0592MHz 直接送 PLL x8 后,分频/8, P54 输出 5.56MHz 左右,串口工作异常

EMO了

希望这个世界让我装一次B
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-9 17:07:04 | 显示全部楼层

注意MCLKODIV和CLKDIV的设置
截图202412091706328028.jpg
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

542

积分

高级会员

积分
542
发表于 2024-12-9 17:15:16 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=128330&ptid=12590][color=#999999]DebugLab 发表于 2024-12-9 17:07[/color][/url][/size] 注意MCLKODIV和CLKDIV的设置[/quote]

我注意了,

所以我将,MCLKODIV 设置成 2 这样,我就可以在 P54 测量到主时钟频率,P54测量到的的频率大约是 5.56MHz ,乘以2以后是 11.12MHz 正好落在 11.0592MHz 附近。这样可以证明上述代码的 PLL 的设置可以让 SYSCLK 正好是11.0592 MHz

点评

这样应该可以正常工作的 [attachimg]70919[/attachimg]  详情 回复 发表于 2024-12-9 17:19
希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-9 17:19:02 | 显示全部楼层
Yang.*** 发表于 2024-12-9 17:15
我注意了,
所以我将,MCLKODIV 设置成 2 这样,我就可以在 P54 测量到主时钟频率,P54测量到的的频率大 ...


这样应该可以正常工作的
截图202412091718407177.jpg
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

542

积分

高级会员

积分
542
发表于 2024-12-9 17:40:01 | 显示全部楼层

找到问题了,

其实我就是如你上图所说的方式设置的

不是 CLKDIV 也不是 MCLKODIV
而是 HSCLKDIV 设置的有问题,HSCLKDIV 实际控制了一个 SPI 的时钟,由于SPI的问题导致系统卡死了

不管怎么谢谢你

经验值+1

希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 09:01 , Processed in 0.113395 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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