# HG changeset patch # User Mychaela Falconia # Date 1695882939 0 # Node ID ba741a1af0e3a968152e1b3b184d0ebc0400997d # Parent 29bff463402e90f8633a8c22f2469c0cad318776 doc/CP2102-EEPROM-tools: article started diff -r 29bff463402e -r ba741a1af0e3 doc/CP2102-EEPROM-tools --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/CP2102-EEPROM-tools Thu Sep 28 06:35:39 2023 +0000 @@ -0,0 +1,52 @@ +The present package includes a set of command line tools for reading and +modifying the EEPROM content of Silabs CP2102 USB-serial adapters. These tools +have been developed because: + +* CP2102 adapters hold significance in FreeCalypso family of projects: it is + the most common USB-serial chip in cables that connect from USB to the headset + jack serial port of Motorola C1xx and Openmoko GTA01/02 phones, and the same + chip also appears inside the legendary Pirelli DP-L10 phone. + +* Classic CP2102 (as opposed to CP2102N) requires EEPROM reprogramming to switch + between 230400/460800/921600 and 203125/406250/812500 baud rates. + +* The original Python tools that were once popularized via OsmocomBB wiki are + an enormous pain for those of us who aren't interested in Python view of the + world, plus dependency hell. + +The present tools support only classic CP2102, not CP2102N or CP2105. The +latter chips aren't supported because: + +* CP2102N does not remap baud rates like classic CP2102, hence the primary + reason for having to delve into EEPROM configuration is eliminated; + +* CP2105 cannot be casually programmed at all because it is OTP, and I am not + in the business of designing ZIF socket fixtures for tiny QFN packages and + burning through sacrificial chips. + +Basic usage +=========== + +If have a CP2102-25 USB to headset jack cable from Sysmocom, or some other +CP2102 adapter at the default USB ID 10C4:EA60, you can check its current baud +rate configuration by running: + +cp2102-read-baudtab + +Without any options, this command will look for a connected CP2102 device at +the default USB ID, read out its EEPROM and dump its 32-entry baud rate table. +Looking at this printed table, you can immediately tell if your adapter is +currently configured for 230400/460800/921600 or for 203125/406250/812500 baud. + +To program the EEPROM for GSM baud rates (203125/406250/812500 bps), run this +command: + +cp2102-update-eeprom -b gsm + +To program the EEPROM for "standard" baud rates (230400/460800/921600 bps), run +this command: + +cp2102-update-eeprom -b std + +After this programming operation, unplug and replug the USB device - see +Replug-after-EEPROM-write article for more info.