Hello,
We currently measure about 75mW on a i.MX 7Dual in DSM with NVCC_XXX/VDD_USB_OTG1_3P3_IN/VDD_USB_OTG2_3P3_IN on (3.3V). When we turn off the rail, we measure around 42mW. What are the expected power requirements on those rails? We depopulated external components and set all GPIO pins to input/100k pull-downs, yet the rail seems to consume about 33mW...
A second issue, when we turn off the NVCC_XXX rail via PMIC sleep mode (e.g. configure the rail to be turned off when PMIC_STBY_REQ is issued) the system immediately deasserts PMIC_STBY_REQ as soon as 3.3V goes low (see attachment). The system then waits in a intermediate state consuming around 135mW. Then, some time later when the wakeup source (RTC) triggers, the system resumes fine. We have no GPIO configured as wake-up source (also all GPIOx_IMR registers are 0, and manually masked all interrupts sources using GPM_IMR (via imx_gpcv2_mask_all). What can cause that wake-up?
Best regards,
Stefan
Hi Stefan:
1. What kind of DRAM you are using? DDR3 or LPDDR?
Please reference to the Figure5-12 in RM for the DRAM IO Power connection
In DDR3(L) case, please follow Figure 5-12 to turns off NVCC_DRAM of MX7D (and VREF) in DSM mode.
In LPDDR case, Both NVCC_DRAM of MX7D (and VREF) and VDDQ of LPDDR can be turns off in DSM mode.
2. Please add a power switch (MOSFET) to turns off USB PHY in DSM mode
3. For the wake up issue, I doubt it is cause by the NVCC_XXX turns off affects to external circuit.
Can you try again with keep all power rails on (VDD_ARM_IN, NVCC_XXX)?
The MX7D total power consumption is only few mW in other customer project in this condition.
Best regards
Aven
1. We use DDR3. DDR enteres self-refresh and exits just fine. We can use DSM when leaving 3.3V on without problems...
2. We do not plan a redesign at that time. It sounds like you suspect that the VDD_USB_OTGX_3P3_IN rails are the big power consumers, what is the expected power consumption for those two rails?
3. When we keep NVCC_XXX on, DSM works just fine. The only problem is when we turn off NVCC_XXX via PMIC. When we turn off NVCC_XXX much earlier using Software, we actually can enter sleep mode too! It seems to be some kind of race condition. I suspect the IOMUXC work around in gpcv2.c causes the issue: linux-imx.git - i.MX Linux Kernel
Hi Stefan:
Yes, the table 14 shows the NVCC_xx can be turns off. Please ignore my previous comment.
Can you provide the detail current consumption data for each power rails?
Best regards
Aven
Unfortunately we can not precisely measure each power rail. We know that consumption on VDD_SOC and VDD_1P8_IN is really low (well below <5mW). VDD_ARM is off. We estimate NVCC_DRAM (which is connected to DRAM itself too) to be at around 15mW. As in the initial post stated, NVCC_XXX and VDD_USB_OTGX_3P3_IN are on one rail, and we know that we could save around 33mW, if we would be able to successfully enter sleep state. But due to the wakeup issue this is currently not possible.
Hi Jaime:
For the 3.3V power consumption
1. Recently we found the USB PHY will take higher current consumption in DSM mode, and it can't be turns off by SW.
So, we suggest add external power switch (MOSFET) to turns off the VDD_USB_OTGx_3P3_IN in DSM mode.
(In case the USB OTG port is not using, you can connect VDD_USB_OTGx_3P3_IN and VDD_USB_OTGx_1P0_CAP
to GND to reduce the power consumption
2. The ADC port may take higher current consumption in DSM mode even it is not using
MaxTsai, Can you provide SW patch for the ADC port power consumption?
Turns off the Digital power rails (NVCC_xxx) in DSM mode is not allow, please keep the digital power rails on.
The second issue may cause by the NVCC_xxx power off, please check it again.
Best regards
Aven
Turns off the Digital power rails (NVCC_xxx) in DSM mode is not allow, please keep the digital power rails on.
The second issue may cause by the NVCC_xxx power off, please check it again.
Table 14 in the current Datasheet (IMX7DCEC, Rev. 3 01/2017) says one can turn off NVCC_xxx, in low power mode and even in run mode (with the comment "The NVCC_XXX can be off in RUN mode / Low Power mode if all the pads in that IO bank is not used in the application, the NVCC_XXX supply could be tied to GND."). Is this a new restriction?
As for ADC, please enable it even it's not used. When adc driver is enabled, it powers down adc in suspend function.
//drivers/iio/adc/imx7d_adc.c
static int __maybe_unused imx7d_adc_suspend(struct device *dev)
{
struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct imx7d_adc *info = iio_priv(indio_dev);imx7d_adc_power_down(info);
clk_disable_unprepare(info->clk);
regulator_disable(info->vref);return 0;
}
So please check whether device tree include adc config and CONFIG_IMX7D_ADC is set in kernel config.
&adc1 {
vref-supply = <®_vref_1v8>;
status = "okay";
};
&adc2 {
vref-supply = <®_vref_1v8>;
status = "okay";
};
Regards,
Max
CONFIG_IMX7D_ADC is set in our default config, we also make use of ADC. So I am pretty sure the suspend function is properly executed.
Also, we have ADC on a 1.8V rail, but we measure the rather high current consumption on the 3.3V rail...
AvenTsao can you take this thread and provide your comments here i.MX 7Dual NVCC_XXX power usage on DSM ?
karinavalencia, Can you please provide the answer externally to the community thread :
i.MX 7Dual NVCC_XXX power usage on DSM
We do not have a board that we can test the results proivided by the apps team.
saludos
Jaime