Question

How frequently does the CP210x VCP driver poll the device for hardware status on Windows?  Is it possible to increase the polling rate?

Answer

Default Polling Rate

 

By default, the CP210x VCP driver on Windows will query the device every 80 ms to update COM status including modem control signal states (ie CTS).

 

Changing the Polling Rate

 

There is a registry key that can be set in the driver INF file that can set the polling interval for get modem status.

Starting with the latest Windows VCP driver from the Silicon Labs website, users can modify slabvcp.inf:

[SiLabsDDInstallSection.HW.AddReg]
HKR,,"SelectiveSuspendTimeout",0x00010001,10000
; Attention! The EnablePowerManagewment value is no longer supported.
; To disable Selective Suspend, uncomment the following line:
; HKR,,"DisableS0Idle",0x00010001,1

Add a new registry setting called EventMaskPollingInterval and set it to a value in ms. A value of 10 for 10 ms is recommended as a minimum value. Any value between 1-15 should give an interval of between 0 and 25 ms, which is the fastest achievable polling rate from Windows system timers used by the driver.

For example, to change the interval from the default 80 ms value to 10 ms, add the following line to the driver INF, which results in:

[SiLabsDDInstallSection.HW.AddReg]
HKR,,"SelectiveSuspendTimeout",0x00010001,10000
HKR,,"EventMaskPollingInterval",0x00010001,10
; Attention! The EnablePowerManagewment value is no longer supported.
; To disable Selective Suspend, uncomment the following line:
; HKR,,"DisableS0Idle",0x00010001,1

Users can specify different values other than 10, but using lower values may cause system problems. Note that polling more quickly might also have an impact on data throughput performance.

  • USB Bridges
  • Knowledge Base Articles
  • Interface