changeset 101:ba741a1af0e3

doc/CP2102-EEPROM-tools: article started
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 28 Sep 2023 06:35:39 +0000
parents 29bff463402e
children 4f72e09fb698
files doc/CP2102-EEPROM-tools
diffstat 1 files changed, 52 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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.