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.

[参考译文] MSP430F2252:PMP8740 -嵌入式软件。

Guru**** 2382480 points
Other Parts Discussed in Thread: PMP8740, LMT87
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/732182/msp430f2252-pmp8740---embedded-software

器件型号:MSP430F2252
主题中讨论的其他器件:PMP8740LMT87

尊敬的 Britta:

下午好。 有关 PMP8740 -并行电源模块软件代码的问题(由 Roberto Scibilia 开发)

Q1)软件代码文件- main.h

关于测试位-> 在 main.h 文件中将测试位定义为1。 在项目中、许多 c & h 文件使用了 test==0。 但是、当测试位变为0时? 我搜索但在项目中找不到。 请帮助。  

Q2) 软件代码文件- main.c

减速状态充电器(状态)-我阅读固件流程图、了解0至5的状态(根据 COUNTER_STATUS ->状态0至1 (510ms)、状态1至2 (40ms)、状态2至3 (510ms)

状态3至4 (510ms)和状态4至5 (20ms)、对吧? 不理解将状态5更改为6、请参阅一些指南。

祝你度过美好的一天!!!

谢谢、此致、

Vijay  

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

    让我与我们的专家一起探讨这个主题。 很快回来。

    此致、
    Andre
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vijay、Andre、
    下面是 Vijay 问题的两个答案:
    A1)我使用"test"位将转换器置于"test"模式、因此多个警报以及欠压和过压保护将留空且不考虑在内。 我通过将"test"位定义为零或直接在定义 main.h 文件中将其定义为零、然后将其编译并下载到 uC 来实现它。 有多种方法可以实现这一点、例如在显示屏上提供菜单并输入密码、但这需要更多代码。
    A2)您说得对、转换器的状态为6。 当状态5处于活动状态时、输出电流斜升;当转换器达到编程的输出电流时、达到状态6。 在 main.c 中、"switch (STATUS_CHARGE) case 会停止至 case 5、因此该状态不会显示在显示屏中、因为实际上此处不会发生任何情况。 扼要重述一下、状态6与状态5相同、但在转换器提供其编程的输出电流时。
    此致、
    Roberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Roberto:

    感谢您提供信息。 我在 Pune 的 Ador Digatron Pvt Ltd 担任软件开发人员、与 Anjana Salgaonkar 夫人一起工作。

    A1)我明白了。

    A2)确定。 当 VOLTGE_OUTPUT > 1000时、COUNTER_STATUS 再次达到 COUNTER_max (300)
    和 STATUS_CHARE++(表示 STATUS_CHARE=6)、对吧?

    Q1)软件代码文件- main.c (PMP8740)
    减速状态_充电器(状态)-状态从6到0。 SPEED_STATE_DOWN[6]={30、15、60、150、153};
    当 Charge_enable=0 (假设我按键)且当时为 STATUS_CHARE=6时、执行循环。

    FLAG_PFC_FAIL = 0;
    如果(STATUS_CHARGER > 0)

    COUNTER_STATUS = COUNTER_STATUS - SPED_STATUS_DOWN [STATUS_CHARY];
    if (counter_status < 0) counter_status =0;
    if (COUNTER_STATUS = 0)

    STATUS_CHARGER --;
    COUNTER_STATUS = COUNTER_max;

    现在、STATUS_CHARE=6表示 SPEED_STATE_DOWN [6]、对吧? 但不存在该值。 我认为 Put If 语句
    if (status_charger>5) status_charger--在此语句之前 counter_status = counter_status - speed_state_down[status_charger];
    或 define SPEED_STATE_DOWN[7]={0、30、15、60、150、3}、我的回答是否正确? 请帮助。

    Q2)软件代码文件- main.c (PMP8740)
    关于 FAIL_PRARGE (反极性)输入-在 CHARGE_ENABLED = 1情况下、存在以下循环。

    if (STATUS_CHARGER = 3)

    if (((fail_precharge 和 BIT3)=BIT3)&&(test=0)//检查预充电电压故障引脚

    ALARM = ALARM | BIT6;//设置 ALARM DC/DC 故障
    CHARGE_ENABLED = 0;//关闭充电器

    在硬件中(PMP8740 Rev_C PCB)-->正常反极性 P3.3 =高电平,当反极性 P3.3 =低电平时
    连接的输出是反向的、对吧? 如果是、请使用 if (((~fail_precharge)&BIT3)==BIT3)选中 fail_precharge 为低电平的 if 语句、正确吗?

    Q3)软件代码文件- timerA.c (PMP8740)

    TACCR0 = 16000;表示定义的1KHz PWM、对吧?
    TACCR1 = 0;对于电流 PWM、意味着 TACCR1 = 0至 TACCR1 = 16000最大值 计数根据 TACCR0定义、对吧?
    TACCR2 = 0;对于电压 PWM、意味着 TACCR2 = 0至 TACCR2 = 16000最大值 计数根据 TACCR0定义、对吧?

    Q4)软件代码文件- timerB.c (PMP8740)

    TBCCR0 = 416;表示定义的38KHz 和用于 Timer B 中断例程(26us x 39 = 1.014ms 生成)的38KHz (26us)、对吧?
    根据 TBCCR0的定义、TBCCR1 = 0至 TBCCR1 = 416 max.count、我的回答是否正确? 还是另一种模式? 请帮助。

    Q5)关于温度传感器-板上有一个 LMT87温度传感器(PMP8740硬件)。 温度读/传感的原因是什么?

    Q6)关于 LCD 显示屏-板上有一个 LCD 显示屏(PMP8740硬件)。 这仅用作字母数字显示屏、对吧?

    谢谢、此致、

    Vijay Shinde

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Vijay:
    您可以在下面找到问题的答案:
    A2)->正确
    Q1)->您知道、我在4年前开发了此软件、因此我不记得所有状态和时间分配。 我相信您是对的、您可以向矢量添加另一个数字以达到状态6、或者像您建议的那样将指令放在之前。 请告诉我这是否合理。
    Q2)->反极性和故障预充电部分的整个故事、当时已经启动但未实施、因此请丢弃。
    Q3)->正确。
    Q4)->正确:我建议将416更改为640:这将为风扇生成25KHz PWM 信号(此时、对于416、PWM 频率为38.46KHz)。 另请将39修改为25:这将使计时器再次变为1ms。
    Q5)->传感器 LMT87读取直流/直流级的 PCB 温度。 如果它高于设定的值、它将设定一个警报并关闭转换器。
    Q6)->正确、这只是一个字母数字显示屏。
    此致、
    Roberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Roberto:

         感谢您提供信息。

    谢谢、此致、

    Vijay Shinde