General Disclaimer:   (HV) (DC) injury or death hazard,   use at your own risk,   may void warranty.

Difference between revisions of "Prius PHEV TechInfo"

From My wiki
Jump to navigation Jump to search
(→‎Battery ECU messages: reduction of CDL and CCL)
Line 359: Line 359:
 
|}
 
|}
  
====Fault codes====
+
====OBD-II Diagostic Trouble Codes (DTCs)====
  
 
The Battery ECU detects and reports many fault conditions.
 
The Battery ECU detects and reports many fault conditions.
Line 369: Line 369:
  
 
*Ltr MSBs
 
*Ltr MSBs
*P  00  Most faults start with this letter
+
*P  00  Powertrain: Most faults start with this letter
*C  01  Faults in the transmission control ECU or electric power steering system
+
*C  01  Chassis: steering, brakes, other chassis systems. Faults in the transmission control ECU or electric power steering system
*B  10  Smart entry and Immobilizer malfunction. The only DTCs are B1294 and B2799
+
*B  10  Body: Smart entry and Immobilizer malfunction. The only DTCs are B1294 and B2799
*U  11  The Hybrid Control System cannot communicate with other components on the CAN bus
+
*U  11  Network: Faults in the CAN network as well as any other networks (The Hybrid Control System cannot communicate with other components on the CAN bus0
Probably, the letter codes don't stand for types of faults, but are just the letters that happen to appear on the diagnostic tools that car mechanics use.
 
  
 +
All OBD-II diagnostic codes have five digits.
 +
 +
The first digit in an OBD-II DTC is always a letter, narrowing the fault to one of four different sections of the on-board diagnostic system: a P for powertrain, B for body, C for chassis, or U for network. At present, no other letters are used.
 +
 +
The second digit will be a number; SAE-defined codes, known as generic codes, are identified by a 0 (as above), 2, or 3. A specific SAE-defined code will always mean the same thing from vehicle to vehicle; a P0300 code, for example, indicates a random misfire across multiple cylinders of the vehicle's ICE, regardless of vehicle. Manufacturer-specific codes, which are not defined by SAE, must use a 1 for the second digit. They can mean anything.
 +
 +
One of the goals of OBD-II was to present a standardized diagnostic system. That’s where generic codes come in. At the same time, manufacturers need to have room in the system to create and display their own codes. They are free to do whatever they want with manufacturer-specific codes, but they must still equip each diagnostic system with the core group of generic codes.
 +
 +
When a Prius sets a DTC, it also sets a proprietary three-digit diagnostic code that sometimes gives a bit more information. This is typically accessed with a factory scanner.
  
 
The battery ECU may generate the following Fault Codes (DTCs = Diagnostic Trouble Codes).
 
The battery ECU may generate the following Fault Codes (DTCs = Diagnostic Trouble Codes).

Revision as of 08:08, 15 January 2007

Technical information on the Prius useful when designing a Prius PHEV conversion.

Original generation

This is the original 4-door sedan:

  • 1997 Japan only release, chassis NHW10 (Gen 1)
  • 2000 worldwide release, chassis NHW11 (Sometimes also called Gen 1, sometimes Gen 2)

Present generation

This is the 5-door hatchback, sometimes called Gen 2, sometimes called Gen 3:

  • 2003 worldwide release, chassis NHW20.


Traction battery

Functions

The traction battery includes a Battery ECU (Electronic Control Unit). This unit does the following:

  • It calculates the battery's S.O.C. by integrating the current ("Coulomb counting") and resetting it to 100 % when the battery voltage surpasses a certain level
  • It reads the pack temperature using 3 thermistors, and the air intake temperature with a 4th thermistor
  • It controls its cooling fan (variable speed)
  • It calculates the battery dynamic resistance (delta voltage over delta current). This resistance increases with battery aging
  • It protects the battery by limiting its current (even down to 0), if the SOC or temperature are at their limits, or the dynamic resistance is too high, or if it detects a fault
  • Broadcasts to the rest of the vehicle, through the CAN bus, the following data:
    • Voltage
    • Current (charging or discharging)
    • Two temperatures
    • Maximum current it's able to provide (discharger)
    • Maximum current it's able to accept (charge)
    • State Of Charge
    • Any fault codes (DTCs)

Battery voltage

Voltage vs State Of Charge at various temperatures
Voltage vs State Of Charge at various discharge currents

If you replace the stock battery, you need to know its voltage, because that's what the vehicle expects. If you add a pack to the stock battery, you need to know its voltage, in order to connect the two together, somehow.

The nominal pack voltage is: 168 cells x 1.2 V = 201.6 V

The pack voltage depends on SOC, temperature and current.

  • The voltage depends on State of Charge and on temperature. It is affected by cold, but not much by heat; so, for temperatures abiove 20 C, use the 20 C curve.
  • The voltage depends on State of Charge and on discharge current. The voltage is not affected by low currents; so, for current below 1.3 A, use the 1.3 A curve.
  • The maximum charge voltage is 1.8 V / cell.
Therefore, roughly, the estimate pack voltage range is:
Max brake No current Max drive
>=20 C, 0% DOD 302 V 237 V 168 V
-10 C, 80 % DOD 302 V 160 V 126 V
So, the estimated overall voltage range is:
Min Nom Max
126 V 202 V 302 V

Though, Hybrid Interfaces reports a range of 165 to 270V, while Toyota specifies a normal range of 150 to 300 V (in READY mode) (Ref: "\Repair Manual\04priusf\05\21bpm\cidlitac.pdf").

See also Toyota Prius Battery Specs

AC components in battery voltage

When the system relays are off, the battery floats with respect to the car chassis.

When the system relays are engaged, there is a common AC voltage between the battery terminals and the chassis. Its frequency is 5 KHz. When the engine is charging, its amplitude is 90 Vpp and its shape is a square wave. In EV drive, its amplitude is 100 Vpp and its shape is a combination of 2 square waves, each at 5 KHz, but not synchronized, so that one drifts with respect to the other one. The differential mode voltage is 200 Vdc (or course) plus noise spikes at the edges of the common mode wave, on the order of 10 Vpp.

A PHEV conversion must deal with this significant common noise.

Reconnecting traction battery

  • While working on the High Voltage section, remove the orange Service Plug on left end of the battery pack
  • If you turn on the car while the orange Service Plug is removed, or the Battery ECU is disconnected, the Prius will generate a fault code (DTC) and light-up the /!\ (Red Exclamation in a Triangle) symbol on the dashboard, and show a car with an Exclamation point in it on the Multi-Function Display (MFD).
  • To end the fault display
    • Turn off the car
    • Reconnect whatever is disconnected
    • Turn on the car
    • Drive
    • Turn off the car
  • Now the DTC is still stored, but at least there is no fault display on the dashboard.

Resetting after reconnecting the 12 V battery

After reconnecting the 12 V battery, you must calibrate the "Auto" function of the driver's window. If you don't do this, you can't open or close the window all the way with the Auto switch.

  • Open window half-way
  • Pull and hold window switch up until window is all the way up, and hold an additional 1 second or more

Cabling to traction battery

Harness to the battery

The harness to the traction battery has 3 tails, each with a connector

  • To Battery ECU - power, communication, fan control
  • To the orange Service Plug - to detect if the Service Plug is fully plugged-in
  • To the System Relays - to drive the relays that connect the traction battery to the inverter


Pin-out of connector on Battery ECU

Battery ECU (electronic Control Unit)
Pinout:

  • POWER
    • Gnd - to chassis
    • AM - 12 V, always on, for memory retention
    • IGCT - 12 V when the car is in the "READY" mode
    • IG - 12 V when ignition is on
  • COMMUNICATIONS
    • CANH - CAN bus High
    • CANL - CAN bus Low
  • BLOWER
    • VM - monitors fan voltage, 2 to 12 V
    • SI - variable duty cycle (PWM) square wave to control fan speed
    • FCTL1 - drives the relay which in turn powers the fan

Service Plug sensor.
Two pins. Shorted when the Service Plug is fully plugged-in

System Relays
Four pins:

  • Common
  • System relay 1 (precharge resistor)
  • System relay 2 (traction pack +, bypassing precharge resistor)
  • System relay 3 (traction pack -)


CAN bus

If the conversion will replace the stock Battery ECU, it must talk directly with the vehicle CAN bus.

CAN Tools

  • CAN-View - uses the vehicle's MFD (Multi Function Display). V1, V2, and V3 are only compatible with the 2004 and 2005 Prius. A new V4 will be compatible with the 2006+ Prius and perhaps other hybrid models.
  • A generic adapter between the CAN-bus and a PC. It is convenient to use a USB port, though the serial or parallel or Ethernet port may be used as well. Examples of USB adapters:
  • These adapters have a DE-9 DSUB connector, so you'll also need an adapter to the Prius' OBD connector. For example:
  • The Prius' OBD (On Board Diagnostics) connector is located under the dashboard, below and to the right of the steering wheel, facing down. A.k.a.: Data Link Connector 3 (DLC3)
  • Alternatively, tap into the CAN bus directly. Use a short cable to the CAN adapter.
    • CANH - black wire
    • CANL - white wire
    • GND - chassis

CAN bus protocol

  • The CAN bus is active only when the vehicle is in READY mode, and for a few seconds after the end of the READY mode.
  • baud rate: 500 kbits/s (if you use the wrong rate, the vehicle will complain and store a DTC fault until the DTC codes are cleared)
  • Standard: CAN 2.0A ("standard CAN", 11-bit identifier)
  • Remote frames: not used
    • this means all the data are volunteered and none are requested; that is, that every component on the vehicle broadcasts its data periodically; no component puts out requests for data

Battery ECU messages

The Battery ECU (Electronic Control Unit) broadcasts messages to the rest of the vehicle through the CAN bus.

It appears that broadcasting those messages is all the Battery ECU is expected to do. It appears that this ECU only needs to talk, and doesn't need to listen. That is, it doesn't appear that it is expected to do anything about any messages that are placed on the bus by other devices.

The battery ECU is able to protect itself by stating the maximum current it may accept or may provide. It may also protect itself by generating a Fault Code (DTC). In either case, the battery module is at the mercy of the rest of the vehicle to respect those requests and not draw or source too much current.

(Thanks to Attila Vass for pointing to the right codes). Thanks to Jim Fell for coming up with the checksum algorithm first.

The following data were seen in a 2006 Prius.

The Battery ECU (Electronic Control Unit) broadcasts the following messages. In this table, numbers in parentesis (#) refer to the notes just below the table.


ID (hex) Period
[ms] (1)
No of
data
bytes
byte 0 byte 1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7
03Bh 8 5 Current (2) Voltage (3) ChkSum (4)
3C9h 100 8 X (12) X (12) X (12) X (12) X (12) X (12) X (12) ChkSum (4)
3CBh 100 7 CDL (5) CCL (6) ΔSOC? (11) SOC (7) temp1 (8) temp2 (9) ChkSum (4)
3CDh 100 5 fault code (10) Voltage (3) ChkSum (4)
4D1h 1060 8 X (13) X (13) X (13) X (13) X (13) X (13) X (13) X (13)


Notes:

  • h = hex value; d = decimal value; b = binary value;
  • A.V.: Attila Vaas (Attila Vass) believes...; D'de: Davide (Hybrids-Plus) believes...


1) How often this message is repeated
2) Pack current: 12-bit, signed (>0 = discharge, <0 = charge) [0.1 A], -256 to 254 A. Examples:

  • 0F80h = -128d = charging at 12.8 Amps
  • 0000h = 0d= no pack current
  • 0080h = 128d = discharging at 12.8 Amps

