工具/软件:Code Composer Studio
您好!
我们现在将创建一个使用 MSP430F4152作为 MCU 的无刷电机(在下面称为 BLDC)控制新项目。
我使用以下函数将系统的主时钟更改为8MHz。
void set_System_clk (void)//芯片 MSP430F4152请参阅 MSP430x4xx 系列数据表
{
SCFQCTL |= 121;//(121+1) x 32768 x 2 = 7.99MHz
SCFI0 |= FN_4;//x2 DCO 频率、8MHz 标称 DCO
FLL_CTL0 |= DCOPLUS + XCAP11PF;//DCO+ SET SO FREQ= xtal x D x N+1
FLL_CTL1 |= SELM_DCO;//MCLK=DCOCLK
FLL_CTL2 |= LF1XT1S_0;//低频时钟为32.768kHz 晶振
P1DIR |= BIT1;//+ BIT6;//选择 P1.1和 P1.6作为输出
P1SEL |= BIT1;//+ BIT6;//P1.1=MCLK、P1.6=ACLK
}
pdf 文件是电路板的原理图。
查看文件的第3页、我们使用来自 MOXON 的驱动器和用于 BLDC 控制的 MOSFET 接口。
当我使用 MOSFET 接口高速控制 BLDC 时、BLDC 的时钟会在运行几秒钟后下降。
我使用示波器通过 P1.1检查 MCLK、MCLK 恰好变为4MHz、无需对寄存器进行任何更改。
在我停止 BLDC 后、MCLK 自动变为8MHz。
1) 1)为什么 MCLK 本身发生变化?
2) 2)如何将 MCLK 固定在8MHz 的频率上?
此致、
Yu-Chuan、Chen