view doc/CP2102-EEPROM-tools @ 101:ba741a1af0e3

doc/CP2102-EEPROM-tools: article started
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 28 Sep 2023 06:35:39 +0000
parents
children 4f72e09fb698
line wrap: on
line source

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.