3) Pack voltage: 16-bit, unsigned [V], 0 to 510 V. Note that 2 different messages have this data, though the 2 values can be off by 1 LSB. Examples:

  • 00DCh = 220d = 220 Volts
  • 0100h = 256d = 256 Volts

4) CheckSum: used to check for errors in the data. [Details] (xls) Calculated as follows:

  1. Add the message ID (low byte plus high byte), the individual data bytes (other than the check-sum itself) and the number of data bytes
  2. Take the mod 256 of that (that is, drop the high byte)

5) Maximum discharging current that the pack can handle: 8-bit unsigned, [A]. A.k.a.: CDL (Current Discharge Limit). From that and the pack voltage, the maximum dicharging power (WOUT) is calculated and reported in the Diagnostics Tool (Typically <= 21 kW). The battery reduces this value at cold temperatures (at around 5 C it is down to around 60A) and low SOC. Example:

  • 69h = 105d = 105 Amps -> 21 kW @ 200 V

6) Maximum charging current that the pack can handle: 8-bit unsigned, [A]. A.k.a.: CCL (Current Charge Limit). From that and the pack voltage, the maximum charging power (WIN) is calculated and reported in the Diagnostics Tool (Typically <= 25 kW). The battery reduces this value at high SOC. Example:

  • 7Ah = 122d = 122 Amps -> 24.4 kW @ 200 V

