no IDL bit in PCON for CH552?

recently i tried to IDLE the CPU core by setting PCON.0 

My Plan was to wake up the CPU by T0 Irq. I was really suprised when I noticed it did not work as expected.


Looking into the datasheet i noticed IDL bit is not implemented. This bit was supported since the early times in x51. No word about that in the docs or header files.


Any workarround?  

Using the wakeup events will not work in my case since these are all pin events. 

you can choose to wake up externally through USB, UART0, UART1, SPI0 and some GPIO while sleeping. The former 51 idle mode was designed to save power, when the MCU current was tens of mA. Now the MCU only has 4mA, the idle mode (with the kernel off) is not obvious to save power. The other solution is to reduce the main frequency when idle to save power.


Thanks for your response.

I am porting some code from the AVR to the ch552. In this code they use the idle mode for syncronizing a fast 8 bit T0 in autoreload mode to another task, Therfore IDLE is not used to save power in my app but sync with T0 IRQ. Now I will do syncing with some flag bit.??


In fact I overclocked the CH552 to 32 MHz to have a 16MHz SPI. I know there are other chips which work on 48MHz (CH549) but these are not available at LCSC in SO16 package, and I dont need much RAM/ROM.


只有登录才能回复,可以选择微信账号登录