Should capacitors be placed on the USB D+/D- lines? What about pull-up resistors? How can the D+/D- be protected from noise?
Unless stated otherwise in a datasheet or errata, capacitors and resistors (even ferrite beads not intended for use with USB devices) should not be added between the C8051 USB MCU and the USB connector. These external components can potentially cause the USB device to fail USB-IF compliance testing and inhibit proper communication over the USB bus. The D+ and D- lines should be connected directly from the MCU to the USB connector.
Silicon Labs recommends using protection diodes intended for use with USB devices for ESD protection. One example of such diodes is the Littlefuse SP0503BAHT recommended in the USB MCU and CP21xx datasheets.
How can I customize the Silicon Labs Mac VCP driver?
To customize the VID and PID of the Silicon Labs Mac VCP driver v2.6 and v3.x:
Steps 2-12 will be repeated for each kext file.
Either rename the kext file to some meaningful name (Product Name, Company, etc.) OR make a backup copy of the initial .kext file.
Right click (2-finger click) the kext file and select 'Show Package Contents'.
Open the Contents/Info.plist file.
Copy one of the personalities, then paste it.
Rename the newly pasted personality to something significant to the customization (Product Name, Company, etc.).
Expand the new personality and change the VID and PID to match the device, as well as the Device and Vendor Descriptions.
Close the plist editor and the contents folder.
Open up a terminal window and navigate to the location of the kext file.
Use these commands:
sudo chown -R root:wheel myKext.kext
sudo chmod -R 755 myKext.kext
Copy the kext file back into the SystemLibraryExtensions folder.
Use this command:
sudo kextutil /System/Library/Extensions/myKext.kext
Note that starting in OSX 10.10 Apple is enforcing driver signing and a driver customized in this way may not be loaded due to an unverified signature. This forum conversation has details on bypassing driver validation for development purposes.
To customize the VID and PID of the Silicon Labs Mac VCP driver v4.x, v5.x and later, see this knowledge base article:
How can I protect the USB pins on my Silicon Labs USB device from Electrostatic Discharge (ESD) events?
To protect the USB pins D+, D-, and VBUS from ESD events, we recommend using Transient Voltage Suppressor (TVS) diodes that are designed for the high bit-rate requirements of USB. You should make sure that the ESD protection device that you choose has a low capacitance and meets USB rise/fall time requirements. When making a selection, please note that Silicon Labs' CP210x USB-UART bridges are USB 2.0 Full Speed (12 Mbps) devices. Also note that Silicon Labs' USB microcontrollers can operate either at USB 2.0 Full-Speed (12 Mbps) or USB 2.0 Low-Speed (1.5 Mbps), depending on your firmware design.
Here are some ESD pin protection device part numbers that are designed for use with USB:
California Micro Devices PACDN043Y4
Cooper Industries 0603ESDA
Here are some resources that provide information on designing ESD protection specific to USB:
Littlefuse Application Notes [PDFs]: EC606, EC630, EC631
California Micro Devices Application Note [PDF]: AP-220
Author of the book 'USB Complete' Jan Axelson's USB Central page [Scroll down to the 'ESD and Overcurrent Protection for USB' section].