The STM32MCU is the control board that the IGBT pack and car loom connect to. It contains all the circuitry required to interface to the onboard ARM Cortex-M3 microcontroller (STM32F103VBH6). See the SVN for the schematics (board dimensions are 178mm x 153mm). Currently at the first revision (v0.1), the design is 100% functional, with only a few resistor value changes required. These are currently available from Greenstage or can be built from the files in the Tumanako SVN
For the moment, the same device as the dev board will be used - a STM32F103VBH6. See the I/O schedule in open office format.
Semikron SKAi/SKiiP interface
The Semikron IGBT interface deals with 15V gate drive and error logic, and 15V analog signals.
- To boost the 3.3V gate logic to 15V three TC4427A dual gate driver chips are employed.
- The four error signals are open collector, low indicating no error. At present these are combined as a single error fault.
- The three current inputs (one of which will usually be not placed in the IGBT module) are scaled via a resistor network from +/-10V to 0-3.3V. A small capacitor may be placed to reduce noise and decrease impedance seen by the ADC. The value cannot be too great as this will add signal delay.
- The temperature and bus voltage inputs are scaled by resistor dividers from their 0-10V to 0-3.3V
- While the SKAi and SKiiP share essentially the same interface, the pin numbering is slightly different. Two headers are present to allow either device to be used with straight-through cabling.
Motor encoder and temperature interface
The built in motor sensors provide arguably the greatest risk of a fault from the chassis-grounded control electronics to the isolated DC bus. For this reason it would be greatly beneficial to have them completely isolated from the chassis.
- The motor encoder signals are the standard incremental (A,B,Z) signals and are open collector.
- The motor temperature sensor is a KTY84-130 PTC, whose resistance ranges from 360Ω at -40°C to 2600Ω at 300°C
The proposed circuit to the right may suit the task:
- The 555 timer circuit is a frequency generator, with f=1/(1.4 x R x C)
- Frequency will vary from 525Hz (-40°C) to 200Hz (300°C). Open circuit will stop the frequency generator. Over 700Hz indicates a short.
- The circuit should prove adaptable to other resistance based sensors.
- A 1kΩ resistor is put in series with the sensor, to reduce current drawn, and also to safely detect shorted/open faults.
- Hopefully this resistor will help damp down noise coupled in from the motor.
- Hopefully also the sensor is linear - that it behaves as a resistor in both the +ve and -ve cycles of the oscillator.
- The discharge output of the 555 is used to load the power supply by an extra 10mA at the output frequency, which triggers an output to the controller.
- The 555 chosen is a CMOS design, drawing 0.6mA. The oscillator draws 0.3-1mA depending on the temperature.
While a compact solution, the feedback via the power supply may need to be abandoned in favour of an optocoupler as the Encoder itself will need to be powered from this circuit, and has three digital signals of its own.
Contactor and precharge circuit
- The three contactors are each driven via mosfet and optocoupler. If either 12V or GND wires are cut to the contactor box all three contactors will loose power and will open.
- Each of the main contactors have auxiliary contact feedback. The precharge contactor circuit includes feedback to signal that it is safe to close the main contactor.
Vehicle 12V digital inputs
Which is better?IGN, where the input is just an R-C circuit, or START, where the input is coupled to the ground plane? Or would R-C-R be the best idea? Another possible circuit is a Resistor-Zener-Resistor.
Bluetooth Dashboard Connection
Its possible to connect the KiwiAC to an Android device running "Dashboard" software via a bluetooth comms module.
This is the bluetooth module in the picture: http://www.mdfly.com/index.php?main_page=product_info&cPath=8_47&products_id=769
STM32MCU hardware verification
The STM32MCU has two power inputs. The first one is 12V which powers the board itself, the second one is up to 24V (nominal - 28V max) and is routed directly to the power stage headers. The Semikron SkiiP modules require 24V, while the SKAi module will happily run off 12V or 24V, in which case you can successfully power the board from one 12V source and bridge the two input terminals. There are two blade fuses for the power input.
The board has large capacitors on the power inputs, so in some situations can slow power-up sufficiently that the STM32 does not start correctly. In this case either replace the capacitor with a smaller one, or use an inline switch between the board and power supply.
Using STM32MCUtest to ensure your power stage is working correctly:
- Load STM32MCUtest into the board, and use a terminal program to configure and monitor the pins. you will notice that the blue LED toggles every time you press a key (hold space-bar to see it flash) and you will also see that the output on the terminal mirrors the status of the two LEDs. Get comfortable turning the LED outputs into inputs, and see the corresponding lack of light from the LEDs as a consequence.
- Using the schematic you can determine the pins to toggle to enable particular output IGBTs, and their status can be checked with a multimeter. Be warned, in this state there is little protection and you could quite easily damage things or blow fuses.
you can also directly see the status of any of the Digital inputs at the terminal. By connecting the DI terminal with 12V, the corresponding bit will trigger.
Board changes for next run TODO
- Resistors on POT to be halved for Hall effect throttle (two variants of the board, or jumper to choose?)
- Resistors on digital ins to be added for noise tolerance
- Resistor change for contactor outputs
- Capacitor change on current feedback from powerstage
- Add power good reset chip to ensure correct start up at power on
- Double number of A/D in for pedal use (redundancy/error checking and compatibility)