How does spread spectrum clocking on the USB interface affect my communications channels such as the UART?
The USB interface uses clock recovery to sync to the input data stream from the host. We have not characterized the affects of spread spectrum clocking on the USB signaling from the host; however, the clock recovery feature within the MCU should be able to recover the data.
As for the UART, the USB clock recovery is making changes to the USB oscillator frequency. When the internal oscillator updates its frequency, it affects the SYSCLK (if the USB oscillator is selected as the SYSCLK source) which drives the MCU. That change will translate to the UART as well if it is also driven from the same clock.
In an application where only the Master clock (MCLK) is needed, the CP2114 doesn't generate MCLK without being connected to the USB host. Is this the expected behavior?
The CP2114 goes into a low power mode when the USB is suspended. In this mode, the clocks to the device are turned off, which is why you do not see the clock output. Only when USB is generating traffic will the device keep the oscillators out of suspend mode.
What are the differences between the CP2102 and the CP2104?
1. CP2104 is cheaper.
2. CP2104 is smaller and has a different footprint. CP2104 is QFN24 (4x4mm); CP2102 is QFN28 (5x5mm). 3. CP2104 has a I/O supply pin, which tolerates voltages from VDD to 5V using an external resistor. 4. CP2104 has RS-485 support; CP2102 does not. 5. CP2104 has GPIO pins; CP2102 does not. 6. CP2104 has one time programmable memory (OTP); you can customize the CP2104 only once. CP2102 has reprogrammable flash memory; you can customize the CP2102 more than once.
The CP220x (CP2200, CP2201) Ethernet Controller ICs only support 10 BASE-T speeds, but are fully compatible with 100/1000 BASE-T.
A CP2200 can exist on a network with Gigabit Ethernet (GbE or 1 GigE) hardware, as 100/1000 BASE-T cabling, connectors, and devices should be backwards compatible with 10 BASE-T. A connection at Gigabit speeds will not be attempted unless both sides are capable of supporting it.
- Will tell you if the driver installed correctly, is loadable, and is signed.
[Apple Icon] -> System Report -> USB - Will show which devices are connected, and their VID/PID, and chapter 9 USB info. - If a device doesn’t show up here, there is a hardware issue. Check the USB hub, swap to a different cable/port, etc.
What is the DAC configuration when DACSELx pins are high? Is this configuration likely to change in future CP2114 revisions?
When DACSELx pins are high, the CP2112 is in "No DAC configuration" (see Table 22 in the CP2114 data sheet). "No DAC configuration" sets up the clock configuration as Mode 1 (see data sheet Table 19):
USB clock source = internal 48 MHz System clock source = internal 48 MHz MCLK/LRCK ratio = 250 (not 256) Synchronous mode
Furthermore, audio format is I2S. This configuration is very similar to Boot Index 0 (CS42L55).
Though this "No DAC configuration" is not likely to change in future revisions of the CP2114, we recommend writing your configuration to a new boot index and using that boot index.
We recommend not using "No DAC configuration" because "No DAC configuration" is not documented in detail in the datasheet, unlike Boot Index 0 (CS42L55). Therefore, any future changes to "No DAC configuration" would not be documented, while any future changes to Boot Index 0 would be documented.
My project will not build with newew CP210xRuntimeDLL.h and CP210xManufacturingDLL.h header files. The error log reports syntax errors, like the following:
1>c:\my_application\cp210xruntimedll.h(79) : error C2146: syntax error : missing ';' before identifier '_Ret_range_'
1>c:\my_application\cp210xruntimedll.h(79) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\my_application\cp210xruntimedll.h(80) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\my_application\cp210xruntimedll.h(80) : error C2078: too many initializers
1>c:\my_application\cp210xruntimedll.h(80) : error C2146: syntax error : missing ';' before identifier '_Success_'
1>c:\my_application\cp210xruntimedll.h(80) : error C2059: syntax error : 'return'
How can I resolve these errors?
In the CP210x Runtime and Manufacturing DLL header files released for Windows 10 support, Microsoft source code annotation language (SAL) was added to reduce code errors. SAL looks like this: