I'm trying to understand a problem I'm having related to a USB connection. I'm working with a Mini PCIe 4G module (Quectel EC25 Mini PCle 4G/LTE) and at this moment my goal is to put it in sleep mode. I'm communicating with the module via UART (RX and TX) from which I send AT commands through a microcontroller (I'm using an atmega4809). I also have the module connected to a Raspberry Pi 4 through USB.
In order to put the module to sleep three conditions must be fulfilled (pag. 25 of manual):
- Write the AT Command for sleep mode
- Pull DTR pin to high
- Put the USB connection in suspended mode.
Following these rules, the module enters sleep mode.
My problem is that I'm trying to put the 4G module in sleep mode with the third condition replaced by turning off the RPI (that is connected with USB). It doesn't work and I'm trying to figure out why. If I execute condition 1, then condition 2, followed by turning off the RPI the module does not enter in sleep mode. However, if after turning the RPI off I disconnect manually the USB connection, the module enters sleep mode. So, it should be something related to USB suspended mode.
What is the standard for USB suspended mode and how is different from a disconnected cable? And any idea on how can I "simulate" a USB suspended mode to trick the 4G module to think that whatever is connected in the USB is in suspended mode
This is schematics of the USB connector and the 4G module:
PS: I'm not a professional, just currently a hobbyist trying to develop a DIY project.
