psoc6347的MCU,在配置串口唤醒mcu的时候。
Cy_GPIO_SetDrivemode( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, CY_GPIO_DM_HIGHZ );
Cy_GPIO_Clr( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM );
Cy_GPIO_Se
tinterruptEdge( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, CY_GPIO_INTR_RISING);
Cy_GPIO_SetInterruptMask( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, 1);
Cy_GPIO_SetVtrip( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, CY_GPIO_VTRIP_CMOS);
/* Configure CM4+ CPU GPIO interrupt vector for Port 5 */
Cy_SysInt_Init( SysInt_1_cfg, Isr_Wakeup);
NVIC_ClearPendingIRQ( SysInt_1_cfg.intrSrc );
NVIC_EnableIRQ((IRQn_Type)SysInt_1_cfg.intrSrc);
Cy_SysPm_DeepSleep(CY_SYSPM_WAIT_FOR_INTERRUPT);
Cy_GPIO_SetInterruptMask( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, 0);
Cy_GPIO_SetInterruptEdge( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, CY_GPIO_INTR_DISABLE );
我在测试的时候发现如果配置成
Cy_GPIO_SetDrivemode( UART_DEB_rx_0_PORT, UART_DEB_rx_0_NUM, CY_GPIO_DM_ANALOG );
就无法唤醒MCU。 但是在对比两种配置的电流的时候。 我的板子如果配置成CY_GPIO_DM_ANALOG, 睡眠电流会比配置成CY_GPIO_DM_HIGHZ的时候要小20uA。
在串口悬空的状态下测试。 如果我配置成下降沿触发,我就把rx口配置成高电平,会比不配置电流小20uA左右。
我在配置其它外部中断唤醒mcu的时候,我发现配置成 CY_GPIO_DM_ANALOG也是可以唤醒的。 我现在的产品对于睡眠电流的要求非常高。 能否给出一些设计上的建议。我现在的系统仅仅把睡眠电流搞到70uA左右。 与规格书上的9uA还有不小的差距。 能否提供一些帮助。 尤其是这个串口唤醒部分,感谢!