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
(→‎CAN Tools: Running multiple instances of PCAN-View)
(→‎Causes for errors: leaking power to ground causes DTC)
Line 489: Line 489:
 
* Telling the car that the battery is at 80 % SOC or more
 
* Telling the car that the battery is at 80 % SOC or more
 
** Engine runs all the time, drawing current from the battery (about 9 A) to discharge it
 
** Engine runs all the time, drawing current from the battery (about 9 A) to discharge it
 +
* Resistance from HV- or HV+ to chassis ground less than around 10M
  
 
===MFD (Multi Function Display)===
 
===MFD (Multi Function Display)===

Revision as of 02:16, 4 April 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, referred to as Mk1 in Australia and the UK, where it has occasionally been privately imported)
  • 2000 worldwide release, chassis NHW11 (Almost always called Gen 1 in North America, sometimes Gen 2)

Present generation

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

  • 2003 release in selected countries (as model year 2004), chassis NHW20.


Traction battery

Functions

The traction battery includes a Battery ECU (Electronic Control Unit). As the Battery Management System (BMS), this unit does the following:

  • It calculates the battery's SOC by integrating the current ("Coulomb counting"). This value is corrected for State Of Charge Drift, self-discharge when the vehicle is not running, etc, by skewing the SOC upward when the open circuit battery voltage surpasses approx. 242V, and, presumably, by skewing it downward when the open circuit voltage is below an as-yet-unmeasured value.
  • 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.
  • It broadcasts to the rest of the vehicle, through the CAN bus, the following data:
    • Voltage
    • Current (positive for discharge, negative for charge)
    • Minimum & maximum temperature
    • Maximum current it's able to provide (Discharge Current Limit, or DCL)
    • Maximum current it's able to accept (Charge Current Limit, or CCL)
    • State Of Charge (SOC)
    • 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, ensure that the READY light is off and then remove the orange Service Plug on left end of the battery pack
  • If you attempt to 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 (READY light OFF)
    • 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 disconnect/connect sensor.
A simple reed switch, which is integrated into the 2004-up Prius service plug, is opened during the service plug removal sequence, just BEFORE the service plug opens the battery circuit. Upon re-installation, the switch is closed (shorted) just AFTER the service plug completes the circuit. Two pins connect the reed switch to the battery ECU. The purpose of this switch is to tell the battery ECU that the service plug is being removed, so that the system main relays can be opened prior to disconnecting the battery in the event that the service plug is inadvertently being removed while the system is in READY mode. Toyota warns that the HV ECU can be damaged if the power switch is engaged with the service plug disconnected.

NOTE: If the service plug in not firmly pushed down after insertion, the switch will not close, the system will not ready up, and a DTC will be set. This is a common oversight.

The service plug disconnect/connect sensor is a failsafe that prevents arcing at the service plug. It is not present on the service plug used in 1997-2003 Prius vehicles, but is integrated into the receptacle for the plug.

System Relays
Four pins:

  • Common
  • System relay K1 (precharge resistor)
  • System relay K2 (traction pack +, bypassing precharge resistor)
  • System relay K3 (traction pack -)

System Relays

Toyota refers to this assembly as an SMR (System Main Relay). In truth, there are three separate System Main Relays, housed in the drivers' side end of the battery pack enclosure:

  • a precharge relay in series with a precharge resistor
  • 2 contactors, one on the positive circuit and one on the negative circuit.

The system relays (contactors) are turned on in this sequence:

PriusContactorSequence.gif

At power up:

  • The precharge relay is turned on first by itself (which results in no current, because there is no return path), and then turned off. This function checks for a stuck relay on the negative side. If that relay was stuck, current would be present. The HV ECU would then record a DTC before shutting itself down. The DTC would have to be cleared and the problem corrected before the vehicle will re-enter READY status.
  • After a pause, the precharge relay and the negative contactors are turned on, to precharge the electronics in the vehicle slowly, through the system resistor.
  • Then the positive contactor is turned on, to complete a direct path between the battery and the vehicle electronics.
  • Then the precharge relay is turned off.

At power down:

  • The positive contactor is turned off, removing power to the vehicle electronics. This is the only time when arcing may occur. Arcing on its contacts will affect its lifetime.
  • Then the negative contactor is turned off.

There is a hump in the waveforms, as the voltage goes from 10 V to 12 V. This is probably due to the DC-DC converter (from the traction battery voltage to the 12 V battery) being on.

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:
    • Peak's PCAN-USB also sold as the GridConnect's GC-CAN-USB
      • Note: disconnecting this product's USB cable seems to create significant problems for Windows XP (immediate shut-down, or even the "blue screen of death"). You must use the system tray's "Remove hardware" icon first.
      • The PCAN-View software comes free with this product. In theory, it can filter a range of message IDs. In reality, that doesn't work so well if you're filtering more than one ID. However, you can run multiple instances of PCAN-View, each using a different filter, one for each message that interests you.
    • Grifo's CANUSB
    • Systec's USB-CANmodul
    • CAN232 is a CAN to RS232 device used by Attila Vass with his early My CAN Project.
    • The CAN-View should not be confused with this CANview product (notice no dash in the name), which is a CAN to RS232 device.
  • 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%]. 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 Diagnostic 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. Manufacturer-specific codes, which are not defined by SAE, must use a 1 for the second digit. They can mean anything within the system defined by the first digit of the DTC.

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.

HV Battery Diagnostic Trouble Codes (DTCs)

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:

  • Actual battery voltage at 175 V or less (regardless of what you tell it the voltage is). Or, 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 80 % SOC or more
    • Engine runs all the time, drawing current from the battery (about 9 A) to discharge it
  • Resistance from HV- or HV+ to chassis ground less than around 10M

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