Question
USB CDC and STOP2 power mode
Posted on March 04, 2016 at 22:58
I am using a STM32L476 chip based on CubeMX generated code .
I have ported this to a development board and implemented Stop2 power state to save battery life. I have a stop_x() and start_x() function for each device x that I use. They disable the device while in Stop2 mode and restore it for use on exiting Stop2. I recently added USB CDC middleware to allow messaging with a PC. I have no real experience with USB and the middleware code. Currently, if I never enter Stop2 mode, the USB CDC functionality works. When I do use Stop2 mode, later, when we are running, the USB CDC will not ACK the initial Host message and fails to connect. I do understand that, while connected to a USB host, that I should not enter Stop2 mode. There is really no need to conserve battery if powered by the USB. I need to be able to continue using Stop2 after the host connection terminates. How can I write stop_usb() and start_usb() functions that allow the USB to continue to work after we exit from Stop2 mode? I have tried: 1. Holding the USB in reset while in Stop2 2. Calling USBD_Stop() and USBD_Start() 3. Calling USBD_DeInit() and USBD_Init() None of the above methods has allowed the USB to survive the Stop2 state and connect with a host afterwards. Any ideas or examples would be appreciated. Thanks in advance, Jan