打印
[技术问答]

M051的PLLCON频率设置

[复制链接]
1296|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
/*---------------------------------------------------------------------------------------------------------*/
/*  PLLCON constant definitions. PLL = FIN * NF / NR / NO                                                  */
/*---------------------------------------------------------------------------------------------------------*/
#define CLK_PLLCON_PLL_SRC_HXT   0x00000000UL    /*!< For PLL clock source is HXT.  4MHz < FIN < 24MHz */
#define CLK_PLLCON_PLL_SRC_HIRC  0x00080000UL    /*!< For PLL clock source is HIRC. 4MHz < FIN < 24MHz */

#define CLK_PLLCON_NR(x)         (((x)-2)<<9)    /*!< x must be constant and 2 <= x <= 33.  1.6MHz < FIN/NR < 15MHz */
#define CLK_PLLCON_NF(x)          ((x)-2)        /*!< x must be constant and 2 <= x <= 513. 100MHz < FIN*NF/NR < 200MHz. (120MHz < FIN*NF/NR < 200MHz is preferred.) */

#define CLK_PLLCON_NO_1          0x0000UL         /*!< For output divider is 1 */
#define CLK_PLLCON_NO_2          0x4000UL         /*!< For output divider is 2 */
#define CLK_PLLCON_NO_4          0xC000UL         /*!< For output divider is 4 */

#define CLK_PLLCON_50MHz_HXT     (CLK_PLLCON_PLL_SRC_HXT  | CLK_PLLCON_NR(3)  | CLK_PLLCON_NF( 25) | CLK_PLLCON_NO_2) /*!< Predefined PLLCON setting for 50MHz PLL output with 12MHz X'tal */
#define CLK_PLLCON_50MHz_HIRC    (CLK_PLLCON_PLL_SRC_HIRC | CLK_PLLCON_NR(13) | CLK_PLLCON_NF( 59) | CLK_PLLCON_NO_2) /*!< Predefined PLLCON setting for 50.1918MHz PLL output with 22.1184MHz IRC */


/*---------------------------------------------------------------------------------------------------------*/
/*  MODULE constant definitions.   


//////////////////////////////////////////////////////////////

#if USER_PLL_ClOCK == USER
       
#if USER_SYSTEM_CLK == OSCL
        // 22.1184M Oscl To 50M
        User_PLLCON->FB_DV = 0x39;      // PLL反馈分频控制
        User_PLLCON->IN_DV = 0x0B;      // PLL输入分频控制
        User_PLLCON->OUT_DV = 0x01;     // PLL输出分频控制
        User_PLLCON->PD = 0;            // 0: PLL正常模式 1: = PLL 掉电模式(默认)
        User_PLLCON->BP = 0;            // 0: PLL 正常模式 (默认) 1: = PLL 时钟输出与时钟输入相同
        User_PLLCON->OE = 0;            // 0: 使能 PLL FOUT 1: PLL FOUT 固定为低
        User_PLLCON->PLL_SRC = 1;       // 0: PLL时钟源为外部高速晶振HXT( 4~24MHz)1: PLL 时钟源为22.1184 MHz 振荡器HIRC
        while (!(CLK->CLKSTATUS & CLK_CLKSTATUS_PLL_STB_Msk));        // 检测 PLL 是否就绪
       
#elif USER_SYSTEM_CLK == XTAL  
        // 12M Xtal To 50M
        User_PLLCON->FB_DV = 0x17;    // PLL反馈分频控制
        User_PLLCON->IN_DV = 0x01;    // PLL输入分频控制
        User_PLLCON->OUT_DV = 0x01;   // PLL输出分频控制
        User_PLLCON->PD = 0;          // 0: PLL正常模式 1: = PLL 掉电模式(默认)
        User_PLLCON->BP = 0;          // 0: PLL 正常模式 (默认) 1: = PLL 时钟输出与时钟输入相同
        User_PLLCON->OE = 0;          // 0: 使能 PLL FOUT 1: = PLL FOUT 固定为低   
        User_PLLCON->PLL_SRC = 0;     // 0: PLL时钟源为外部高速晶振HXT( 4~24MHz)1: PLL 时钟源为22.1184 MHz 振荡器HIRC

#endif

这些PLLCON这样写的功能是设置频率吗?
沙发
dongnanxibei| | 2017-9-28 18:55 | 只看该作者
是的,这是通过预编译的形式,就是你选择的是OSCL,就执行那一段进行编译,如果是XTAl,就执行它的部分。

使用特权

评论回复
板凳
岭背社区|  楼主 | 2017-9-28 21:22 | 只看该作者
请问他设置内部OSCL频率是多少?设置外部XTAL又是多少?

使用特权

评论回复
地板
岭背社区|  楼主 | 2017-9-28 21:25 | 只看该作者
东南西北:您好!能加个QQ吗?请教下! 我的QQ:3165928891

使用特权

评论回复
5
21mengnan| | 2017-9-28 22:53 | 只看该作者
岭背社区 发表于 2017-9-28 21:22
请问他设置内部OSCL频率是多少?设置外部XTAL又是多少?

你这个程序不是官方的例子吧。官方的例子都看过,没有你写的这种。。

使用特权

评论回复
6
21mengnan| | 2017-9-28 22:54 | 只看该作者
那个预编译的你了解一下,那个可能就是检查是否有那个定义,不一定是个真实的数据。

使用特权

评论回复
7
岭背社区|  楼主 | 2017-9-29 07:35 | 只看该作者
我这里是两个不同的程序有分界符的上面的是官网下的例程!

使用特权

评论回复
8
岭背社区|  楼主 | 2017-9-29 07:38 | 只看该作者
下面也是论坛看到的!别人整理过后的程序!

使用特权

评论回复
9
岭背社区|  楼主 | 2017-9-29 07:54 | 只看该作者
D:\xin tang my\PLLCON-1

使用特权

评论回复
10
岭背社区|  楼主 | 2017-9-29 07:56 | 只看该作者
https://bbs.21ic.com/forum.php?mod=attachment&aid=OTIyNzY0fGUxZTJhZjdlYjFmZWYzNmVjZWQ5MWJhMTllMjI3ZWE1fDE3MTM5MTMyMTU%3D&request=yes&_f=.png

PLLCON-1.png (233.25 KB )

PLLCON-1.png

使用特权

评论回复
11
598330983| | 2017-9-29 23:43 | 只看该作者
不建议这么写,虽然看着很通用

使用特权

评论回复
12
天灵灵地灵灵| | 2017-10-9 10:32 | 只看该作者
貌似手册上也很难看懂这个寄存器的规则,不知道我是不是看的不对,好几个

使用特权

评论回复
13
Sunriver_Yao| | 2018-1-9 18:52 | 只看该作者
新唐的单片机有几个特点:PLL不好理解,解释不清;库文件写得一般按,还没大陆的A货好;最好使用寄存器模式编程;抗干扰能力很强;价格非常实惠;仿真器几乎是送的;论坛人潮涌动!样片某宝很多。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

12

帖子

0

粉丝