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.

[参考译文] RF430CL331H:TIDA-00524 -电池寿命

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/565892/rf430cl331h-tida-00524---battery-life

器件型号:RF430CL331H
主题中讨论的其他器件:TIDA-00524MSP430FR5969RF430CL330HMSP430FR5949TMP112

你(们)好

是否可以访问源自 TIDA-00524参考设计第22页上提供的电池寿命估算图的数据?

在通过射频进行通信时、我们如何 估算知道将传输的数据量的电流消耗(RF430CL331H + MSP430FR5969)。

谢谢

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

    我必须向 Eddie (其中一位作者)核实这些数字是否可用。 如果我的回忆是正确的、那么用于这些估算的信息比最坏情况更接近最佳情况... 因此、更像是100字节数据传输、而不是45-50KB 最大数据大小。 其理念是、每次读取时将提取1分钟的数据或2分钟的数据、从而无需存储大量数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好。 感谢您的回复。 我还有关于此参考设计的原理图/BOM 的一些问题。 使用的 NFC 偏离是 RF430CL330H、但在 BOM 中、RF430CL331H 被删除。 查看代码、似乎使用了 onlt I2C。 其他引脚有哪些用途? 还有一个 P2.5 (来自 MSP430)连接到天线。 目的是什么? 再次感谢。

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

    您好、Marco、

    好的、我得到了设计文档中用于投影的数据。 我必须更正我之前对 NDEF 消息大小的评论。 针对此特定应用和用例假设 NDEF 消息很少被拉取、例如一天一次甚至更长时间、因此计算中不会考虑功耗。 但是、可以使用第7.4节中的公式1来进行这些计算。

    有关 NDEF 传输期间的功耗数字、请参阅 RF430CL331H 数据表、表4.5"电源电流"。 您还需要检查所使用的 MCU -在本例中为 MSP430F5969 -并查看 LPM 之外通常消耗的电流。 您还可以获取 EVM 并使用功率分析仪测量电流、以实现更高的精度。

    关于原理图、RF430CL330H 的列表是错误的、应该是 RF430CL331H、但 CL330H 和 CL331H 从封装角度来说是引脚兼容的、因此尺寸和引脚排列都很好。 我在下面附上了一个更新的原理图文件。

    关于"其他引脚"、我假设您是指原理图上的两个"SPI"引脚。 您将看到、在下面的新原理图上、它们现在在新原理图上标记为 I2C_Signal 和 I2C_Ready (网络名称保持不变、但似乎... 因此、只需关注实际的引脚名称、而不是这两者的网络名称)。 MCU 使用这些信号进行以下操作:

    • I2C_Ready:高电平表示可以启动 I2C 通信。 低电平表示不得启动 I2C 通信。
    • I2C_Signal:低电平表示自动发送等待时间扩展命令。 I2C 通信不必停止。

    您可以在 RF430CL331H 数据表的表3.3信号说明中看到这些详细信息。

    关于 P2.5、这用于触发 MSP430在出现射频场时打开。 这样做而不是从 INT 引脚触发、可以节省 ~35uA 的电流、因为我们不必始终启用射频。

    更新了原理图: e2e.ti.com/.../TIDA_5F00_00524.pdf

    用于功率计算的原始数据:e2e.ti.com/.../TIDA_2D00_00524-Power-Calculations.xlsx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    感谢您的回复和数据。
    关于 RF430CL331H 电源电流、我感到困惑。 在数据将从 MSP430存储器传输的典型应用中(例如、4kBps => 12秒时为46KB)、RF430将有一个"强"射频字段存在并且将被激活(MSP430打开 RF430)。 在这种情况下、电流消耗是 ICC (I2C)=250uA + ICC (RF、低 VCC)?
    目的是对每个"下载"上使用的电流进行估算。

    关于 P2.5、这是否意味着未使用 RF430CL331H 的 INT0 (MSP430上的 RF430_IRQ)?
    我计划使用一个非常小的 PCB。 因此必须删除所有不必要的路由。 在查看代码时、我看不到 RF430_IRQ 以及 TMP_ALERT 的任何相关信息(来自 TMP11A ALERT 引脚)。 是否可以移除这些连接?
    此外... 由于可用空间、我的目标是6x6 QFN (MSP430FR5949而不是 MSP430FR5969)。 您是否看到这有任何限制?

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

    尊敬的 Marco:

    在这个应用中使用了 INIT 引脚、我看到它被多次用于中断、也被用于主 while 环路中。 它在固件中没有被标记为 RF430_IRQ (不同的人执行代码与硬件... 很抱歉让人困惑。。。) 因为我没有编写固件、所以我不想评论它的使用方式... 但我知道它的功能与其他2个信号不同、这就是它作为有效引脚被保持并被用于此版本器件的原因。

    对于 TMP_ALERT 以及关于该主题、我认为 OPT_INT 似乎都没有使用我可以告诉的内容。 我会参考 TMP112数据表、确定您是否会看到自己在利用该功能、然后根据该功能决定连接与无连接!

    我认为 MSP430FR5949没有限制。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好。 感谢你的帮助。 我将准备一些布局、然后返回到代码。
    此致
    Marco
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我接收 PCB 并组装它们。 我能够让演示代码正常工作。
    由于在最终应用中、我们不会使用所有传感器、因此我尝试最大程度地利用可用于记录的存储器。 我已经从代码中"删除"了一些与传感器相关的部分、这些部分将不会被使用、我注意到内存占用空间减少。 在我看来、对*。map 文件不清楚、这是一个"占用"的内存。
    在代码上、我们可以看到:
    unsigned char* gp_StartOfDataloggingMemory =(void *) 0x08800;//在映射文件中找到可用内存。
    unsigned char* gp_EndOfDataloggingMemory =(void *) 0x14000;

    但.map 文件没有对应关系。
    您能给我指一下这条道路吗?

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

    通过分析.map 文件并查看程序存储器映射到的位置、然后使用程序未使用的可用空间来确定这些范围。

    例如、在 Web 上的代码中、矢量表位于两个可用存储器段之间、因此一个可用存储器块从程序代码末尾到第一个矢量表项(即 AES256中断)。 程序代码在0x80aa 结束、并且选择了位置0x8800 (不确定为什么存在较大的间隙、可能是为了给小型应用程序调整留出空间?)。 另一个重要的存储器是从矢量表的末尾(0xFFFF)到 FRAM 存储器的末尾(0x14000)。

    因此、您需要浏览新的.map 文件并查看可用存储器中这些大漏洞的位置、然后使用它为数据记录缓冲区分配指针。

    在 Web 代码上未完成的一件事可能是一个好的做法、那就是使用存储器保护单元来保护您的程序代码不被覆盖: www.ti.com/.../slaa628.pdf -该文档还可以帮助指导您在映射文件位置方面进行一些操作、如第6.2.1节中所述。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我认为我理解了。 查看我的映射文件:

    00006468 00000006 datalogger.obj (.text:DL_Reload _长度)
    0000646e 00000006 datalogger.obj (.text:DL_SET_Record_Header)
    00006474 00000006 rts430x_lc_rd_eabi.lib:exit.obj (.text:abort)
    0000647a 00000002 :startup.obj (.text:_system_post_cinit)

    AES256 0 0000ffcc 00000002
    0000ffcc 00000002 rts430x_lc_rd_eabi.lib:int30.obj (.int30)

    我的代码以647C 结束。 即使考虑到在6600处开始寻找内存、我也得到了55808字节(0x14000 - 0x6600)。
    是这样吗?
    我还将查看该应用手册(MPU)。
    谢谢
    Marco
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Marco:

    非常接近、是的、您需要考虑到您需要从0000ffcc 跳到0000FFFF、这样您就不会覆盖矢量表。 但是、除了这一点之外、您还拥有所有的存储器空间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好。 感谢您提供的信息和提醒。  我知道矢量表。 我忘记了。

    我现在正为另一个问题而挣扎:

    我有两块电路板组装和工作,但在这两块电路板中,我都观察到一些“零”读数。

    一个板作为5969,上面有应用手册固件(TIDA-00524)(loger1),另一个板作为5949,上面有我的“定制”代码(loger2)

    查看下面的图可以看到正在读取一些“零”读数。

    您是否见过此类行为?

    谢谢

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

    尊敬的 Marco:

    不、我不相信我们以前看到过这种情况。 如果您可以进行调试、我会尝试确定温度传感器是否返回这些值、或者 MCU 端是否存在问题、以及它如何转换温度传感器值并从那里执行转换。 如果温度传感器返回0、则您可能需要转到该器件的 E2E 论坛、并询问会导致该行为的原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我设法解决了这个问题
    在代码上、TMP112加电后有一个30ms 的延迟。 根据 TMP112数据表:
    “加电或复位后,温度寄存器读数为0°C,直到第一次转换完成”

    “转换时间26ms (典型值) 35mS (最大值)”
    加电时间和转换编码的30ms 失败了一段时间。 我很简单,但却解决了这个问题。。。
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Marco:

    感谢您的更新。 您最终使用了什么延迟值? 我们可能需要考虑根据此反馈更新 TI 示例...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我保留了30ms。 从我有时注意到的情况看、这足以完成转换。 为了节省几毫秒的电池电量(并且不受传感器/PCB 变化的影响),我正在轮询传感器值。 只有“退出”(如果它不同于“零”)(应用程序中的此类概率很小)。
    因此我将 TMP_GET_Temp ()函数更改为
    TMP_I2C_Init();
    while (pTempData[0]= 0){
    pTempData[0]= TMP_I2C_READ_Register (TMP112_TEMP_REG);

    我还有另一个问题要问。 我可以向您发送私人消息吗?
    BR
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Marco:

    好的、谢谢您的解释。

    当然、您可以向我发送一条私人消息。