你好,
我有一个基于CY8C3565 L
ti-014的设计。
我注意到,实际上睡眠电流比预期的要高得多(超过25比A高)。
我调试的步骤是:
-删除所有组件,但从
PCB上的PSoC和周围的上限
-建立一个没有组件的新项目,只有这个代码:
` `
主(空)
{
CyGloalActuabess;/*启用全局中断。*/
/设置32 kHz晶体在睡眠时以低功率模式工作
CyxTalp332 KHZY SET PARPOMODE(1);
//启动WDT
CyWdtStart(CyWdt101024蜱,CyWdtl LpMoDEI禁用);
*将初始化/启动代码放在此处(例如MyStimSistAd())*/
CypMaveScCub();
(;)
{
*将您的应用程序代码放在这里。*/
//清除WDT
CyWdtCulter();
/睡眠1秒
CyPmSleep(PMYSalePyTimeNo.PoPPS,PMSLIPEPSRScCYNONE);
CypRead状态(CypMyONEPSPSIN);
}
CyPrimeCopeClinux();
}
` `
正如人们所看到的,初始化后,PSoC将永远进入休眠模式。
当测量电流时,我仍然测量28μA,这比数据表中指定的1μA要大得多。
这种高睡眠电流的原因是什么?
我附上这个项目供你参考。
只有一个睡眠。
1.8兆字节
以上来自于百度翻译
以下为原文
Hi,
I have a design based on a CY8C3865LTI-014.
I noticed that in reality the sleep current was much too high than anticipated (more than 25µA higher).
The steps I took to debug this were:
- remove all components but the PSOC and the surrounding caps from the PCB
- build a fresh project without components, and only this code:
```
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
// set 32kHz crystal to operate in low power mode when in sleep
CyXTAL_32KHZ_SetPowerMode(1);
//start WDT
CyWdtStart(CYWDT_1024_TICKS,CYWDT_LPMODE_DISABLED);
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
CyPmSaveClocks();
for(;;)
{
/* Place your application code here. */
// clear wdt
CyWdtClear();
// sleep 1 s
CyPmSleep(PM_SLEEP_TIME_ONE_PPS,PM_SLEEP_SRC_NONE);
CyPmReadStatus(CY_PM_ONEPPS_INT);
}
CyPmRestoreClocks();
}
```
As one can see, after initialisation, the PSOC goes in sleep mode forever.
When measuring the current, I still measure ~28µA, which is much more than the specified 1µA in the datasheet.
What could be the cause of this high sleep current?
I attached the project for you reference.