客户将PSOC6 BLE Prototyping Kit 上的ES版本的芯片 替换为正式版 在调用PSOC6 的SMIF 组件之后 发现在休眠模式下 有800uA的静态电流消耗, 即使Disable 之后也并没有 减少, 请问在休眠模式下 如何关闭外设 降低系统功耗?
已解决! 转到解答。
可以尝试把SMIF 所有连接的IO 口改成 Hi-Z.
Cy_GPIO_SetDrivemode(SMIF_spi_select0_PORT,SMIF_spi_select0_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_0_PORT,SMIF_spi_data_0_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_1_PORT,SMIF_spi_data_1_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_2_PORT,SMIF_spi_data_2_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_3_PORT,SMIF_spi_data_3_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_clk_PORT,SMIF_spi_clk_NUM,CY_GPIO_DM_ANALOG);
通过PSoC Programmer读下silicon的版本是多少?另外你所提到的休眠模式具体指哪个,hibernate还是Deep Sleep?
Hi Fred,
客户读出来的芯片版本 是 Rev. *C
如果不添加 SMIF Deepsleep 功耗 是11uA,
添加SMIF模块 之后 进入 Deepsleep 会增加到800uA 左右。
有没有试过在进入DSM之前将SMIF模块disable?可以通过注册DSM模式的callback函数实现。
可以尝试把SMIF 所有连接的IO 口改成 Hi-Z.
Cy_GPIO_SetDrivemode(SMIF_spi_select0_PORT,SMIF_spi_select0_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_0_PORT,SMIF_spi_data_0_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_1_PORT,SMIF_spi_data_1_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_2_PORT,SMIF_spi_data_2_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_data_3_PORT,SMIF_spi_data_3_NUM,CY_GPIO_DM_ANALOG);
Cy_GPIO_SetDrivemode(SMIF_spi_clk_PORT,SMIF_spi_clk_NUM,CY_GPIO_DM_ANALOG);
Hi Ray,
你是对的客户目前使用的方案 是写完将IO 关闭然后 使用的时候再重新初始化 IO 。现在功耗正常了,DeepSleep 模式大概十几个uA。
非常感谢 二位的支持, CDC 如何 关闭?我要设置最佳答案么?