I am having a strange problem using the CP210x USB to UART Bridge Driver.
1) Windows 10, build 1803
2) CP210x Driver version: 22.214.171.1241 (Driver Date: 2016-09-19)
3) STM32F407 MCU => PC (Serial Communication)
4) Data receiving program: Python 2.7, pyserial 3.4
5) Serial communication
Data 8 bit
1 stop bit
no flow control.
In Windows 10, connect to USB and receive data using Python. (pyserial)
At first, reception is good.
After 1 minute from receiving, the data is broken as follows.
(use pyserial in python to print as it is received)
The MCU is transferring the data correctly (already check the transmit cycle, waveform with an oscilloscope)
When PC receiving data.. but it seems that the data buffer is not being filled properly for some reason.
My efforts to resolve
Changes for VCP Driver
MCUSW-134 | Fixed an issue with handling of IOCTL_SERIAL_SET_WAIT_MASK,
| IOCTL_SERIAL_WAIT_ON_MASK, with the SERIAL_EV_RXCHAR event
| and data arriving from the device into the driver. Previously,
| an indication of arriving data was made before making the data
| available, causing, in some conditions, subsequent requests
| for data after notification
| any data.
After read driver release note, i install newest windows 10 universal driver (v.10.1.3.2130)
i confirmed that the data was received normally after updating to the windows 10 universal driver. (received data is not broken!!!)
So it was fixed after the update.
By the way....
My questions and problems
The CP210x version of my other computer is v126.96.36.1990.
It's the same windows 10 build 1803, but it works fine without errors. (I did not install anything else on Windows 10)
v188.8.131.520 The date of this driver is 2016-03-28.
It does not come out well in Google search.
Why does this difference occur? What is the factors that will cause this problem?
I think it's a driver problem, but I want to know the cause.
Thank you in advance.
I am not sure I understand your question correctly or not.
I guess the block diagram of the system is like this:
Now you have some computers which you tested on.
1. for some computers that run windows 10, you tried old VCP driver v184.108.40.2060.
it works fine.
2. for a specific computer, let name it as PC_S0 that also run windows 10, same as the PC in item 1.
You tried old VCP driver 220.127.116.111, there is problem.
3. You tried to update the driver to latest one (v.10.1.3.2130) for PC PC_S0.
The issue disappear.
So the issue only happen with driver version 18.104.22.1681, right?
It looks like there is a special protocol you are using to communicate between PC and ST MCU. Sorry I could not understand what's the difference between the ok/normal and abnormal case.
I am wondering the purpose of post, do you mean you want Silabs to explain the detailed information of the bug and how Silabs fix it?
Sorry for the late reply.
Ok. Everything you say is true.
In my own protocol, the data should be output in order.
However, received data is corrupted.
It was to show that it did not work properly according to the driver version.
So what I'm wondering is what causes these results.
I am developing a python application.
The ultimate reason for asking this question is that my application wants to communicate reliably on other Windows 10 computers.
(Regardless of version)
As you said, can you tell what the VCP driver has modified?
And..there is no v22.214.171.1240 version in the release note.(this version actually exist?)
I just want to make clear what the cause of this problem is due to the differences between the versions.
I migrated from Windows seven to Windows 10. I also have a problem with a cp210x adapter and its drivers. It worked well on the same machine with seven. I also tried to re-install without success. I will wait a few days. APKJunky