BMW i3 Inverter: Difference between revisions
(Updated ampseal pinout to swap Sin Hi and Sin Lo pin assignment, which appeared to be incorrect based on the mini mainboard wiki page and also measuring motor angle using the encoder. Sin Lo and Cos Lo have a shared connection to S1S4 (JP1 pin 16) on the mini mainboard, which corresponds to pins 12 and 19 on the Ampseal.) |
(Added paragraphs explaining code update to fix SPI communication with gate driver board.) |
||
Line 67: | Line 67: | ||
Power stage: [https://www.infineon.com/dgdl/Infineon-HybridPACK2_Power_Modules-PB-v01_00-EN.pdf?fileId=db3a3043353fdc16013557f17ce67b60 Infineon FS800R07] IGBTs rated for 800amps 650v | Power stage: [https://www.infineon.com/dgdl/Infineon-HybridPACK2_Power_Modules-PB-v01_00-EN.pdf?fileId=db3a3043353fdc16013557f17ce67b60 Infineon FS800R07] IGBTs rated for 800amps 650v | ||
'''Gate Driver Board''' | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 282: | Line 285: | ||
'''Gate Driver Board - SPI Commication''' | |||
The BMW gate driver board communicates the DC bus voltage (ie traction battery voltage) and IGBT heatsink temperatures to the Openinverter via SPI. | |||
On the Openinverter mini mainboard, pin 17 on JP2 is used for the SPI Clock signal, instead of its default assignment as 'Error Output'. | |||
To avoid the clock signal being pulled high or low by the pin acting as an Error Output, find this section of code in vehiclecontrol.cpp:<syntaxhighlight lang="cpp"> | |||
//Brake pin is used as SPI_MISO | |||
DigIo::brk_out.Configure(GPIOC, GPIO5, PinMode::INPUT_FLT); | |||
</syntaxhighlight>and insert this below it to disable the Error Output:<syntaxhighlight lang="cpp"> | |||
//Disable err_out so it doesn't pull the clock signal up or down | |||
DigIo::err_out.Configure(GPIOC, GPIO10, PinMode::INPUT_FLT); | |||
</syntaxhighlight> | |||
'''Motor Resolver & Temperature Sensors''' | '''Motor Resolver & Temperature Sensors''' |
Revision as of 23:04, 24 December 2023
BMW I3 inverter
Forum thread: https://openinverter.org/forum/viewtopic.php?p=23214#p23214
BMW i3™ inverter drop-in board Available
https://openinverter.org/shop/index.php?route=product/product&product_id=72
Pin No | Assigniment | Description |
---|---|---|
1 | 12V | |
2 | BRAKE_IN | |
3 | PRECHARGE_OUT | |
4 | CANL | |
5 | CANH | |
6 | DCSW_OUT | |
7 | FORWARD_IN | |
8 | REVERSE_IN | |
9 | 5V (OUT) | |
10 | RESOLVER_S2/ENCODER_A | Sin Hi |
11 | GND | |
12 | RESOLVER_S1 | Sin Lo |
13 | THROTTLE1 | |
14 | THROTTLE2 | |
15 | RESOLVER_R1 | Ex Hi |
16 | RESOLVER_S3/ENCODER_B | Cos Hi |
17 | MTEMP+ | |
18 | MTEMP- | |
19 | RESOLVER_S4 | Cos Lo |
20 | EMCYSTOP_IN | |
21 | GND | |
22 | RESOLVER_R2 | Ex Lo |
23 | START_IN |
There are 2 variants of the i3. one with the REX and one with out.
the REX variant has a additional 25kw inverter to run the onboard generator.
Power stage: Infineon FS800R07 IGBTs rated for 800amps 650v
Gate Driver Board
Pin No | I/O | Description | Notes | Pin No | I/O | Description | Notes | |
---|---|---|---|---|---|---|---|---|
1 | 21 | GND Switching Mosfets ? | ||||||
2 | I | 32V in | 22 | GND Switching Mosfets ? | ||||
3 | I | 32V in | 23 | |||||
4 | I | IGBT A HI | 24 | |||||
5 | I | IGBT A LOW | 25 | |||||
6 | I | CS (ADC) | 26 | GND IGBT Driver ground | ||||
7 | I | SDI | 27 | GND IGBT Driver ground | ||||
8 | I | SDO | 28 | GND IGBT Driver ground | ||||
9 | I | SCK | 29 | GND IGBT Driver ground | ||||
10 | I | IGBT B HI | 30 | GND IGBT Driver ground | ||||
11 | I | IGBT B LOW | 31 | GND IGBT Driver ground | ||||
12 | I | IGBT C HI | 32 | GND IGBT Driver ground | ||||
13 | I | IGBT C LOW | 33 | 5V IGBT Driver Power | ||||
14 | 34 | 5V IGBT Driver Power | ||||||
15 | 35 | I | IGBT PSU 12V on | |||||
16 | O | IGBT DRIVER UVW Upper Ready | 36 | O | IGBT Driver Fault | |||
17 | O | IGBT DRIVER UVW Lower Ready | 37 | I | 5V LEM Current sensor Power | |||
18 | O | Current Sense C Signal | 38 | GND Current sensor Ground | ||||
19 | O | Current Sense B Signal | 39 | GND Current sensor Ground | ||||
20 | O | Current Sense A Signal | 40 | GND Current sensor Ground |
Gate Driver Board - SPI Commication
The BMW gate driver board communicates the DC bus voltage (ie traction battery voltage) and IGBT heatsink temperatures to the Openinverter via SPI.
On the Openinverter mini mainboard, pin 17 on JP2 is used for the SPI Clock signal, instead of its default assignment as 'Error Output'.
To avoid the clock signal being pulled high or low by the pin acting as an Error Output, find this section of code in vehiclecontrol.cpp:
//Brake pin is used as SPI_MISO
DigIo::brk_out.Configure(GPIOC, GPIO5, PinMode::INPUT_FLT);
and insert this below it to disable the Error Output:
//Disable err_out so it doesn't pull the clock signal up or down
DigIo::err_out.Configure(GPIOC, GPIO10, PinMode::INPUT_FLT);
Motor Resolver & Temperature Sensors
12-pin PCB header to connect to the motor sensors is an ERNI MiniBridge, part number 294920
Suspected wire colours to pin allocation below determined by schematic and multimeter trace, with resolver coils and temperature sensors checked for resistance.
Note as of 03 December 2023 this pinout has only been checked by manually rotating motor, but not under powered operation.
Pin No | Colour | Description | Notes |
---|---|---|---|
1 | Brown | Sin Hi | Twisted pair. 22.4 - 33.6 Ω. |
2 | Blue | Sin Lo | |
3 | Yellow | Ex Hi | Twisted pair. 22.4 - 33.6 Ω |
4 | Green | Ex Lo | |
5 | Red | Cos Hi | Twisted pair. 13.6 - 20.4 Ω |
6 | White | Cos Lo | |
7 | Blue | Temperature
Sensor |
From BMW Service Technical Training Manual - I01 High-voltage Components:
There are two stator coil temperature sensors. The rotor temperature is determined using readings from the stator temperature sensors. |
8 | Grey | ||
9 | Red | Temperature
Sensor | |
10 | Grey | ||
11 | - | Unused | These wires terminate in one of the six pin connectors in the motor housing. There is nothing connected to them. |
12 | - | Unused |