This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我在 MSP430FR2311 Launchpad 上运行示例 ecomp_ex2_interruptVcompVs1.5V。 此示例的配置如下:
//
// MSP430FR2311
// ------------------
// /|\ | |
// | | |
// ---- | RST P1.1/C1 |---------------- VCOMPARE
// | |
// | P2.0/COUT |--- >'HIGH'(VCOMPARE >1.5V);'LOW'(VCOMPARE <1.5V)
// | | |
// | | | LED '打开'(Vcompare>1.5V);'关闭'(Vcompare<1.5V)
// | |
//
//
我正在监控 P2.0/COUT 电压、它始终为0V。 如果引脚 P1.1上的电压高于1.5V 的内部基准、则应该变为高电平。 我在 P1.1上输入0-3V 范围、P2.0/COUT 仍为0V
无论引脚 P1.1上的电压如何、CP0CTL1寄存器中的 CPOUT 位都显示1、并且仅当我在 P1.1上使用接地跳线时才变为0。
P1、P2寄存器中的 P1SEL0和 P1SEL1都设置为0x00、它们是否应该有不同的值来指示它们是比较器的输入和输出?
如何根据 P1.1电压更改 P2.0输出电压?
谢谢 Vadim
Vadim 您好、我可以确认您是否已测试 FR2311代码示例:01~05 MSP430FR231x 代码示例上的 msp430fr231x_eCOMP_Δ Σ(修订版 E)。 我认为代码示例提供了有关 eCOMP 基本函数的良好参考。
根据用户指南(SLAU445I)第2.2.8节、我认为内部基准需要显式打开(INTREFEN)才能将其用于 eCOMP DAC。 数据表(SLASE58E)第6.11.1节建议、设置 CPDACREFS=1足以使其打开、但措辞更含糊。
在任何情况下、我都会看到 PMMCTL2:REFGENAC=0。 由于比较器始终运行、我认为它需要始终为=1。
除了我的 mumblings 之外、请尝试使用以下命令显式打开基准:
>PMM_enableInternalReference();
您好、Xiaodong、
我从以下位置导入了示例:
Resource Explorer/MSP430ware/Libraries/Driver Library/MSP430FR2xx_4xx/示例项目/Ecomp/ecomp_ex2_interruptVcompVs1.5V
您参考的是位域示例。 我也会尝试它们。
谢谢 Vadim
您好、Bruce、
我会尝试一下,您能否澄清我的其他问题。
为什么 CPOUT 位为1、但比较器输出 P2.0为0V?
为什么 PxSEL0 和 PxSEL1设置为 GPIO 而不是比较器输入、输出? 是否可以运行此板并将其检出?
谢谢 Vadim
我实际上尝试了位域示例、它工作正常。 当 P1.1输入为 1.5V 时、PxSEL0、1设置正确、P2.0电压为3V。
谢谢 Vadim
1) 1)我看不到这种行为。 我安装了 P2.0/LED 跳线、当 CPOUT=1时、LED 亮起(反之亦然)。 我没有电压发生器、因此 GND/3V3是我唯一的测试用例。
2) 2)我看到 P2SEL.0 = 10、这与数据表表表6-44相匹配。
我不确定为什么您看到 P2SEL.0=00、但这可能会导致症状(1)。 如果您暂停该程序、您在哪里执行?
3)似乎他们忘记配置 P1.1 (P1SEL.1=11)、因此我不太确定这是如何工作的。
可能是 PSEL=0并不实际断开 eCOMP 与引脚的连接、它只是不禁用施密特触发器(如某些器件的 ADC 中所示)。 我的测试用例无法区分这一点。
同样,我建议补充:
> GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P1、GPIO_PIN1、GPIO_ternary_MODULE_Function);
您好、Bruce、
我将使用位域编程。 我以前是为 C2000实现它、现在将继续使用 MSP430。 它似乎也占用较少的内存。
谢谢 Vadim