TI论坛
直播中

张曼曼

7年用户 201经验值
私信 关注

请问F28035使用外部有源晶振时和使用内部晶振在寄存器的配置上除了选择外部晶振源还有其他的注意事项吗?

本帖最后由 一只耳朵怪 于 2018-6-14 09:56 编辑

各位:
    F28035使用外部有源晶振时和使用内部晶振在寄存器的配置上除了选择外部晶振源还有其他的注意事项吗?
    我在实验时,同样的程序代码控制PWM波形,使用外部有源晶振(20MHz)时的PWM频率刚好是使用片内晶振时PWM波形的两倍,想问下各位F28035使用外部有源晶振都需要做哪些配置?谢谢。

回帖(6)

胡红枚

2018-6-14 05:13:58
都是有寄存器配置的       内部集成两个10M的晶振
默认启动时是有效的且晶振1作为默认时钟源,若为省电,晶振需由用户手动关闭,震荡频率可由各自寄存器配置;内部振荡1和内部振荡器2均可独立选择为看门狗、核心电路和CPU定时器2提供时钟
举报

徐小婷

2018-6-14 05:20:29
因为片内晶振是10M,所以你使用外部晶振就会是片内的两倍,首先你要注意片外晶振或者时钟源只能是5-30M,然后通过F28035 的PLL倍频再分频到最高60M。
在初始化时钟源的时候调用以下函数就可以了。
void XtalOscSel (void) [
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed.
SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
]
举报

张曼曼

2018-6-14 05:27:59
引用: muuwfwr 发表于 2018-6-14 05:20
因为片内晶振是10M,所以你使用外部晶振就会是片内的两倍,首先你要注意片外晶振或者时钟源只能是5-30M,然后通过F28035 的PLL倍频再分频到最高60M。
在初始化时钟源的时候调用以下函数就可以了。
void XtalOscSel (void) [

你好,谢谢,回复。
我用的是外部有源晶振,可以自动产生20MHz振荡的那种,不是石英晶振,是不是应该调用下面这个函数?
还有就是除了调用这个函数之外还需要对倍频和分频的寄存器进行操作吗?
我之前用的F28035开发板进行软件开发,那个用的是内部10MHz晶振,现在设计了自己的线路板,用的是外部20MHz有源晶振,想要把之前的软件直接下载到现在的线路板上使用,因此想问一下是不是还需要额外的配置倍频、分频寄存器?
void ExtOscSel (void) [
EALLOW;
SysCtrlRegs.XCLK.bit.XCLKINSEL = 1; // 1-GPIO19 = XCLKIN, 0-GPIO38 = XCLKIN
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 1; // Turn on XTALOSC
SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 0; // Turn on XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
]
举报

徐小婷

2018-6-14 05:41:35
引用: 60user65 发表于 2018-6-14 05:27
你好,谢谢,回复。
我用的是外部有源晶振,可以自动产生20MHz振荡的那种,不是石英晶振,是不是应该调用下面这个函数?
还有就是除了调用这个函数之外还需要对倍频和分频的寄存器进行操作吗?

是的你需要重新分配PLL的倍频和分频数。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分