[i.MXRT595] Could not run powerquad_benchmark_fft example at VddCore 0.7V

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[i.MXRT595] Could not run powerquad_benchmark_fft example at VddCore 0.7V

1,088 Views
aravind_t
Contributor II

Hi,

MCUXpresso IDE version using is 11.6.1_8255

i.MXRT595 SDK version using is 2.11.1

I downloaded stock powerquad_benchmark_fft example and initialized PMIC related code same as power manager example except for setting PMIC voltage. Instead of setting PMIC voltage based on frequency, I am setting based on input voltage provided. Here is the function:

 

bool BOARD_SetPmicVoltage(float voltage)
{
    power_lvd_falling_trip_vol_val_t lvdVolt;
    uint32_t volt;
    bool ret;

    PCA9420_GetCurrentMode(&pca9420Handle, &pca9420CurrMode);
    PCA9420_ReadModeConfigs(&pca9420Handle, pca9420CurrMode, &pca9420CurrModeCfg, 1);

    lvdVolt = POWER_GetLvdFallingTripVoltage();

    /* Enter FBB mode first */
    if (POWER_GetBodyBiasMode(kCfg_Run) != kPmu_Fbb)
    {
        POWER_EnterFbb();
    }

    if (voltage == 1.1f)
    {
        volt = kPCA9420_Sw1OutVolt1V100;
    }
    else if (voltage == 1.0f)
    {
        volt = kPCA9420_Sw1OutVolt1V000;
    }
    else if (voltage == 0.9f)
    {
        volt = kPCA9420_Sw1OutVolt0V900;
    }
    else if (voltage == 0.8f)
    {
        volt = kPCA9420_Sw1OutVolt0V800;
    }
    else if (voltage == 0.7f)
    {
        volt = kPCA9420_Sw1OutVolt0V700;
    }
    else
    {
        volt = POWER_INVALID_VOLT_LEVEL;
    }
    ret  = volt != POWER_INVALID_VOLT_LEVEL;

    if (ret)
    {
        if (volt < kPCA9420_Sw1OutVolt0V800)
        {
            POWER_DisableLVD();
        }
        else
        {
            if (volt < kPCA9420_Sw1OutVolt0V900)
            {
                PMIC_DECREASE_LVD_LEVEL_IF_HIGHER_THAN(lvdVolt, kLvdFallingTripVol_795);
            }
            else if (volt < kPCA9420_Sw1OutVolt1V000)
            {
                PMIC_DECREASE_LVD_LEVEL_IF_HIGHER_THAN(lvdVolt, kLvdFallingTripVol_885);
            }
            else
            {
            }
        }

        /* Configure vddcore voltage value */
        pca9420CurrModeCfg.sw1OutVolt = (pca9420_sw1_out_t)volt;
        PCA9420_WriteModeConfigs(&pca9420Handle, pca9420CurrMode, &pca9420CurrModeCfg, 1);

        if (volt >= kPCA9420_Sw1OutVolt0V800)
        {
            POWER_RestoreLVD();
        }
    }

    return ret;
}

 

I was able to build and run the application at VddCore = 0.8, 0.9, 1.0 and 1.1 V.
At 0.7V, build and flash were successful, but I could not reset the board and at this point, I could not load any new firmware.
M33 CPU frequencies that I am trying at VddCore 0.7 V are 12, 24 and 48 MHz from FRO192 clock source.
Here are some logs after clicking the flash button. Note that I was able to get the board to a usable state again by tweaking boot switches.

 

Flash Write Done
Loaded 0x4CAC bytes in 1059ms (about 18kB/s)
Reset target (romstall)
Starting execution using system reset with a stall address
Retask read watchpoint 1 at 0x50002034 to use for boot ROM stall
request to clear DAP error failed - status 5
error closing down debug session - Nn(05). Wire ACK Fault in DAP access

 

Please help.

Thank you,

Aravind.

0 Kudos
7 Replies

1,050 Views
jingpan
NXP TechSupport
NXP TechSupport

HI @aravind_t ,

You can switch the boot mode to serial ISP mode then erase the flash.

 

Regards,

Jing

0 Kudos

1,017 Views
aravind_t
Contributor II
Hi Jing,

"Switch the boot mode to serial ISP mode, then erase the flash". This is to recover board. Isn't it?

My issue is, I could not run powerquad_benchmark_fft example at VddCore 0.7 V. Please help.

Thank you,
Aravind.
0 Kudos

1,004 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @aravind_t ,

Please  refer to RT500 datasheet table 5. Low VDDCORE need low clock speed. The maximum frequency for 0.7v VDDCORE is 60Mhz. Have you slow download the frequency?

 

Regards,

Jing

0 Kudos

978 Views
aravind_t
Contributor II

Hi Jing,

Yes, I am using 12 MHz, 24 MHz and 48 MHz frequencies for VddCore 0.7 V. I still could not run the application.

Thanks,

Aravind.

0 Kudos

937 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @aravind_t ,

I make a demo which have the core run at 44M. You can see that vddcore is switch to 0.7v in BOARD_SetPmicVoltageForFreq().

 

Regards,

Jing

0 Kudos

896 Views
aravind_t
Contributor II

Hi Jing,

Thank you for providing demo.

There are build errors in your demo, which I fixed locally by doing the following in the project settings:
1. Updated pmic_driver folder in Include path.
2. Added SDK_I2C_BASED_COMPONENT_USED=1 macro.

The application runs at 44 MHz and VddCore 0.7 V. But I could not reset the board with reset button. I could not load new firmware too.
Note that application runs again when device is repowered.

0 Kudos

874 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @aravind_t ,

This is because PMIC still output 0.7V after RT595 reset. Vddcore can't work at this voltage.

 

Regards,

Jing

0 Kudos