Toyota Inverter Clocked Serial Interface Protocol: Difference between revisions

From openinverter.org wiki
Jump to navigation Jump to search
(Add background on the name)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page is dedicated to use of Toyota inverters (Lexus / Camary / Gen3 Prius / Auris / Yaris) unmodified via the serial protocol (REQ, CLK, HTM, MTH). This page also contains wiring and connector information for the various models of Toyota Inverters.
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:


==  Toyota Protocol ==
* [[Toyota G9200 Inverter]] - Lexus, Camary, Gen3 Prius, Auris, Yaris
* [[Lexus GS450h Drivetrain|Lexus GS450]] / Camry drivetrain information
* [[Auris/Yaris Inverter|Gen3 Prius / Auris / Yaris]] replacement board (not using the CSI protocol)
 
== 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
* REQ Request line from hybrid controller to Inverter
Line 20: Line 30:
[[File:ToyotaSyncSerialBitpattern.png|thumb]]
[[File:ToyotaSyncSerialBitpattern.png|thumb]]


== Toyota Inverter Connectors  ==
[[Lexus GS450h Inverter|Lexus GS450]] / Camry
[[Auris/Yaris Inverter|Gen3 Prius / Auris / Yaris]]
[[File:Gen3Pin out.png|thumb]]
[[File:Gen3Pin out.png|thumb]]
[[File:Prius ZVW30 D29 A59 Inverter Signals.png|thumb]]
[[File:Prius ZVW30 D29 A59 Inverter Signals.png|thumb]]
Line 44: Line 46:
! Data type
! Data type
! Prius Gen3
! Prius Gen3
! GS450H
! GS450h
|-
|-
! Checksum (sum of all preceding bytes) LSB first
! Checksum (sum of all preceding bytes) LSB first

Latest revision as of 02:54, 26 February 2023

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]