Customizing SiLabs CP210x devices for ALDL Communications
Posted: Sat Sep 17, 2011 12:24 am
After HUGE frustrations not being able to comunicate using a SIlabs CP210x USB to UART chipset and my car's computer, I've found a way to customize the chips. The main concern with these devices is that they 'auto translate' non standard baud rates to a common speed.
I.E. If the device is selected for 8192 or 8228 baud, it's 'automagically' locked to 9600 baud.
Unfortunatly, 9600 falls well outside the range required to communicate to our Delco ECU's.
So after researching datasheets and application notes, SiLabs have a few utilities that allow us to manually set the baud rate generator and USB PID.
This is great, as we can set the baud rate to exactly 8228 for relable ECU communications and logging.
To do this you'll need a few programs from SiLabs, myself and a bit of skullduggery.
Download the AN205SW software from SiLabs from here : http://www.silabs.com/support/pages/sup ... SB+Bridges
Download the AN144SW software from SiLabs from here : http://www.silabs.com/support/pages/sup ... SB+Bridges
Download the Custom 8228 CP210x driver below. (If you use WIN2000 use the WIN2000 driver)
Open and extract the custom driver below to say, C:\Silabs\Custom8228Baud.
Install the AN205SW and AN144SW.These 2 utilities will allow you to set a custom PID and allow you to use my modified driver.
Now, follow these steps to change the devices' PID:-
1. Open the AN144 software and find your device
2. Set the PID to 8228, tick the box to the left of 'PID'
3. Change the Product String to CUSTOM 8228 Baud CP210x USB to ALDL (lets you remember the special device config), tick the box to left of Product String
4. Set the Serial Number to 8228 and tick the box to the left of 'Serial Number'
5. Program the device
Your PC will now not know the device due its new PID. To fix this perform these steps:-
1. Open the device manager through the control panel.
2. Go to the unknown device and click it. The Found new device box should pop up - or
3. Right click and update driver.
4. Pick No, Not at this time, when asked to go online, now select next.
5. Pick Install from a specific location (Eg C:\SiLabs\Custom8228Baud or where you put the extracted driver pack).
6. Check the Include location and browse for the correct subdirectory as above.
7. Pick the Stu Cornall Tuning driver, ignore the Driver unsigned messages !
8. Let the driver install itself, reboot as/if required, otherwise close the Device Manager
Now we have to configure the port to use 8228 baud whenever it's opened between 7208 and 9612 baud. :-
1. Open the AN205SW and load the CP210xBaudRateAlaisConfiguration program.
2. Scroll down and click on the 7208-9612 box.
3. It will open another window, click 'Advanced' if not opened.
4.If down at the bottom the 'Overrride Recomendation' box is not ticked, Tick it.
5. Set the 'Desired Baud Rate' to 8228.
6. You now need to set the 'Baud Rate Generation' value to F49B. You'll see at the top the baud rate now matches the desired rate of 8228.
7. Click OK and send the config using 'SET CONFIGURATION'. This will allow the CP210x chipset to use 8228 baud anytime the port is opened at 9600. which is handy for monitoring/testing with a terminal program like RealTerm !!
Close all the SiLabs configuration programs
**Important step for EFI lIve Users**
1. Go back into the device manager and open the customised port, you should see it now. Otherwise scan for hardware change
2. Select the Advanced tab, set the port to say COM8 (it may be in use, check to see if you have another COM8 device active, otherwise select a port lower than 8. Ignore the warnings. If you don't, EFI Live V4 won't work as it can't find ports higher that 8)
3. Exit the device manager
You should now have a SiLabs CP210x series device that works perfectly at 8228 or 8192 baud !
The port will correctly work at every other speed except 9600, which is now translated to 8228.
By following this procedure, it will allow any other installed CP210x devices (with a PID of EA60, EA61, EA70 or EA71) to run at a normal speed of 9600.
Stu
I.E. If the device is selected for 8192 or 8228 baud, it's 'automagically' locked to 9600 baud.
Unfortunatly, 9600 falls well outside the range required to communicate to our Delco ECU's.
So after researching datasheets and application notes, SiLabs have a few utilities that allow us to manually set the baud rate generator and USB PID.
This is great, as we can set the baud rate to exactly 8228 for relable ECU communications and logging.
To do this you'll need a few programs from SiLabs, myself and a bit of skullduggery.
Download the AN205SW software from SiLabs from here : http://www.silabs.com/support/pages/sup ... SB+Bridges
Download the AN144SW software from SiLabs from here : http://www.silabs.com/support/pages/sup ... SB+Bridges
Download the Custom 8228 CP210x driver below. (If you use WIN2000 use the WIN2000 driver)
Open and extract the custom driver below to say, C:\Silabs\Custom8228Baud.
Install the AN205SW and AN144SW.These 2 utilities will allow you to set a custom PID and allow you to use my modified driver.
Now, follow these steps to change the devices' PID:-
1. Open the AN144 software and find your device
2. Set the PID to 8228, tick the box to the left of 'PID'
3. Change the Product String to CUSTOM 8228 Baud CP210x USB to ALDL (lets you remember the special device config), tick the box to left of Product String
4. Set the Serial Number to 8228 and tick the box to the left of 'Serial Number'
5. Program the device
Your PC will now not know the device due its new PID. To fix this perform these steps:-
1. Open the device manager through the control panel.
2. Go to the unknown device and click it. The Found new device box should pop up - or
3. Right click and update driver.
4. Pick No, Not at this time, when asked to go online, now select next.
5. Pick Install from a specific location (Eg C:\SiLabs\Custom8228Baud or where you put the extracted driver pack).
6. Check the Include location and browse for the correct subdirectory as above.
7. Pick the Stu Cornall Tuning driver, ignore the Driver unsigned messages !
8. Let the driver install itself, reboot as/if required, otherwise close the Device Manager
Now we have to configure the port to use 8228 baud whenever it's opened between 7208 and 9612 baud. :-
1. Open the AN205SW and load the CP210xBaudRateAlaisConfiguration program.
2. Scroll down and click on the 7208-9612 box.
3. It will open another window, click 'Advanced' if not opened.
4.If down at the bottom the 'Overrride Recomendation' box is not ticked, Tick it.
5. Set the 'Desired Baud Rate' to 8228.
6. You now need to set the 'Baud Rate Generation' value to F49B. You'll see at the top the baud rate now matches the desired rate of 8228.
7. Click OK and send the config using 'SET CONFIGURATION'. This will allow the CP210x chipset to use 8228 baud anytime the port is opened at 9600. which is handy for monitoring/testing with a terminal program like RealTerm !!
Close all the SiLabs configuration programs
**Important step for EFI lIve Users**
1. Go back into the device manager and open the customised port, you should see it now. Otherwise scan for hardware change
2. Select the Advanced tab, set the port to say COM8 (it may be in use, check to see if you have another COM8 device active, otherwise select a port lower than 8. Ignore the warnings. If you don't, EFI Live V4 won't work as it can't find ports higher that 8)
3. Exit the device manager
You should now have a SiLabs CP210x series device that works perfectly at 8228 or 8192 baud !
The port will correctly work at every other speed except 9600, which is now translated to 8228.
By following this procedure, it will allow any other installed CP210x devices (with a PID of EA60, EA61, EA70 or EA71) to run at a normal speed of 9600.
Stu