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.

[参考译文] MSP430F425:电池

Guru**** 2551110 points
Other Parts Discussed in Thread: MSP430F425

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/589480/msp430f425-battery

主题中讨论的其他器件:MSP430F425

工具/软件:TI C/C++编译器

您好!

我必须在 MSP430F425上工作。 我在计数器(电表)中添加了一个电池,但电池配置有问题,有一个想法可以在配置级别帮助我!!  

我使用软件库 tidc299我想知道如何配置电池的过程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我假设您仍在使用 EVM430-FE427A、但如果我错了、请纠正我的问题。 很抱歉、我不能完全理解您的要求。 请提供有关您计划如何在应用中使用电池的更多详细信息。 您是否将电池用作电源、备用电池等? 您正在尝试进行哪种配置?

    此致、

    James

    MSP 客户应用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 James

    是的、我必须使用 EVM430-FE427A 来配置我的 MSP430F425。 我有一个在低功耗模式下工作的备用电池。 我在 TI TIDC299 软件中找到了电池代码、但存在类似的错误
    未定义且我不理解其有效性的 POWER_HIGH_SENSE 和 POWER_HIGH_THRESHOLD_HIGH



    这是电表 RTC 中的配置位置、我在这里发现此错误


    #if defined (_MSP430__)
    如果(OPERAING_MODE = OPERAING_MODE_POWERFAIL)

    int i;
    int j;
    /*选择较高的比较器阈值进行启动。 这确保了我们应该拥有
    电容器中有足够的能量来保持仪表的运行、直到它达到所需的效果
    下一步。 *
    POWER_GAND_THRESHOLD_HIGH;
    /*我们需要快速启动,因此我们不能做太多工作
    在这里进行去抖*/
    POWER_DOWN_B去 抖= POWER_RESTORE_去 抖;
    I = POWER_Good;
    while (--power_down_debounce >= 0)

    J = POWER_Good;
    如果(i!= j)

    I = j;
    POWER_DOWN_B去 抖= POWER_RESTORE_去 抖;


    如果(j)

    /*这似乎是一个真正的加电。 *
    #if 已定义(basic_lcd_support)
    display_power_normal_message();
    #endif
    custom_lcd_wakeup_handler ();
    _BIC_SR_IRQ (LPM3_BITS);

    POWER_DOWN_B去 抖= 0;

    #endif
    #endif
    #endif
    #if 已定义(LIMP_MODE_SUPPTENT)
    如果(OPERAING_MODE = OPERAING_MODE_LIMP)

    //我们需要启动,以便为前台活动提供一个机会
    工作。 *
    _BIC_SR_IRQ (LPM0_Bits);

    #endif
    #endif
    kick 安全装置();

    #endif






    感谢你的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您的耐心等待。 深入了解 TIDC299中的代码后、我发现"emeter.h"文件中未定义 POWER_DOWN_SUPPT支持、但如果遇到上述错误、我假设您已将其更改为定义。 很遗憾、我无法联系此代码的作者、因此我假设由于默认情况下未启用此功能、因此可能已将其作为参考。

    如果您在'emeter-rtc.c'中查看第98行、则会看到一条 OR 语句、代码在该语句中检查 MSP430是否具有 Comparator_A 模块。 由于 MSP430F425没有 Comparator_A 模块、因此该 OR 语句会检查 POWER_Good 和 POWER_Good 阈值_HIGH 定义。 在整个项目中搜索后、我在"emeter-background.c"的1524行找到了一个函数、用于检查是否已定义 power_gower_sense。 如果没有、代码将继续配置比较器。 第1522行和1523行让我认为 POWER_COOST_变量与使用通用 I/O 引脚检查电源电压是否发生故障相关联。 也许可以使用电阻分压器电路并检查该引脚上的逻辑0或1来完成此操作。 可能会使用 VIH 和 VIL 电平、这可能是 POWER_HIGH_THRESHOLD_LOW 和 POWER_HIGH_THRESHOLD_HIGH 变量所指的值。 我建议使用 SVS 模块、因为它可以监控外部电压或 AVCC。 您可以设置特定电平、也可以通过软件访问 SVS 比较器的输出。 'emeter-background.c'中的第1537行是代码检查电源电压下降的地方、工作模式更改为 OPERATE_MODE_POWERFAIL。 在代码中的这个区域、您需要实现用于检查电源电压的代码。

    希望这能帮助您指明正确的方向。

    此致、

    James

    MSP 客户应用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢你的答复

    对于功率满模式问题、我使用引脚 I/O 来控制电源故障、并使用 SVS 引脚来恢复正常模式。

    在电压计算函数进行测量后、电压结果的显示出现了另一个问题

    我更改了换算系数值以校准电压、但没有稳定值。

    如果已定义(VRMS_SUPPTENT)

        #IF 定义(single_phase)

    int32_t 电压(void)

        其他

    int32_t 电压(struct phase、parms_s * phase、struct phase、nv_parms_s const * phy_nv)

        #endif

        int16_t i;

        int32_t x;

        /*以10mV 为增量计算 RMS 电压。 返回-1表示超范围

           (即 ADC 削波)。 */

       IF (((PHASE->STATUS & V_OVERRANGE))

          返回-1;

        x = div_sh48 (phy->V_sq_accum_logged、26 - 2 * adc_bits、phy->sample_count_logged);

        #if 已定义(LIMP_MODE_SUPPTENT)

        如果(OPERAING_MODE = OPERAING_MODE_LIMP)

            I = PHASE_NV->V_rms_LIMP_SCALE_FACTOR;

        其他

        #endif

            I = PHASE_NV->V_rms_SCALE_factor;

        x = isqrt32 (x);

        X =(x >> 12)* 67997;// 18034;

        x >>= 14;

        返回 x;

    #endif

    以下是我在捕获屏幕中的结果