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.

[参考译文] CC1312R:测量无线电传输期间的电源电压

Guru**** 2486065 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1175877/cc1312r-measuring-supply-voltage-during-radio-transmitting

器件型号:CC1312R

大家好、我已经在 CC1312上完成了我的应用。 目标是尽可能节约能源。 我需要知道为 CC1312供电的电池的最低电压。 最低电压显然取决于实际电流消耗。 当 CC1312传输无线电消息时、电流消耗最高。 我已经通过 CC1312中的模数转换器实现了电池测量。 我在电池上有一个 HW 分压器、电压进入 CC1312的 A/D 输入端、然后测量我需要通过 GPIO 引脚将一个电阻(分压器的)接地。 这种情况非常正常、但电压是在 TX 之后测量的。 TX 期间是否可以通过某种简单的方法进行测量? 或者是否可以直接测量我可以使用的电源电压(功耗不大于 A/D)?

提前感谢您。

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

    具体取决于您的操作方式。  

    ADC 测量必须在单独的线程中完成。 然后、您可以在启动 TX 之前布置一个信标、并在 ADC 线程中的信标上作为起始挂起。   

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

    您好!

    正如 Torstein 的 Ghost 所建议的、您可以在专用线程中执行 ADC 测量。 如果您使用 TI RTOS、则会自动处理电源管理、并且器件将尽可能进入待机状态。

    https://dev.ti.com/tirex/explore/node?node=A__ACP8n-eEUUnynk7pLMwchA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST&placeholder=true

    谢谢、

    玛丽·H

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

    感谢两者、但我忘记了提到我使用了 NoRTOS、我的应用程序几乎已经完成、因此改用 TI RTOS 毫无意义... 还有其他解决方案吗?

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

    您可以使用传感器控制器进行 ADC 测量、并在进入 RX 之前向传感器控制器发送触发信号。 和/或设置 ADC 以连续测量(ADCbuf)并在进入 TX 之前开始测量。

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

    很抱歉、我发现您的解决方案可能需要 TI-RTOS。 我在这里写道、我使用的是非 RTOS、我的应用程序即将完成、因此我无法切换到 TI-RTOS。 您有其他解决方案吗? 谢谢你。

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

    您好!

    如果您使用传感器控制器进行 ADC 测量、则可以独立于 M4来完成。  

    我们在这里介绍了传感器控制器:

    https://dev.ti.com/tirex/explore/node?node=A__ADGzX5U13iRKZ8SSryvxjw__com.ti.SIMPLELINK_ACADEMY_CC13X0SDK__1FaRUBA__LATEST

    谢谢、

    玛丽·H

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

    我不使用任何"传感器控制器"。 我的应用来自 Rx 回波示例。 但是、我可能已经发明了一个解决方案。 请您检查一下它是否可以安全地以这种方式使用而不会出现任何问题吗? 提前感谢您。

    inline void measVbatUntilTxEnds(void) {
        GPIO_write(CONFIG_GPIO_ADC_EN_CONST, 0);
        uint16_t adcValue0;
        register uint16_t lowestAdcValue = 0xFFFF;
        ADC_Handle adc;
            ADC_Params params;
            int_fast16_t res;
    
            ADC_Params_init(&params);
            adc = ADC_open(CONFIG_ADC_0, &params);
    
            if (adc == NULL)
            {
                data.header.battery = 0xFF;
                GPIO_write(CONFIG_GPIO_ADC_EN_CONST, 1);// turn divider off
                return;
            }
    
            // measuring the voltage
            // I could not find the PROP_DONE_OK define so I use direct value below
            while(RF_cmdPropTx.status < 0x3400) {
                res = ADC_convert(adc, &adcValue0);
                adcValue0 = res == ADC_STATUS_SUCCESS ? adcValue0 : lowestAdcValue;
                lowestAdcValue = (adcValue0 < lowestAdcValue) ? adcValue0 : lowestAdcValue;
            }
            GPIO_write(CONFIG_GPIO_ADC_EN_CONST, 1);// turn the divider off
            ADC_close(adc);
            data.header.battery = lowestAdcValue;
    }
    
    RF_cmdPropTx.pktLen = LIGHTHOUSE_LENGTH;
    RF_cmdPropTx.pNextOp = (rfc_radioOp_t*) &RF_cmdFs;
    RF_cmdFs.fractFreq = FRACT_FREQ_DATA; // switch to my another frequency after the tx
    RF_cmdPropTx.status = 0;
    RF_cmdFs.status = 0;
    
    RF_postCmd(rfHandle, (RF_Op*) &RF_cmdPropTx, RF_PriorityNormal, NULL, 0);
    measVbatUntilTxEnds();
    while (RF_cmdFs.status < DONE_OK)
        {
            // wait until the frequency is set
        }
    // continue with radio rx in blocking(runCmd) mode

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

    我不确定这一概念是否可行:他的原因是、当您在这里开启 TX 时、当您发生瞬态时、电压将会下降。 无论采用何种方法、ADC 都不会出现这种下降。 骤降会导致问题吗? (例外情况是使用 ADC 缓冲器并在 TX 之前和 TX 下方以相对高频率进行测量)

    对于您的程序、我将使用 settinginga DIO 和 https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_6_30_01_03/docs/proprietary-rf/proprietary-rf-users-guide/rf-core/signal-routing.html#rf-signal-routing 来检查您是否在 TX 中使用 ADC 进行测量。   

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

    我测量电源电压的原因是器件由电池供电、我需要计算大约剩余电池容量。