- Silicon Labs Community
- Welcome and Announcements
- Silicon Labs Knowledge Base
- 8-bit MCU
- 32-bit MCU
- Bluetooth / Wi-Fi
- Other Products Category
- Optical/RH/Temp Sensor
- Other Products
- Hardware and Software Tools
- Simplicity Studio and Software
- General Discussions and Suggestions
- Chinese Forum
- Software Libraries
- Development Kits
- Reference Designs
- Third Party Tools
- White Papers
- Official Blog of Silicon Labs
- Chinese Blog
05-22-2015 12:40 PM
My company is using the CP210x USB to UART Bridge VCP Driver (v6.7), and I have discovered that I can reproduce an issue which causes high CPU spikes every 5-10 seconds when reading in data. I have replicated this on multiple PC running Windows 7 x64.
The issue only shows up when setting the COMMTIMEOUTS to the following:
ReadIntervalTimeout = MAXDWORD ReadTotalTimeoutMultiplier = MAXDWORD ReadTotalTimeoutConstant = MAXDWORD - 1
This is a pretty typical way to set the COMMTIMEOUTS structure, as it produces a reading behavior that returns bytes as soon as they are available, from the ReadFile function (as noted in the "Remarks" section here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363190%28v=vs.85%29.aspx ).
This timeout setting is required for our application. Please look into this and let me know if you need any more information.
05-22-2015 02:59 PM
Sorry for not being more clear.
When reading in the bytes from the virtual com port, the CPU usage of the PC spikes from 0 to about 25% and then drops back down to 0. This is with a constant stream of data.