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.

CC1310低功耗模式电源管理

Other Parts Discussed in Thread: CC1310

TI技术工程师,您好:

        我们在使用CC1310做无线传感器,现在大部分功能已经实现,在测试节点功耗时发现电流大小为0.5mA左右,我们使用的是Sensor的参考例程,添加无线WOR部分程序实现,现在是使用内部LF RCOSC休眠功耗为0.5mA,使用LF XOSC(外部32.768kHz)晶振时功耗为1.6mA,还有一个现象是使用LF XOSC时Clock定时误差较大,一分钟差两三秒的时间,请给于支持,谢谢。

功耗配置程序如下,使用RTOS自动管理功耗,未调用功耗管理函数:

#if defined(__TI_COMPILER_VERSION__)
#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
#endif
const PowerCC26XX_Config PowerCC26XX_config = {
    .policyInitFxn      = NULL,
    .policyFxn          = &PowerCC26XX_standbyPolicy,
    .calibrateFxn       = &PowerCC26XX_calibrate,
    .enablePolicy       = TRUE,
    .calibrateRCOSC_LF  = TRUE,
    .calibrateRCOSC_HF  = TRUE,
};
/*

  • 从你的电流值来看,MCU应该是进入低功耗模式了。

    功耗比较高的原因可能是有外设没有关闭,比如UART等。

    另外检查一下引脚的外围电路,看看有没有漏电流。

  • 非常感谢Felix ZF,我在LaunchPad板上测试了rfWsnNode程序,休眠电流为10uA左右,将程序移植到我们自己做的电路板上,主程序没有任何改动的情况下只修改管脚的初始化,测试电流发现使用外部32.768kHz晶振时电流为1.6mA左右,使用内部RC振荡器时为0.5mA左右,和我修改完程序之后的测试一致,证明了程序已经进入了低功耗模式,主要是硬件的原因,但是我已经拆去了大部分电路,电流还是不能降到uA级别,从使用外部晶振和内部RC的电流差异来看,应该是硬件电路存在漏电流,但还不清楚漏电流是在哪儿产生的,麻烦帮忙分析一下,谢谢。

  • 您好,您的这个问题是怎么解决的,现在遇到跟你一样的问题

  • 检查一下引脚的外围电路,看看有没有漏电流
  • 外围电路,就是一个最小系统,连个对地导通的电阻都没有,就2个上拉电阻,其他什么都没有了,在开发板上,最低的时候,能到10uA左右,在我们的板子上,一直是3mA左右,晶振一直在工作,就没有进standby模式,有一点区别是,我们的板子DCDC_SW这个引脚没接电源,采用的是LDO电源模式
  • 在ccfg文件中,把DCDC disable掉。

    //#####################################
    // Alternative DC/DC settings
    //#####################################

    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x0 // Alternative DC/DC setting enabled
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x1 // Alternative DC/DC setting disabled
    #endif

    另外,

    Alternatively, the internal global LDO can be used instead of the DC-DC regulator, but this increases the
    current consumption of the device. In this mode, disconnect DCDC_SW and connect VDDS_DCDC to the
    VDDS supply. The Global LDO is connected internally to the VDDR pin, which must be connected
    externally to the VDDR_RF pin. The Global LDO must be decoupled by a µF-sized capacitor on the VDDR
    net.

  • 在ccfg文件中,把DCDC disable掉。

    //#####################################
    // Alternative DC/DC settings
    //#####################################

    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x0 // Alternative DC/DC setting enabled
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x1 // Alternative DC/DC setting disabled
    #endif

    另外,

    Alternatively, the internal global LDO can be used instead of the DC-DC regulator, but this increases the
    current consumption of the device. In this mode, disconnect DCDC_SW and connect VDDS_DCDC to the
    VDDS supply. The Global LDO is connected internally to the VDDR pin, which must be connected
    externally to the VDDR_RF pin. The Global LDO must be decoupled by a µF-sized capacitor on the VDDR
    net.

  • Hardware: See 6.3.1 in the TRM (www.ti.com/.../swcu117f.pdf)

    Software: In the CCFG.c turn off the usage of the DC-DC in active and power down. (SET_CCFG_MODE_CONF_DCDC_RECHARGE and SET_CCFG_MODE_CONF_DCDC_ACTIVE)

  • 谢谢您的回复,(www.ti.com/.../swcu117f.pdf)这个文档打开失效,是不是链接已经过期了呢,
    还有,这个ET_CCFG_MODE_CONF_DCDC_RECHARGE and SET_CCFG_MODE_CONF_DCDC_ACTIVE已经测试了,在5*5的芯片上,还是不行,因为现在板子还是外部晶振处于起振状态,没有进入standby,所以还不是引脚漏电导致的功耗高
  • 你是怎么设置的?
    把你的ccfg文件贴出来看看。
  • 以下是所有的CCFG.C的文件,您看一下

    #ifndef CCFG_FORCE_VDDR_HH
    #define CCFG_FORCE_VDDR_HH 0x0 // Use default VDDR trim
    // #define CCFG_FORCE_VDDR_HH 0x1 // Force VDDR voltage to the factory HH setting (FCFG1..VDDR_TRIM_HH)
    #endif

    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x0 // Alternative DC/DC setting enabled **zslChange
    //#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x1 // Alternative DC/DC setting disabled
    #endif

    #if ( CCFG_FORCE_VDDR_HH )
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN 0xC // Special VMIN level (2.5V) when forced VDDR HH voltage
    #else
    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN 0x8 // 2.25V
    #endif
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN 0x0 // Disable
    //#define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN 0x1 // Enable
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK 0x0 // 31mA
    #endif

    //#####################################
    // XOSC override settings
    //#####################################

    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR 0x0 // Enable override
    //#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR 0x1 // Disable override
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_DELTA_IBIAS_INIT
    #define SET_CCFG_MODE_CONF_1_DELTA_IBIAS_INIT 0x0 // Delta = 0
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET
    #define SET_CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET 0x0 // Delta = 0
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_XOSC_MAX_START
    #define SET_CCFG_MODE_CONF_1_XOSC_MAX_START 0x10 // 1600us
    #endif

    //#####################################
    // Power settings
    //#####################################

    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA 0xF // Signed delta value +1 to apply to the VDDR_TRIM_SLEEP target (0xF=-1=default=no compensation)
    #endif

    #ifndef SET_CCFG_MODE_CONF_DCDC_RECHARGE
    //#define SET_CCFG_MODE_CONF_DCDC_RECHARGE 0x0 // Use the DC/DC during recharge in powerdown**
    #define SET_CCFG_MODE_CONF_DCDC_RECHARGE 0x1 // Do not use the DC/DC during recharge in powerdown
    #endif

    #ifndef SET_CCFG_MODE_CONF_DCDC_ACTIVE
    //#define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x0 // Use the DC/DC during active mode**
    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x1 // Do not use the DC/DC during active mode
    #endif

    #if ( CCFG_FORCE_VDDR_HH )
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL 0x1 // Special setting to enable forced VDDR HH voltage
    #else
    #ifndef SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL
    // #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL 0x0 // VDDS BOD level is 2.0V
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL 0x1 // VDDS BOD level is 1.8V (or 1.65V for external regulator mode)
    #endif
    #endif

    #ifndef SET_CCFG_MODE_CONF_VDDR_CAP
    #define SET_CCFG_MODE_CONF_VDDR_CAP 0x3A // Unsigned 8-bit integer representing the min. decoupling capacitance on VDDR in units of 100nF
    #endif

    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC 0x1 // Temperature compensation on VDDR sleep trim disabled (default)
    // #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC 0x0 // Temperature compensation on VDDR sleep trim enabled
    #endif

    //#####################################
    // Clock settings
    //#####################################

    #ifndef SET_CCFG_MODE_CONF_SCLK_LF_OPTION
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x0 // LF clock derived from High Frequency XOSC
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x1 // External LF clock
    #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x2 // LF XOSC
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x3 // LF RCOSC
    #endif

    #ifndef SET_CCFG_MODE_CONF_XOSC_CAP_MOD
    // #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD 0x0 // Apply cap-array delta
    #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD 0x1 // Don't apply cap-array delta
    #endif

    #ifndef SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA
    #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA 0xFF // Signed 8-bit value, directly modifying trimmed XOSC cap-array value
    #endif

    #ifndef SET_CCFG_EXT_LF_CLK_DIO
    #define SET_CCFG_EXT_LF_CLK_DIO 0x01 // DIO number if using external LF clock
    #endif

    #ifndef SET_CCFG_EXT_LF_CLK_RTC_INCREMENT
    #define SET_CCFG_EXT_LF_CLK_RTC_INCREMENT 0x800000 // RTC increment representing the external LF clock frequency
    #endif

    //#####################################
    // Special HF clock source setting
    //#####################################
    #ifndef SET_CCFG_MODE_CONF_XOSC_FREQ
    // #define SET_CCFG_MODE_CONF_XOSC_FREQ 0x1 // Use HPOSC as HF source (Unavailable on CC13xx chips)
    // #define SET_CCFG_MODE_CONF_XOSC_FREQ 0x2 // HF source is a 48 MHz xtal
    #define SET_CCFG_MODE_CONF_XOSC_FREQ 0x3 // HF source is a 24 MHz xtal (default)
    #endif

    //#####################################
    // Bootloader settings
    //#####################################

    #ifndef SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE
    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0x00 // Disable ROM boot loader
    // #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 // Enable ROM boot loader
    #endif

    #ifndef SET_CCFG_BL_CONFIG_BL_LEVEL
    // #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x1 // Active high to open boot loader backdoor
    #endif

    #ifndef SET_CCFG_BL_CONFIG_BL_PIN_NUMBER
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0xFF // DIO number for boot loader backdoor
    #endif

    #ifndef SET_CCFG_BL_CONFIG_BL_ENABLE
    // #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xFF // Disabled boot loader backdoor
    #endif

    //#####################################
    // Debug access settings
    //#####################################

    #ifndef SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE
    #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0x00 // Disable unlocking of TI FA option
    // #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0xC5 // Enable unlocking of TI FA option with the unlock code
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE
    // #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0x00 // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0xC5 // Access enabled if also enabled in FCFG
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0x00 // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0xC5 // Access enabled if also enabled in FCFG
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE
    // #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0x00 // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0xC5 // Access enabled if also enabled in FCFG
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0x00 // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0xC5 // Access enabled if also enabled in FCFG
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0x00 // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0xC5 // Access enabled if also enabled in FCFG
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0x00 // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0xC5 // Access enabled if also enabled in FCFG
    #endif

    //#####################################
    // Alternative IEEE 802.15.4 MAC address
    //#####################################
    #ifndef SET_CCFG_IEEE_MAC_0
    #define SET_CCFG_IEEE_MAC_0 0xFFFFFFFF // Bits [31:0]
    #endif

    #ifndef SET_CCFG_IEEE_MAC_1
    #define SET_CCFG_IEEE_MAC_1 0xFFFFFFFF // Bits [63:32]
    #endif

    //#####################################
    // Alternative BLE address
    //#####################################
    #ifndef SET_CCFG_IEEE_BLE_0
    #define SET_CCFG_IEEE_BLE_0 0xFFFFFFFF // Bits [31:0]
    #endif

    #ifndef SET_CCFG_IEEE_BLE_1
    #define SET_CCFG_IEEE_BLE_1 0xFFFFFFFF // Bits [63:32]
    #endif

    //#####################################
    // Flash erase settings
    //#####################################

    #ifndef SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N
    // #define SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N 0x0 // Any chip erase request detected during boot will be ignored
    #define SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N 0x1 // Any chip erase request detected during boot will be performed by the boot FW
    #endif

    #ifndef SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N
    // #define SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N 0x0 // Disable the boot loader bank erase function
    #define SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N 0x1 // Enable the boot loader bank erase function
    #endif

    //#####################################
    // Flash image valid
    //#####################################
    #ifndef SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID
    #define SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID 0x00000000 // Flash image is valid
    // #define SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID <non-zero> // Flash image is invalid. ROM boot loader is called.
    #endif

    //#####################################
    // Flash sector write protection
    //#####################################
    #ifndef SET_CCFG_CCFG_PROT_31_0
    #define SET_CCFG_CCFG_PROT_31_0 0xFFFFFFFF
    #endif

    #ifndef SET_CCFG_CCFG_PROT_63_32
    #define SET_CCFG_CCFG_PROT_63_32 0xFFFFFFFF
    #endif

    #ifndef SET_CCFG_CCFG_PROT_95_64
    #define SET_CCFG_CCFG_PROT_95_64 0xFFFFFFFF
    #endif

    #ifndef SET_CCFG_CCFG_PROT_127_96
    #define SET_CCFG_CCFG_PROT_127_96 0xFFFFFFFF
    #endif

    //#####################################
    // Select between cache or GPRAM
    //#####################################
    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x0 // Cache is disabled and GPRAM is available at 0x11000000-0x11001FFF
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x1 // Cache is enabled and GPRAM is disabled (unavailable)
    #endif

    //#####################################
    // Select TCXO
    //#####################################
    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO 0x1 // Disable TCXO
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO 0x0 // Enable TXCO
    #endif

    //*****************************************************************************
    //
    // CCFG values that should not be modified.
    //
    //*****************************************************************************
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG 0x0058
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS (CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_M >> CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_S)

    #if ( CCFG_FORCE_VDDR_HH )
    #define SET_CCFG_MODE_CONF_VDDR_EXT_LOAD 0x0 // Special setting to enable forced VDDR HH voltage
    #else
    #define SET_CCFG_MODE_CONF_VDDR_EXT_LOAD 0x1
    #endif

    #define SET_CCFG_MODE_CONF_RTC_COMP 0x1
    #define SET_CCFG_MODE_CONF_HF_COMP 0x1

    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP45 0xFF
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP25 0xFF
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP5 0xFF
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TM15 0xFF

    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP125 0xFF
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP105 0xFF
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP85 0xFF
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP65 0xFF

    #define SET_CCFG_RTC_OFFSET_RTC_COMP_P0 0xFFFF
    #define SET_CCFG_RTC_OFFSET_RTC_COMP_P1 0xFF
    #define SET_CCFG_RTC_OFFSET_RTC_COMP_P2 0xFF

    #define SET_CCFG_FREQ_OFFSET_HF_COMP_P0 0xFFFF
    #define SET_CCFG_FREQ_OFFSET_HF_COMP_P1 0xFF
    #define SET_CCFG_FREQ_OFFSET_HF_COMP_P2 0xFF

    //*****************************************************************************
    //
    // Concatenate bit fields to words.
    // DO NOT EDIT!
    //
    //*****************************************************************************
    #define DEFAULT_CCFG_EXT_LF_CLK ( \
    ((((uint32_t)( SET_CCFG_EXT_LF_CLK_DIO )) << CCFG_EXT_LF_CLK_DIO_S ) | ~CCFG_EXT_LF_CLK_DIO_M ) & \
    ((((uint32_t)( SET_CCFG_EXT_LF_CLK_RTC_INCREMENT )) << CCFG_EXT_LF_CLK_RTC_INCREMENT_S ) | ~CCFG_EXT_LF_CLK_RTC_INCREMENT_M ) )

    #define DEFAULT_CCFG_MODE_CONF_1 ( \
    ((((uint32_t)( SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN )) << CCFG_MODE_CONF_1_ALT_DCDC_VMIN_S ) | ~CCFG_MODE_CONF_1_ALT_DCDC_VMIN_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN )) << CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN_S ) | ~CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK )) << CCFG_MODE_CONF_1_ALT_DCDC_IPEAK_S ) | ~CCFG_MODE_CONF_1_ALT_DCDC_IPEAK_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_1_DELTA_IBIAS_INIT )) << CCFG_MODE_CONF_1_DELTA_IBIAS_INIT_S ) | ~CCFG_MODE_CONF_1_DELTA_IBIAS_INIT_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET )) << CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET_S ) | ~CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_1_XOSC_MAX_START )) << CCFG_MODE_CONF_1_XOSC_MAX_START_S ) | ~CCFG_MODE_CONF_1_XOSC_MAX_START_M ) )

    #define DEFAULT_CCFG_SIZE_AND_DIS_FLAGS ( \
    ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG )) << CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG_M ) & \
    ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS )) << CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_M ) & \
    ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO_M ) & \
    ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM_M ) & \
    ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING_M ) & \
    ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR_M ) )

    #define DEFAULT_CCFG_MODE_CONF ( \
    ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA )) << CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA_S ) | ~CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_DCDC_RECHARGE )) << CCFG_MODE_CONF_DCDC_RECHARGE_S ) | ~CCFG_MODE_CONF_DCDC_RECHARGE_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_DCDC_ACTIVE )) << CCFG_MODE_CONF_DCDC_ACTIVE_S ) | ~CCFG_MODE_CONF_DCDC_ACTIVE_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_EXT_LOAD )) << CCFG_MODE_CONF_VDDR_EXT_LOAD_S ) | ~CCFG_MODE_CONF_VDDR_EXT_LOAD_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL )) << CCFG_MODE_CONF_VDDS_BOD_LEVEL_S ) | ~CCFG_MODE_CONF_VDDS_BOD_LEVEL_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_SCLK_LF_OPTION )) << CCFG_MODE_CONF_SCLK_LF_OPTION_S ) | ~CCFG_MODE_CONF_SCLK_LF_OPTION_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC )) << CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC_S ) | ~CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_RTC_COMP )) << CCFG_MODE_CONF_RTC_COMP_S ) | ~CCFG_MODE_CONF_RTC_COMP_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_XOSC_FREQ )) << CCFG_MODE_CONF_XOSC_FREQ_S ) | ~CCFG_MODE_CONF_XOSC_FREQ_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_XOSC_CAP_MOD )) << CCFG_MODE_CONF_XOSC_CAP_MOD_S ) | ~CCFG_MODE_CONF_XOSC_CAP_MOD_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_HF_COMP )) << CCFG_MODE_CONF_HF_COMP_S ) | ~CCFG_MODE_CONF_HF_COMP_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA )) << CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA_S ) | ~CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA_M ) & \
    ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_CAP )) << CCFG_MODE_CONF_VDDR_CAP_S ) | ~CCFG_MODE_CONF_VDDR_CAP_M ) )

    #define DEFAULT_CCFG_VOLT_LOAD_0 ( \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP45 )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TP45_S ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TP45_M ) & \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP25 )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TP25_S ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TP25_M ) & \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP5 )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TP5_S ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TP5_M ) & \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TM15 )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TM15_S ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TM15_M ) )

    #define DEFAULT_CCFG_VOLT_LOAD_1 ( \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP125 )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP125_S ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP125_M ) & \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP105 )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP105_S ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP105_M ) & \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP85 )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP85_S ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP85_M ) & \
    ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP65 )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP65_S ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP65_M ) )

    #define DEFAULT_CCFG_RTC_OFFSET ( \
    ((((uint32_t)( SET_CCFG_RTC_OFFSET_RTC_COMP_P0 )) << CCFG_RTC_OFFSET_RTC_COMP_P0_S ) | ~CCFG_RTC_OFFSET_RTC_COMP_P0_M ) & \
    ((((uint32_t)( SET_CCFG_RTC_OFFSET_RTC_COMP_P1 )) << CCFG_RTC_OFFSET_RTC_COMP_P1_S ) | ~CCFG_RTC_OFFSET_RTC_COMP_P1_M ) & \
    ((((uint32_t)( SET_CCFG_RTC_OFFSET_RTC_COMP_P2 )) << CCFG_RTC_OFFSET_RTC_COMP_P2_S ) | ~CCFG_RTC_OFFSET_RTC_COMP_P2_M ) )

    #define DEFAULT_CCFG_FREQ_OFFSET ( \
    ((((uint32_t)( SET_CCFG_FREQ_OFFSET_HF_COMP_P0 )) << CCFG_FREQ_OFFSET_HF_COMP_P0_S ) | ~CCFG_FREQ_OFFSET_HF_COMP_P0_M ) & \
    ((((uint32_t)( SET_CCFG_FREQ_OFFSET_HF_COMP_P1 )) << CCFG_FREQ_OFFSET_HF_COMP_P1_S ) | ~CCFG_FREQ_OFFSET_HF_COMP_P1_M ) & \
    ((((uint32_t)( SET_CCFG_FREQ_OFFSET_HF_COMP_P2 )) << CCFG_FREQ_OFFSET_HF_COMP_P2_S ) | ~CCFG_FREQ_OFFSET_HF_COMP_P2_M ) )

    #define DEFAULT_CCFG_IEEE_MAC_0 SET_CCFG_IEEE_MAC_0
    #define DEFAULT_CCFG_IEEE_MAC_1 SET_CCFG_IEEE_MAC_1
    #define DEFAULT_CCFG_IEEE_BLE_0 SET_CCFG_IEEE_BLE_0
    #define DEFAULT_CCFG_IEEE_BLE_1 SET_CCFG_IEEE_BLE_1

    #define DEFAULT_CCFG_BL_CONFIG ( \
    ((((uint32_t)( SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE )) << CCFG_BL_CONFIG_BOOTLOADER_ENABLE_S ) | ~CCFG_BL_CONFIG_BOOTLOADER_ENABLE_M ) & \
    ((((uint32_t)( SET_CCFG_BL_CONFIG_BL_LEVEL )) << CCFG_BL_CONFIG_BL_LEVEL_S ) | ~CCFG_BL_CONFIG_BL_LEVEL_M ) & \
    ((((uint32_t)( SET_CCFG_BL_CONFIG_BL_PIN_NUMBER )) << CCFG_BL_CONFIG_BL_PIN_NUMBER_S ) | ~CCFG_BL_CONFIG_BL_PIN_NUMBER_M ) & \
    ((((uint32_t)( SET_CCFG_BL_CONFIG_BL_ENABLE )) << CCFG_BL_CONFIG_BL_ENABLE_S ) | ~CCFG_BL_CONFIG_BL_ENABLE_M ) )

    #define DEFAULT_CCFG_ERASE_CONF ( \
    ((((uint32_t)( SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N )) << CCFG_ERASE_CONF_CHIP_ERASE_DIS_N_S ) | ~CCFG_ERASE_CONF_CHIP_ERASE_DIS_N_M ) & \
    ((((uint32_t)( SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N )) << CCFG_ERASE_CONF_BANK_ERASE_DIS_N_S ) | ~CCFG_ERASE_CONF_BANK_ERASE_DIS_N_M ) )

    #define DEFAULT_CCFG_CCFG_TI_OPTIONS ( \
    ((((uint32_t)( SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE )) << CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE_S ) | ~CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE_M ) )

    #define DEFAULT_CCFG_CCFG_TAP_DAP_0 ( \
    ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE )) << CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE_S ) | ~CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE_M ) & \
    ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE )) << CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE_S ) | ~CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE_M ) & \
    ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE )) << CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE_S ) | ~CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE_M ) )

    #define DEFAULT_CCFG_CCFG_TAP_DAP_1 ( \
    ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE )) << CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE_S ) | ~CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE_M ) & \
    ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE )) << CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE_S ) | ~CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE_M ) & \
    ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE )) << CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE_S ) | ~CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE_M ) )

    #define DEFAULT_CCFG_IMAGE_VALID_CONF SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID

    #define DEFAULT_CCFG_CCFG_PROT_31_0 SET_CCFG_CCFG_PROT_31_0
    #define DEFAULT_CCFG_CCFG_PROT_63_32 SET_CCFG_CCFG_PROT_63_32
    #define DEFAULT_CCFG_CCFG_PROT_95_64 SET_CCFG_CCFG_PROT_95_64
    #define DEFAULT_CCFG_CCFG_PROT_127_96 SET_CCFG_CCFG_PROT_127_96

    //*****************************************************************************
    //
    // Customer Configuration Area in Lock Page
    //
    //*****************************************************************************
    #if defined(__IAR_SYSTEMS_ICC__)
    __root const ccfg_t __ccfg @ ".ccfg" =
    #elif defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(__ccfg, ".ccfg")
    #pragma RETAIN(__ccfg)
    const ccfg_t __ccfg =
    #else
    const ccfg_t __ccfg __attribute__((section(".ccfg"))) __attribute__((used)) =
    #endif
    { // Mapped to address
    DEFAULT_CCFG_EXT_LF_CLK , // 0x50003FA8 (0x50003xxx maps to last
    DEFAULT_CCFG_MODE_CONF_1 , // 0x50003FAC sector in FLASH.
    DEFAULT_CCFG_SIZE_AND_DIS_FLAGS , // 0x50003FB0 Independent of FLASH size)
    DEFAULT_CCFG_MODE_CONF , // 0x50003FB4
    DEFAULT_CCFG_VOLT_LOAD_0 , // 0x50003FB8
    DEFAULT_CCFG_VOLT_LOAD_1 , // 0x50003FBC
    DEFAULT_CCFG_RTC_OFFSET , // 0x50003FC0
    DEFAULT_CCFG_FREQ_OFFSET , // 0x50003FC4
    DEFAULT_CCFG_IEEE_MAC_0 , // 0x50003FC8
    DEFAULT_CCFG_IEEE_MAC_1 , // 0x50003FCC
    DEFAULT_CCFG_IEEE_BLE_0 , // 0x50003FD0
    DEFAULT_CCFG_IEEE_BLE_1 , // 0x50003FD4
    DEFAULT_CCFG_BL_CONFIG , // 0x50003FD8
    DEFAULT_CCFG_ERASE_CONF , // 0x50003FDC
    DEFAULT_CCFG_CCFG_TI_OPTIONS , // 0x50003FE0
    DEFAULT_CCFG_CCFG_TAP_DAP_0 , // 0x50003FE4
    DEFAULT_CCFG_CCFG_TAP_DAP_1 , // 0x50003FE8
    DEFAULT_CCFG_IMAGE_VALID_CONF , // 0x50003FEC
    DEFAULT_CCFG_CCFG_PROT_31_0 , // 0x50003FF0
    DEFAULT_CCFG_CCFG_PROT_63_32 , // 0x50003FF4
    DEFAULT_CCFG_CCFG_PROT_95_64 , // 0x50003FF8
    DEFAULT_CCFG_CCFG_PROT_127_96 , // 0x50003FFC
    };

    #endif // __CCFC_C__
  • #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x0 // Alternative DC/DC setting enabled **zslChange
    //#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x1 // Alternative DC/DC setting disabled
    #endif

    这里也要disable掉

  • Using the Global LDO is also an option. In this case the two VDDR pins must be tied together. In this

    case, VDDR should have a 10-µF decoupling capacitor, whereas VDDR_RF should have the decoupling

    recommended in the various reference designs. In this setup, VDDS_DCDC should be tied to VDDS and

    DCDC_SW should be left floating.

  • 试了下,还是不行,我们所有的task都关掉了,测试板子的功耗,在1.17mA,测量晶振已经不震荡了,但是功耗还是下不去,外围电路,就3个按键分别加了上拉电阻,阻值为2个100k和1个2M,还有就是RF电路,别的没有了
  • VDDR should have a 10-µF decoupling capacitor,,
    硬件是按这个做的
  • 建议先把外围的LED,KEY等外设先断掉,看一下standby状态下的电流是多少?
  • 大兄弟 我现在也测试了这个例程 我测到的电流很大 能否留个联系方式 指教一下 还有一些其他问题 希望能得到解答,191707521