Toyota Inverter Clocked Serial Interface Protocol

From openinverter.org wiki
Jump to navigation Jump to search

This page explains the Clocked Serial Interface (CSI) used on various unmodified Toyota inverters accessed via the CSI pins (REQ, CLK, HTM, MTH). For connector and wiring information, see the model page for the inverter in question:

Background

This interface was originally described as Toyota Sync Serial or "USART" by the first reverse engineering efforts. However once the datasheet for the onboard microcontroller was found, it was discovered that the datasheet refers to this interface as a Clocked Serial Interface (CSI). Each type of interface is referred to by letter, with "G" being assigned to the CSI, therefore it is referred to as the CSIG interface throughout the CPU datasheet.

See the model-specific pages above for details on CPU part numbers and datasheets for more information.

Toyota Protocol

  • REQ Request line from hybrid controller to Inverter
  • CLK Clock signal from hybrid controller to Inverter (Constant 500KHz)
  • HTM Hybrid controller to Inverter data frame
  • MTH Inverter to Hybrid controller data frame
The number of bytes sent/received during a transfer will depend on the model of inverter, the table above outlines the number of bytes for the different inverter models.

Bus Transfer Sequence starts with the REQ line changing state

Toyota Serial example waveforms

Data logging Toyota Serial Protocol

Prius Gen3 PHV (Inverter model G9200-47200) has 105 bytes HTM and 140 bytes MTH

ToyotaSyncSerialFrames.png
ToyotaSyncSerialBitpattern.png
Gen3Pin out.png
Prius ZVW30 D29 A59 Inverter Signals.png
Prius Gen3  / Auris / Yaris Connector Body

HTM Data

HTM (Hybrid control unit To Motor control unit) data is required to make the motors spin. The following is a collection of what could be some of that data:

Typically the the frame is finished with a 16bit checksum of the preceding bytes, Least Significant Byte first.

EngineRPM is sent. A guess is this is so that the MCU can detect slip on the clutch-like slip disk that couples the engine flywheel to the hybrid transmission. On a Gen3 Prius this is sent as first byte where 1bit = 32rpm. This is approximated by (MG1speed + MG2speed)/113. A more accurate calculation is (MG1speed + MG2speed*(143/145))*5/18/32. 143/145, 5/18 are gear ratios in the transmission as seen in this video. 32 is probably so that rpm can fit into one byte and is easily accomplished by bit shift to the right (32 = 2^5).

HTM Data
Data type Prius Gen3 GS450h
Checksum (sum of all preceding bytes) LSB first [98,99] [78,79]
Engine RPM [0] [0]
MG1 Torque Request*4 [91,92] [75,76]
MG1 Torque Request [5,6] [11,12] [5,6] [11,12]
MG2 Torque Request [30,31] [36,37] [26,27] [32,33]
Battery Regen Power Limit [76,77] [63,64]
Battery Discharge Power Limit [78,79] [65,66]
Sequential Number [94]