ELM327 OBD to RS232 Interpreter Description Features Almost all new automobiles produced today are required, by law, to provide an interface from which test equipment can obtain diagnostic information. The data transfer on these interfaces follow several standards, none of which are directly compatible with PCs or PDAs. The ELM327 is designed to act as a bridge between these On-Board Diagnostics (OBD) ports and standard PC RS232 ports. The ELM327 builds on improved versions of our proven ELM320, ELM322, and ELM323 interfaces by adding four CAN protocols to them. The result is an IC that can automatically sense and convert the nine most common protocols in use today. There are a number of other improvements as well - a high speed RS232 option with data buffering, battery voltage monitoring, and the ability to remember the last used protocol, to name only a few. The following is only a “Quick Summary” of the ELM327. For Example Applications, and a more detailed discussion of the many features, download the full datasheet. • Supports 9 OBDII protocols • Automatically searches for a protocol • Fully configurable with AT commands • High and Medium speed RS232 • Voltage input for battery monitoring • Low power CMOS design Connection Diagram PDIP and SOIC (top view) MCLR OBD Tx LED Vmeasure OBD Rx LED J1850 Volts RS232 Tx LED J1850 Bus+ RS232 Rx LED Memory CAN Rx Baud Rate CAN Tx Applications • Diagnostic trouble code readers • Automotive scan tools • Teaching aids LFmode ISO L VSS ISO K XT1 VDD XT2 VSS VPW In RS232 Rx ISO In RS232 Tx PWM In Busy J1850 Bus- RTS 4.00 MHz Block Diagram XT1 Memory Baud Rate LFmode RS232Rx 18 RS232Tx 17 RTS Busy 15 16 6 7 RS232 Interface 9 10 XT2 1 Vmeasure 2 5 A/D Converter Command and Protocol Interpreter ISO 15765-4 CAN 25 …28 status LEDs ELM327QSA MCLR 23 24 ISO 9141-2 ISO 14230-4 21 22 12 SAE J1850 PWM & VPW 3 4 14 13 11 OBD interfaces Elm Electronics – Circuits for the Hobbyist www.elmelectronics.com 1 of 5 ELM327 Pin Descriptions MCLR (pin 1) A logic low applied to this input will reset the IC. If unused, this pin should be connected to a logic high (VDD) level. Vmeasure (pin 2) This analog input is used to measure a 0 to 5V signal that is applied to it. Care must be taken to prevent the voltage from going outside of the supply levels of the ELM327, or damage may occur. J1850 Volts (pin 3) This output can be used to control a voltage supply for the J1850 Bus + output. The pin will output a logic high level when a nominal 8V is required (for J1850 VPW), and will output a low level when 5V is needed (as for J1850 PWM applications). If this switching capability is not required for your application, this output can be left open-circuited. J1850 Bus+ (pin 4) This active high output is used drive the J1850 Bus + Line to an active level. Note that this signal does not have to be used for the Bus - Line (as was the case for the ELM320), since a separate J1850 Bus - drive output is provided on pin 14. LFmode (pin 7) This input is used to select the default linefeed mode to be used after a power-up or system reset. If it is at a high level, then by default messages sent by the ELM327 will be terminated with both a carriage return and a linefeed character. If it is at a low level, lines will be terminated by a carriage return only. This behaviour can always be modified by issuing an AT L1 or AT L0 command (see the section on AT Commands). VSS (pins 8 and 19) Circuit common must be connected to these pins. XT1 (pin 9) and XT2 (pin 10) A 4.000 MHz oscillator crystal is connected between these two pins. Loading capacitors as required by the crystal (typically 27pF each) will also normally be connected between each of these pins and circuit common (Vss). VPW In (pin 11) This is the active high input for the J1850 VPW data signal. When at rest (bus recessive) this pin should be at a low logic level. This input has Schmitt trigger waveshaping, so no special amplification is required. Memory (pin 5) This input controls the default state of the memory option. If this pin is at a high level during power-up or reset, the memory function will is enabled by default. If it is at a low level, then the default will be to have it disabled. Memory can always be controlled with the AT M1 and AT M0 commands at other times. ISO In (pin 12) This is the active low input for the ISO 9141 and ISO 14230 data signal. It is derived from the K Line, and should be at a high logic level when at rest (bus recessive). No special amplification is required, as this input has Schmitt trigger waveshaping. Baud Rate (pin 6) This input controls the baud rate of the RS232 interface. If it is at a high level during power-up or reset, the baud rate will be set to 38400. If at a low level, the baud rate will be 9600. PWM In (pin 13) This is the active low input for the J1850 PWM data signal. It should normally be at a high level when at rest (ie. bus recessive). This input has Schmitt trigger waveshaping, so no special amplification is required. All rights reserved. Copyright 2005 Elm Electronics Inc. Every effort is made to verify the accuracy of information provided in this document, but no representation or warranty can be given and no liability assumed by Elm Electronics with respect to the accuracy and/or use of any products or information described in this document. Elm Electronics will not be responsible for any patent infringements arising from the use of these products or information, and does not authorize or warrant the use of any Elm Electronics product in life support devices and/or systems. Elm Electronics reserves the right to make changes to the device(s) described in this document in order to improve reliability, function, or design. ELM327QSA Elm Electronics – Circuits for the Hobbyist www.elmelectronics.com 2 of 5 ELM327 Pin Descriptions (continued) J1850 Bus- (pin 14) This active high output is used to drive the J1850 Bus - Line to an active (dominant) level for J1850 PWM applications. If unused, the output can be left open-circuited. RTS (pin 15) This active low “Request To Send” input can be used to interrupt processing in order to send a new command. Normally high, the line is brought low for attention, and should remain so until the Busy line (pin 16) indicates that the ELM327 is no longer busy. This input has Schmitt trigger waveshaping. Busy (pin 16) This active high output shows the current state of the ELM327. If it is at a low level, the processor is ready to receive ASCII commands and characters, but if it is at a high level, commands are being processed. RS232Tx (pin 17) This is the RS232 data transmit output. The signal level is compatible with most interface ICs (output is normally high), and there is sufficient current drive to allow interfacing using only a PNP transistor, if desired. RS232Rx (pin 18) This is the RS232 receive data input. The signal level is compatible with most interface ICs (the level is normally high), but can be used with other interfaces as well, since the input has Schmitt trigger waveshaping. VDD (pin 20) This pin is the positive supply pin, and should always be the most positive point in the circuit. Internal circuitry connected to this pin is used to provide power on reset of the microprocessor, so an external reset signal is not required. Refer to the Electrical Characteristics section for further information. ISO K (pin 21) and ISO L (pin 22) These are the active high output signals which are used to drive the ISO 9141 and ISO 14230 buses to an active (dominant) level. Many new vehicles do not require the L Line - if yours does not, you can simply leave pin 22 open-circuited. CAN Tx (pin 23) and CAN Rx (pin 24) These are the two CAN interface signals that must be connected to a CAN transeiver IC for proper operation. If you are connecting to an existing CAN system, the integrity of that sysem might be jeopardized if a proper interface is not used. See the Example Applications section for more information. RS232 Rx LED (pin 25), RS232 Tx LED (pin 26), OBD Rx LED (pin 27) and OBD Tx LED (pin 28) These four output pins are normally high, and are driven to low levels when the ELM327 is transmitting or receiving data. Current capability is suitable for directly driving most LEDs through current limiting resistors, or interfacing to other logic for status reporting. If unused, these pins should be left opencircuited. Ordering Information These integrated circuits are 28 pin devices, available in either the 300 mil plastic DIP format or in the 300 mil SOIC surface mount type of package. To order, add the appropriate suffix to the part number: 300 mil 28 pin Plastic DIP..............................ELM327P ELM327QSA 300 mil 28 pin SOIC....................................ELM327SM Elm Electronics – Circuits for the Hobbyist www.elmelectronics.com 3 of 5 ELM327 Absolute Maximum Ratings Storage Temperature....................... -65°C to +150°C Ambient Temperature with Power Applied....................................-40°C to +85°C Voltage on VDD with respect to VSS............ 0 to +7.5V Note: Stresses beyond those listed here will likely damage the device. These values are given as a design guideline only. The ability to operate to these levels is neither inferred nor recommended. Voltage on any other pin with respect to VSS........................... -0.3V to (VDD + 0.3V) Electrical Characteristics All values are for operation at 25°C and a 5V supply, unless otherwise noted. For further information, refer to note 1 below. Characteristic Minimum Typical Supply voltage, VDD 4.5 5.0 VDD rate of rise 0.05 Average supply current, IDD 5.5 9 Input threshold voltage Schmitt trigger input thresholds Maximum Units 1.0 1.3 Conditions V V/ms see note 2 mA see note 3 V all except Schmitt inputs see note 4 rising 3.0 V falling 1.4 V Output low voltage 0.3 V current (sink) = 10 mA Output high voltage 4.6 V current (source) = 10 mA Brown-out reset voltage A/D conversion time 4.07 4.2 7 4.59 V msec see note 5 Notes: 1. This integrated circuit is produced with a Microchip Technology Inc.’s PIC18F248 or PIC18F2480 as the core embedded microcontroller. For further device specifications, and possibly clarification of those given, please refer to the appropriate Microchip documentation (available at http://www.microchip.com/). 2. This spec must be met in order to ensure that a correct power on reset occurs. It is quite easily achieved using most common types of supplies, but may be violated if one uses a slowly varying supply voltage, as may be obtained through direct connection to solar cells, or some charge pump circuits. 3. Device only. Does not include any load currents. 4. Pins 1, 11, 12, 13, 15 and 18 have internal Schmitt trigger waveshaping circuitry 5. The typical width of the Busy output pulse while the ELM327 interprets the command, measures the voltage, scales it and transmits the result of a mid-range measurement at 38400 baud. ELM327QSA Elm Electronics – Circuits for the Hobbyist www.elmelectronics.com 4 of 5 ELM327 AT Command Summary General Commands D E0 E1 I L0 L1 WS Z CAN Specific Commands set all to Defaults Echo Off Echo On print the ID Linefeeds Off (default set by pin 7) Linefeeds On Warm Start (quick software restart) reset all OBD Commands AL Allow Long (>7 byte) messages BD perform a Buffer Dump BI Bypass the Initialization sequence DP Describe the current Protocol DPN Describe the Protocol by Number H0 Headers Off (default) H1 Headers On M0 Memory Off (default set by pin 5) M1 Memory On MA Monitor All MR hh Monitor for Receiver = hh MT hh Monitor for Transmitter = hh NL Normal Length (7 byte) messages PC Protocol Close R0 Responses Off R1 Responses On SH yzz Set Header SH xx yy zz Set Header SP h Set Protocol to h and save it SP Ah Set Protocol to Auto, h and save it ST hh Set Timeout to hh x 4 msec TP h Try Protocol h TP Ah Try Protocol h with Auto search ELM327QSA CAF1 CAN Automatic Formatting On CAF0 CAN Automatic Formatting Off CF hhh set the ID Filter to hhh CF hh hh hh hh set the ID Filter to hhhhhhhh CFC1 CAN Flow Control On CFC0 CAN Flow Control Off CM hhh set the ID Mask to hhh CM hh hh hh hh set the ID Mask to hhhhhhhh CP hh set CAN Priority (only for 29 bit) CS show the CAN Status ISO Specific Commands IB 10 set the ISO Baud rate to 10400 IB 96 set the ISO Baud rate to 9600 SW hh Set Wakeup interval to hh x 20 msec WM xx yy zz aa set the Wakeup Message WM xx yy zz aa bb “ “ WM xx yy zz aa bb cc “ “ Misc. Commands CV dddd Calibrate the Voltage to dd.dd volts RV Read the Voltage Elm Electronics – Circuits for the Hobbyist www.elmelectronics.com 5 of 5