7) State of Charge: 8-bit, unsigned [0.5%]. Note that if the SOC is kept constant while driving for 30 minutes, the Prius assumes that the Battery ECU is broken, and switches to engine only operation. Turning the car off and on restores normal operation. Examples:

  • 4Fh = 79d = 39.5 % full (stopped, this is when the motor turns on to start charging the pack)
  • 64h = 100d = 50 % full (stopped, this is when the motor turns off after charging the pack)
  • B4h = 180d = 90 % full

8) A.V.: Lowest temperature reading of any sensor.
D'de: Temperature of the air intake. 8-bit signed, [˚C]. Example:

  • 18h = 26d = 26 ˚C

9) A.V.: Highest temperature reading of any sensor.
D'de: Average temperature of the 3 sensors inside the battery. 8-bit signed, [˚C] Example:

  • FEh = -2d = -2 ˚C

10) Fault Code (DTC = Diagnostic Trouble Code): 16-bit. The 2 Most Significant bits are the type of code (see below). The other 14 bits are the code. See table below for Fault codes. Examples:

  • 0560h = 0000 0101 0110 0000b = DTC P0560 = No voltage at the "AM" contact
  • 3056h = 0011 0000 0101 0110b = DTC P3056 = Problem with the battery current sensor
  • C100h = 1100 0001 0000 0000b = DTC U0100 = No Communication with the Engine Control Module

