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;
}
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.
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
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.
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
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.
Hi @aravind_t ,
This is because PMIC still output 0.7V after RT595 reset. Vddcore can't work at this voltage.
Regards,
Jing