您好!
我在我们的现有项目中使用 MSP430、我们在该项目中执行测量和故障检测。
为此、我们目前使用1个通道进行电流测量、另一个通道用于电压测量。
现在、我们需要在一个通道上启用内部温度传感器。 启用后、它会将电流增加约50uA。
为了降低其电流、我想对温度传感器使用窗口比较器模式。
是否可以在不影响其他通道的情况下将 WC 用于内部温度?
如何降低电流消耗?
请共享参考代码以启用此功能。
此致、
Pradeep Lokhande
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.
您好!
我在我们的现有项目中使用 MSP430、我们在该项目中执行测量和故障检测。
为此、我们目前使用1个通道进行电流测量、另一个通道用于电压测量。
现在、我们需要在一个通道上启用内部温度传感器。 启用后、它会将电流增加约50uA。
为了降低其电流、我想对温度传感器使用窗口比较器模式。
是否可以在不影响其他通道的情况下将 WC 用于内部温度?
如何降低电流消耗?
请共享参考代码以启用此功能。
此致、
Pradeep Lokhande
窗口比较器可通过相关 ADC12MCTLx 寄存器中的 ADC12WINC 启用、因此可按通道启用。 如果为多个通道设置 WINC、则由代码确定哪个通道触发比较器。
示例 msp430fr599x_ADC12_21.c 在单个通道上演示了这一点:
https://dev.ti.com/tirex/explore/node?node=ABi.t.SEJvbEzrKLdGbCIw__IOGqZri__LATEST
如果看不到您的实际代码、我预计额外电流的大部分来自内部 VREF [参考数据表(SLASE54C)表5-30]。 由于所有 TLV 温度校准都是使用 VREF 完成的、因此您可能无法将其关闭。 您将节省当前用于进行比较的任何 CPU 活动时间。
您好!
感谢您的回答。
是否可以在不影响其他 ADC 通道的情况下打开/关闭温度传感器。 我们需要在每小时测量几秒钟的温度。 它将节省电流消耗。
开/关需要什么配置?
ADC 初始化例程、以供您参考。
一种相当简单的策略是为温度传感器使用最后一个 MEM 寄存器(如您所做的那样)、并在最后一个和下一个 MCTL 寄存器中设置 EOS 位。 当您想要对温度进行采样时、清除下一个 MCTL 中的 EOS 位、运行 ADC 序列(一次)、然后再次设置该 EOS 位。 当您处理 DMA (目标)缓冲区时、您必须知道第三个条目是否有效(它不会改变、因此它不会是一个奇怪的值或任何东西)。
您将需要切换 ENC 以更改 EOS 位。 我看不到您对 startConversion 的调用、但如果您使用的是 CONSEQ=3 (ADC12_B_REPEDIATE_SEQOFCHANNELS)、则需要重新启动 ADC。 [不过、如果您想省电、无论如何都不应该使用 CONSEQ=3。]
您可能能够在温度传感器读数之间关闭 TCMAP; 不过、我不知道这是否会为您节省任何费用。
未经请求:温度传感器需要至少30us 的采样/保持时间。 使用 MODCLK (5MHz)时、64个时钟(~13us)是不够的。
您好!
我们将使用以下方法来启动转换。
_interrupt void TIMER0_A0_ISR (void)
{
if (Modbus_on = false){
/**触发 ADC 转换*/
ADC12_B_startConversion (ADC12_B_base、ADC12_B_START_at_ADC12MEM0、ADC12_B_SEQOFCHANNELS);
}
}
温度传感器的窗口比较器模式将有助于我们降低电流消耗。
窗口比较器本身使您可以避免使用 CPU 来查看采样值。 由于您仍在查看其他两个通道、边际优势可能很小。 (在不同的应用中、例如在所有通道上使用 WINC、程序可以避免大部分时间处理任何 ADC 结果、因此好处更大。)
由于您将 VREF 用于其他通道、因此您无法真正避免为此付出代价。 但是、
1) 1)如果您的应用允许、您可以设置 ADC12PWRMD=1 [ADC12_B_setAdcPowerMode (ADC12_B_LOWPOWERMODE)]、这会将基准缓冲器电流削减大约一半。 [参考数据表(SLASE54C)表5-30]。 您还需要使用 ADC12_B_CLOCKDIVIDER_4 [参考用户指南(SLAU367P)第34.2.5节]、因此每次转换所需的时间为4倍(但对于温度传感器、64个时钟是可以的)。 这可能是一个值得的折衷--我会构建一个电子表格,或者只是针对两个编码情况测量它。
2)根据用户指南第34.2.4节[我尚未在 FR5994上尝试过这种方法]如果您将 REFON=0、ADC 将为您启动 VREF -每个序列一次、因此它在批次之间关闭。 这在(第一个)转换前增加了大约40uS [参考数据表表5-30]、但如果采样速度不是很快、这可能是一个值得权衡的因素。
您好!
我们尚未尝试选项1、因为它似乎会影响我们的测量。
第二点、我们验证了 REFON=0和 REFON=1、而不影响任何其他 ADC 配置。 以下是观察结果:
两个通道的正常电流消耗- 140uA。
2.为内部温度传感器添加第3个通道并将 SH 周期时间增加至64 - 165 μ A。
当设置 REFON=1 - 200uA 时。
设置 REFON=0 - 165uA 时。
查询:
在执行 REFON 设置复位时、我们是否需要配置任何其他参数?
2.我们能否在运行时修改 SH 时间(64周期到4周期)而不重新初始化 ADC? 因为它还可以节省20uA。
此致、
Pradeep Lokhande
1) 1)据我所知、设置 REFON=0或=1不会影响任何其他设置。 具体而言、不必多次设置 REFVSEL。 您只需记住、它不会立即启动(40-80us)。
2) 2)要更改 SHT0、您(仅)需要清除、然后围绕更改设置 ADC12ENC [SHT0在用户指南图34-14]中标记为蓝色]。 您可以在更改 MCTL1:EOS 的同时执行此操作。 这是一个相当快速且良好的序列;只需确保您仅在 ADC 空闲时执行此操作。