ELM329
Using Higher RS232 Baud Rates
The RS232 serial interface has been maintained
throughout the ELM OBD products, largely due to its
versatility. Older computers, microprocessors and
PDAs can use it directly, as can USB, Bluetooth,
ethernet and wifi devices. It is simply one of the most
versatile interfaces available.
Most people will construct their ELM329 circuits
with an RS232 interface, mainly because it is relatively
easy and inexpensive to do. A circuit such as the one
shown on page 69 requires very few components and
works extremely well at speeds up to 250 Kbps. The
circuit of Figure 11 (page 71) provides an alternative
that works well at 57.6Kbps, and possibly at speeds as
high as 115200 bps (but that is the approximate limit of
such a circuit, and any design using this speed should
be thoroughly tested).
interface, refer to page 67 for more information.
The default configuration for the ELM329 provides
an RS232 data rate of either 9600 baud, or 38400
baud, depending on the voltage level at pin 6 during
power up or reset. While the 9600 baud rate is not
adjustable, the 38400 one is. There are two ways that
the rate can be changed – either permanently with a
Programmable Parameter, or temporarily with an AT
command.
Programmable Parameter ‘0C’ is the memory
location that allows you to permanently store a new
baud rate which replaces the 38.4 kbps high speed
rate. The value is stored in EEPROM and is not
affected by power cycles or resets (but changing this
value may affect the operation of some software
packages, so be careful how you use it).
Although we show a MAX3222E in Figure 9, there
are many single IC solutions that are available. The
popular MAX232 series of ICs are also available from
Maxim Integrated Products (http://www.maxim-ic.com/)
and there are devices such as the ADM232A from
Analog Devices (http://www.analog.com/). These are
all excellent circuits that can be used for higher speed
connections. We do caution that many of these
devices are only rated for operation up to 120 kbps,
however, so may not be suitable for very high data
rates - be sure to check the manufacturers data sheet
before committing to a design.
An RS232 interface needs relatively large voltage
swings, which are difficult to maintain at high data
rates when there are large cable capacitances to
contend with. (A typical interface is often limited to
about 230.4 kbps under ideal conditions.) If you need
to operate the ELM329 at these speeds or higher, it is
recommended that you consider alternatives.
One popular alternative is a USB data connection.
The USB interface is capable of very high data transfer
rates, certainly much higher than the ELM329 is
capable of. Several manufacturers offer special
‘bridge’ circuits that simplify connecting an RS232
device (such as the ELM329) directly to the USB bus.
Examples are the CP2102 from Silicon Labs
(http://www.silabs.com/) and the FT232R or DB9-USB
module from Future Technology Devices (see their
web site at http://www.ftdichip.com/). If planning to use
the higher baud rates, USB interfaces are essential.
We are often asked if it is possible to use a direct
connection to a microprocessor. That is certainly an
option, and one that allows a full speed connection at
essentially zero cost. If you are developing such an
If you store a new value in PP 0C, then enable it,
and if pin 6 is at a high level during the next powerup,
then your stored rate will become the new data rate.
As an example, perhaps you would like to have the
ELM329 use a baud rate of 57.6 kbps, rather than the
factory setting of 38.4 kbps. To do this, determine the
required value for PP 0C, store this value in PP 0C,
and then enable the PP.
The value stored in PP 0C is actually an internal
divisor that is used to determine the baud rate (it will
be 4000 kbps divided by the value of PP 0C). To
obtain a setting of 57.6, a baud rate divisor of 69 is
required (4000/69 is approximately 57.6). Since 69 in
decimal is 45 in hexadecimal, you need to tell the
ELM329 to set the value of PP 0C to 45, with this
command:
>AT PP 0C SV 45
then enable the new value for use:
>AT PP 0C ON
from that point on, the default data rate will be 57.6K,
and not 38.4K. Note that the value that you write does
not become effective until the next full reset (a power
off/on, AT Z, or MCLR pulse).
If you are designing your own circuitry, you will
know what your circuit is capable of, and can assign a
value to PP 0C. Software developers will not usually
know what hardware is to be connected, however, so
will not know what the limitations are. For these users,
we have provided the BRD command.
This command allows a new baud rate divisor to
be tested, and then accepted or rejected depending on
ELM329DSB
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
44 of 76