11) Delta in State of Charge: 8-bit, unsigned [0.5%]. Difference between SOC of most charged block and SOC of least charged block. This is just a guess. Examples:

  • 00h = 0d = 0 % = all block are equally charged
  • 0Ah = 10d = 5 % = the most charged bloc's SOC is 5 % higher than the least charged block

12) Unknown data. (A.V.: related to release date ?) Typical values: D'de

  • 01 2A 25 02 99 03 1F
  • 01 2B 25 02 99 03 1F
  • 01 2C 25 02 99 03 1F
  • 01 72 25 02 99 03 1F
  • 01 87 21 02 99 03 1F
  • 01 D1 25 02 99 03 1F
  • 01 D2 25 02 99 03 1F
  • 01 D4 27 02 99 03 1F
  • 03 FF 21 02 99 03 1F
  • 03 FF 25 02 99 03 1F
  • 03 FF 21 02 99 03 1F
  • 03 FF 05 02 99 03 1F
  • 03 FF 25 02 99 03 1F
  • 03 FF 01 02 99 03 1F
  • 03 FF 29 02 99 03 1F
  • 03 FF 25 02 99 03 1F

A.V.:

  • 03 FF 21 02 75 02 FA

13) Unknown, unchanging data. (A.V.: Batt -> HECU) Typical values:

  • 11 00 01 02 00 00 00 00 (D'de)
  • 11 00 01 00 00 00 00 00 (A.V.)



It appears that the battery pack also sends the following data, though it's unclear in which messages:

VMF FAN VOLTAGE Battery blower motor voltage
Min.: 0 V, Max.: 25.4 V
Actuation condition of battery blower motor
COOLING FAN SPD Battery blower motor drive mode
Min.: 0, Max.: 6
Stopped: 0
Low to high speed actuation: 1 to 6
ECU CTRL MODE ECU control mode
Min.: 0, Max.: 4
Operating condition of HV battery
SBLW RQST Battery blower motor stop control request
(standby blower)
Presence of stop control request to battery
V1 to V14 BATT BLOCK Battery block voltage
Min.: –327.68 V, Max.: 327.67 V
Voltage variance among battery blocks

OBD-II Diagostic Trouble Codes (DTCs)

The Battery ECU detects and reports many fault conditions.

  • The Battery ECU places a Fault Code (DTC) in its message with an ID of 3CDh
  • The Engine ECU receives such DTCs (from the Battery ECU and from other devices as well)
  • The Engine ECU lights the Malfunction Indicator Lamp (MIL) (a.k.a. "Check Engine Lamp") on the dashboard. (In some cases it does so immediately, in some cases after it receives the same DTC twice.)

Fault codes begin with one of four letters, depending of the 2 Most Significant bits (MSb) of the hex code:

  • Ltr MSBs
  • P 00 Powertrain: Most faults start with this letter
  • C 01 Chassis: steering, brakes, other chassis systems. Faults in the transmission control ECU or electric power steering system
  • B 10 Body: Smart entry and Immobilizer malfunction. The only DTCs are B1294 and B2799
  • U 11 Network: Faults in the CAN network as well as any other networks (The Hybrid Control System cannot communicate with other components on the CAN bus0

All OBD-II diagnostic codes have five digits.

The first digit in an OBD-II DTC is always a letter, narrowing the fault to one of four different sections of the on-board diagnostic system: a P for powertrain, B for body, C for chassis, or U for network. At present, no other letters are used.

The second digit will be a number; SAE-defined codes, known as generic codes, are identified by a 0 (as above), 2, or 3. A specific SAE-defined code will always mean the same thing from vehicle to vehicle; a P0300 code, for example, indicates a random misfire across multiple cylinders of the vehicle's ICE, regardless of vehicle. Manufacturer-specific codes, which are not defined by SAE, must use a 1 for the second digit. They can mean anything.

One of the goals of OBD-II was to present a standardized diagnostic system. That’s where generic codes come in. At the same time, manufacturers need to have room in the system to create and display their own codes. They are free to do whatever they want with manufacturer-specific codes, but they must still equip each diagnostic system with the core group of generic codes.

When a Prius sets a DTC, it also sets a proprietary three-digit diagnostic code that sometimes gives a bit more information. This is typically accessed with a factory scanner.

The battery ECU may generate the following Fault Codes (DTCs = Diagnostic Trouble Codes).

Code (hex) Cause Note


P0560 There's no voltage at the "AM" contact of the battery ECU (it should be 12 V at all times) (1)
P0A1F Battery ECU is bad (many possible symptoms) (2)
P0A7F One of the blocks in the battery pack has deteriorated: its dynamic resistance is too high (1)
P0A80 The difference in voltage between 2 of the blocks in the battery pack is too high (1)
P0A81
P0A82
P0A85
The fan cooling the battery pack has problems (motor voltage or expected battery temperature) (1)
P0A95 Battery pack's fuse is blown (the Service Plug is still plugged in) (3)
P0A9B One of the temperature sensors in the battery pack is opened or shorted (1)
P0AAC The temperature sensors in the air intake is opened or shorted (1)
P30xx Battery block xx - 10 is weak (2)(4)
P3030 One or more of the wires between the Battery ECU and the battery blocks is disconnected (1)
P3056 There's a problem with the battery current sensor (1)

Notes:

  1. Behavior: lets the vehicle go into the READY mode and drive normally
  2. Behavior: lets the vehicle go into the READY mode but limits driving to fail-safe mode
  3. Behavior: if the engine happened to be on at the time, the vehicle remains in the READY mode and continues driving with just the engine; if the engine happened to be off at the time, without a battery it can't be started, so the vehicle turns off the READY mode and stops
  4. There are 14 blocks in the battery pack (1 through 14); the last 2 digits of the code are the equal to the number of the bad block plus 10; so, if block 1 is bad, the code is P3011, if block 12 is bad, the code is P3022

Causes for errors

The Prius doesn't like the following:

  • Telling the car that the SOC is a fixed value for 30 minutes straight
    • A fault is generated, car stops using the battery and keeps on running on just the engine, until 12 V battery dies, then car stops.
    • Just restart the car, and all will be fine.
  • Telling the car that the battery voltage is much higher than it really is (say, the battery is 170 V, but you tell it it's 200 V)
    • A fault is generated, car dies
    • Clear the faults, tell it the right voltage, and all will be fine
  • Telling the car that the battery is at 100 % SOC
    • Engine races all the time
    • Tell it at most 80 % SOC (though doing so at start-up causes the engine to run continuously, not just 10-20 seconds; instead, start by telling it that the SOC is 70 %, then go up to 80 %)

MFD (Multi Function Display)

State Of Charge display

In the Energy screen, the state of charge of the battery is shown with 8 bars. The following graph shows the relationship between the SOC reported by the battery ECU and the number of bars shown. There is a hysteresis of 2.5 % (usually), and filtering with a time constant of about 15 seconds (just on the display - the HEV ECU reacts immediately to changes in SOC).

StateOfChargeBars.gif
More SOC images available at Toyota Prius Battery Specs.

Limit to continuous EV operation

The Prius relies on the engine running for distribution of lubricant oil on the gears of the CTV (Continuously Variable Transmission). As its stock EV-only operation is limited to at most a couple of miles, after which the engine must run, it ensures that lubrication happens on a regular basis. Which leads to concerns that in a plug-in converted Prius, the larger battery allows longer EV-only operation, without lubrication. Implying that therefore, a plug-in conversion must ensure that it causes the Prius to restart the engine every few miles, then return to EV operation.

However upon further examination it should be noted that in EV-only mode all motive torque is provided by MG2 and thus not transmitted through the CVT or PSD (Power Split Device) which might more accurately be referred to as a TSD (Torque Split Device). There was a related thread implying that lubrication, while not actively circulated without the ICE running, is still present yet not as critical during EV-only mode. A number of converted PHEV Prius are operating in EV-only mode for extended distances of 10 to 30 or more miles without any adverse effects to the CVT, but we will be sure to update this section should that change in the future.

General Disclaimer:   (HV) (DC) injury or death hazard,   use at your own risk,   may void warranty.

HV (High Voltage) DC (Direct Current) Warning: Traction Battery Packs, Motors, Chargers, and other HV sources could cause serious injury or death if proper precautions are not taken while working on or around such High Voltage Direct Current sources.

Use this information at your own risk: There is no warranty expressed nor implied and we are not liable for any of your past, present, nor future actions. Even should you perform these modifications to the letter you could still damage any number of components in your vehicle causing it to no longer function. Even if it appears to function properly your actions may cause it to self destruct with collateral damage to surrounding properties other than your vehicle. By utilizing these ideas and instructions in an attempting to enhance national security, reduce gas consumption, vehicle "emissions", your carbon footprint, or smog, you do so at your own risk & peril.

Warranty: In performing some of these modifications you may void your warranty with the vehicles manufacturer.

See also our My wiki:General disclaimer