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.

TMS320F28027F低功耗问题

Other Parts Discussed in Thread: CONTROLSUITE, TPS54061

请问F2807的最低功耗是多少?    用controlSUITE里的例程-------Example_F2802xHaltWake  下载到单片机里,测到的电流有5mA左右。

电源系统用的是TPS54061,该电源在24V供电下静态功耗在测得有256uA。(没有接任何负载)

整个板子只焊接了最小系统,和下载电路。

运行Example_F2802xHaltWake 例程电流在5mA,唤醒后在10mA。F28027控制器的最低功耗是多少?还可以再降低吗?

  • 因C2000不是低功耗系列    就MCU来讲    最低也就是mA级了吧  

    虽然没有外设    你还是看看工程代码中都开了那些外设   如果关了不需要的外设

    禁了相关时钟   降低时钟频率   功耗都会下降的

  • Hi,你可以看下芯片手册,不同频率下各模块工作时的电流作为设计参考。

  • 手册上写的是50uA;这是怎么做到的?   Example_F2802xHaltWake 例程中哪里需要改进的?

  • Hi,对应TSET CONDITION里的内容是得到相应IDDIO电流值得前提条件,测试得到IDDA还需要关闭ADC时钟。

  • 以下代码我是参考Example_F2802xHaltWake 修改的,去除了中断及IO口输出提示。 但是没有效果,总的电流一直在5mA.

    我的板子就只有一个电源,一个最小系统,和下载电路。

    电源24V供电 静态功耗 测试下来在256uA,接上控制器后,静态电流5mA,唤醒后10mA.

    代码哪里还需要改进的,希望能得到帮助。你们有这样静态电流只有50uA的源代码吗,还是硬件电路存在什么问题?

    void main(void)
    {
    CPU_Handle myCpu;
    PLL_Handle myPll;
    PWR_Handle myPwr;
    WDOG_Handle myWDog;

    // Initialize all the handles needed for this application 
    myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj)); 
    myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj));
    myFlash = FLASH_init((void *)FLASH_BASE_ADDR, sizeof(FLASH_Obj));
    myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));
    myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj));
    myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj));
    myPwr = PWR_init((void *)PWR_BASE_ADDR, sizeof(PWR_Obj));
    myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj));

    //Select the internal oscillator 1 as the clock source
    CLK_setOscSrc(myClk, CLK_OscSrc_Internal);

    // Setup the PLL for x10 /2 which will yield 50Mhz = 10Mhz * 10 / 2
    PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2);

    // Disable the PIE and all interrupts
    PIE_disable(myPie);
    PIE_disableAllInts(myPie);
    CPU_disableGlobalInts(myCpu);
    CPU_clearIntFlags(myCpu);

    // If running from flash copy RAM only functions to RAM 
    #ifdef _FLASH
    memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
    #endif

    // Initalize GPIO
    // Enable Pull-ups
    GPIO_setPullUp(myGpio, GPIO_Number_5, GPIO_PullUp_Enable);

    // Choose GPIO0 pin for lpm wakeup
    GPIO_lpmSelect(myGpio,GPIO_Number_5);

    // Only enter Standby mode when PLL is not in limp mode.
    if ( PLL_getClkStatus(myPll) != PLL_PLLSTS_MCLKSTS_BITS)
    {
    // LPM mode = Standby
    PWR_setLowPowerMode(myPwr, PWR_LowPowerMode_Halt);
    }

     CLK_disableAdcClock(myClk);

     FLASH_setPowerMode(myFlash,FLASH_PowerMode_PumpAndBankActive);

     CLK_disableAdcClock(myClk);
     CLK_disableAdcClock(myClk);
     CLK_disableOsc1HaltMode(myClk);
     CLK_disableOsc2HaltMode(myClk);
     CLK_disableWatchDogHaltMode(myClk);
     CLK_disableClkIn(myClk);


    // Force device into STANDBY
    IDLE; // Device waits in IDLE until falling edge on GPIO0/XNMI pin
    // wakes device from Standby mode.
    for(;;){} // Loop here after wake-up.

    }

  • Hi,alean king1

    你的HALT模式电流问题有没有解决?  目前我用F28035测试lpm_haltwake例程时也出现同样大电流的问题,希望能得到你的帮助。

    谢谢!

  • 你的电流多大?  建议单独测试控制器,所有外设时钟都要关闭,可以做到手册上的数据

  • 你好,请问一下这个问题解决了吗?

    我按上面的初始化了后,调用PWR_setLowPowerMode(myPwr, PWR_LowPowerMode_Halt);貌似没有进入低功耗模式,主循环里面的逻辑还在运行。