TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F5438A: 关于Frequency vs Supply Voltage的疑问

Part Number:MSP430F5438A

关于Vcore TRM文档中有如下描述

默认情况下,PMMCOREV为最小值

5438A数据手册中有如下图片

按照这张图片,如何理解TRM手册中“enables operation of MCLK over a very wide frequency range.”

从这张图片看,我的理解是,PMMCOREV设置为最小值0,MCLK最大不能超过8MHz,但是Supply Voltage可以从1.8V到3.6V,Supply Voltage的范围很宽

不是频率范围很宽(MCLK over a very wide frequency range)

Ben Qin:

你好,

user78960159 说:PMMCOREV设置为最小值0,MCLK最大不能超过8MHz

从图片上看,是这样的。“enables operation of MCLK over a very wide frequency range”应该就是指0~8MHz,结合后文档中后面的这句话来看,“As such, no PMM changes are required for many applications", 指对大部分应用来讲0~8MHz是一个很宽的范围。

,

user78960159:

您好 感谢帮助

在我的电路中,我配置了XT2高速时钟,是16MHz的晶体,并且将MCLK和SMCLK的时钟源都配置为XT2CLK

但是在代码中,我没有配置PMMCOREV,使用的默认值为0,我的供电是3.3V的

请问在这种情况下,我是不是必须将PMMCOREV设置为2或者3才能使程序正常运行呢?

从目前的调试看,MCLK为16MHz,供电3.3V,没有配置PPM(即PMMCOREV的数值为0),在以上条件下,程序执行的结果并没有发现异常,这是为什么呢?

,

Ben Qin:

PMMCOREV默认值为0的情况下MCLK最高是8MHz,此时MCLK实际有多少并不清楚(可能只有8MHz),也许在这样的情况下程序依然能够正常执行。但是需要注意的是并不推荐这样做:

,

user78960159:

您好 感谢帮助

考虑到我的外部晶振是16MHz,所以我在配置时钟前做了如下设置

在配置时钟前,先利用TRM文档108页的SetVCoreUp函数逐步将PMMCTL0的PMMCOREV设置为3

您看我这样的操作应该是正确的了吧

不过我不清楚SetVCoreUp函数中,开始的两个循环判断是什么作用

从这句注释理解 // Make sure no flags are set for iterative sequences 是要确保两个标志位没有被置位 那么这里的判断条件是不是有问题

而且从寄存器观测,这两个标志位的初始值都是0,所以如果有这两个while循环的判断在的话,会导致代码死循环在while语句

所以我将这两个while判断注释掉了

从调试结果看,没有发现异常,这是为什么吗 麻烦您解释一下 多谢

,

Ben Qin:

是的,这里是有bug。这里的目的就是检查这两个标志位是否都为0.

请参考下这个帖子:e2e.ti.com/…/msp430f5xx-setvcoreup

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A: 关于Frequency vs Supply Voltage的疑问
分享到: 更多 (0)