Let me try to explain what might be happening.
The IMO is effectively a RC circuit relaxation circuit. It is simpler than a oscillator driver and is more linear across supply voltages. Effectively it is a digital inverter with the following configuration. The switching threshold of the inverter is generally scaled to supply voltage.
The XTAL driver has to feed an electro-mechanical device (the crystal is a piezo-mechanical device). The feedback to the xtal driver requires extra energy to 'kick' the crystal into operation when the supply voltage is too low.
There are potentially two solutions available to you. You need to be the judge what works best for you.
Do you need the accuracy of a crystal? If so, can you live with less accuracy below 2.1V? If so, you can detect the VDD voltage (LVD) and switch to IMO below 2.1V.
Refer to 001-61290_AN61290_PSoC_sup_sup_3_and_PSoC_5LP_Hardware_Design_Considerations.pdf = https://www.cypress.com/file/44581/download On page 8 there is a circuit to boost the VDD voltage to boost the source voltage to the XTAL circuit. The CPU with boost engaged is designed to operate from 0.5V to 5V.
I hope this helps.
Thank you so much.
I have a good understanding of the internal clock and external clock.
I solve this problem with solution1.
Should I use an IMO basicaly in a battery-based design?
"Should I use an IMO basicaly in a battery-based design?"
Good question. Generally: Yes.
Analog circuits consume current depending on resistive losses. Chose your analog circuits and configuration wisely.
95% of digital circuit current consumption occurs during switching 1->0 and 0->1. Therefore the faster you clock a circuit, the more average current you consume. For example, the digital circuits that consume a majority of the current are those of the CPU. The faster the CPU clock the more current. If the BUS_CLK = 3MHz, the CPU current can be as high as 3.8mA. But if the BUS_CLK = 80MHz, it can burn 25.5mA.
Although it would appear that using a lower IMO would be the best design choice. Not always. It depends on your application. If your application depends on using low-power (sleep) modes frequently, then sometimes clocking the CPU at a higher frequency is better. This allows your application to complete an input event faster and go to sleep sooner. It all depends if you have much idle time waiting for other things to occur while awake.
I generally recommend using the IMO instead of a XTAL if you can afford the higher tolerance. If you invoke the XTAL oscillator, it takes additional current to drive what is basically an analog circuit.
If you need more IMO accuracy, you can set the IMO to 24MHz and turn on the USB mode. This allows for IMO = 24MHz @ +/- 0.25%
See the Clock DWR picture below with the RED boxes..
I understand that.
Thank you for your help.
I read the documents well.