My USB MCU (EFM8UB1, for example), while using the USB Library, has peripherals that should be active during all times. However, these peripherals only seem to work during a debug session or when the device is connected to a USB cable. What is happening?
It is likely that the USB Library is configured to put the device into Suspend mode when it is not connected to a USB cable. This will cause all other peripherals to stop functioning, since Suspend will disable all of the device's clocks that supply other peripherals. The debugger also has the ability to remove the device from Suspend mode, allowing peripherals to resume operation.
The USB Library can be configured to avoid Suspend mode, even when USB is disconnected. This can be accomplished by modifying usbconfig.h.
Several EzRadio Pro development kits come with an EzRadio Pro Dongle. This dongle contains a C8051F342 processor and a Si4431 radio. The Wireless Development Suite has the ability to upload new firmware to this C8051F342 processor in order to change the behavior of the dongle. The WDS has multiple pre-compiled .hex files for this processor, but customizing the dongle is not usually possible.
However, the attached firmware can be customized and loaded onto the Dongle to change its behavior. After re-building the project and generating a cusstom hex file, the firmware can be uploaded to the dongle by performing the following:
Connect the dongle to the PC
A prompt will appear to select an application. Select "Firmware Upgrade"
Select "Browse for Firmware" and navigate to the custom .hex file.