Difference between revisions of "VMS ECU"

From PaparazziUAV
Jump to navigation Jump to search
(Created page with "[https://sites.google.com/pdx.edu/viking-motorsports Viking Motorsports] (VMS) Engine Control Unit (ECU) is the main control board of a custom made electric race car for [http...")
 
(ecu updates)
Line 5: Line 5:


== Features ==
== Features ==
TODO
* 4 layer PCB board for better EMI
* Fully waterproof enclosure (IP-65 rated) and 48-pin [http://www.deutschconnector.com/products/deutsch_connectors/deutsch_dt_series_connectors/ Deutsch-TM] header
* ARM Cortex-M4 168MHz MCU
* Intel Edison as a linux companion computer
* SD card logging on both MCU and Intel Edison
* Wifi & Bluetooth connectivity (Intel Edison)
* 2x insulated CAN bus
* 2x RS232
* 4x Analog input (5V)
* 2x Analog output (5V)
* 2x Digital input (Switch-to-Ground)
* 6x Digital input (Switch-to-Battery)
* 2x High-Side digital output
* 4x Low-side digital output
* 12-24V power input
* 5V power output
* Reverse polarity and overvoltage input protection on all I/O
* [[AspirinIMU]] with 3-axis gyro, accel and magnetometer and MS5611 barometer
* [[GPS#uBlox|Ublox GPS]] with external antenna
* USB/JTAG for programming/debugging
 
The board is fully enclosed in a waterproof enclosure, and is intended to be used in harsh and dusty environments, such as automotive racing.
 
<gallery widths=200px heights=200px>
File:ECUv1-0_PCB.jpeg|200px|ECU v1.0 assembled PCB
File:ECU_v1_test.jpeg|200px|ECU v1.0 during I/O testing
</gallery>
 
== Pinout ==
Pins Name and Type are specified with respect to the ECU board. Note that the headers are in the order '''A-C-D-B''' (left to right, looking at the board from the top - component side). The pinout is designed so the related pins are adjacent in the wiring harness.
 
<gallery widths=200px heights=200px>
File:Ecu_pinout.png|200px|ECU v1.0 I/O pinout
</gallery>
 
 
{|border="1"  cellspacing="0" style="text-align:center" cellpadding="2%" width="70%"
|+'''Deutsch Header A'''
!width="7%"|''Pin #''!!width="10%"|''Name''!!width="10%"|''Type''!!''Description''!!width="5%"|''Color''
|-
|1||GND||PWR||For analog sensors||style="background:black; color:white"|Black
|-
|2||5V||PWR||For analog sensors ||style="background:Yellow; color:black"|Yellow
|-
|3||AIN1||IO||Analog input 5V||style="background:Orange; color:white"|Orange
|-
|4||GND||PWR||For analog sensors||style="background:black; color:white"|Black
|-
|5||5V||PWR||For analog sensors ||style="background:Yellow; color:black"|Yellow
|-
|6||AIN2||IO||Analog input 5V||style="background:Orange; color:white"|Orange
|-
|7||GND||PWR||For analog sensors||style="background:black; color:white"|Black
|-
|8||5V||PWR||For analog sensors ||style="background:Yellow; color:black"|Yellow
|-
|9||AIN3||IO||Analog input 5V||style="background:Orange; color:white"|Orange
|-
|10||GND||PWR||For analog sensors||style="background:black; color:white"|Black
|-
|11||5V||PWR||For analog sensors ||style="background:Yellow; color:black"|Yellow
|-
|12||AIN4||IO||Analog input 5V||style="background:Orange; color:white"|Orange
|}
 
{|border="1"  cellspacing="0" style="text-align:center" cellpadding="2%" width="70%"
|+'''Deutsch Header C'''
!width="7%"|''Pin #''!!width="10%"|''Name''!!width="10%"|''Type''!!''Description''!!width="5%"|''Color''
|-
|1||GND||PWR||For digital inputs||style="background:black; color:white"|Black
|-
|2||DIN_STG1||IO||Switch to ground ||style="background:magenta; color:white"|Magenta
|-
|3||GND||PWR||For digital inputs||style="background:black; color:white"|Black
|-
|4||DIN_STG2||IO||Switch to ground ||style="background:magenta; color:white"|Magenta
|-
|5||GND||PWR||For power in||style="background:black; color:white"|Black
|-
|6||VIN||PWR||12-24V power in||style="background:Red; color:black"|Red
|-
|7||DIN_STB1||IO||Switch to battery ||style="background:#FFA1B2; color:black"|Pink
|-
|8||DIN_STB2||IO||Switch to battery ||style="background:#FFA1B2; color:black"|Pink
|-
|9||DIN_STB3||IO||Switch to battery ||style="background:#FFA1B2; color:black"|Pink
|-
|10||DIN_STB4||IO||Switch to battery ||style="background:#FFA1B2; color:black"|Pink
|-
|11||DIN_STB5||IO||Switch to battery ||style="background:#FFA1B2; color:black"|Pink
|-
|12||DIN_STB6||IO||Switch to battery ||style="background:#FFA1B2; color:black"|Pink
|}
 
{|border="1"  cellspacing="0" style="text-align:center" cellpadding="2%" width="70%"
|+'''Deutsch Header D'''
!width="7%"|''Pin #''!!width="10%"|''Name''!!width="10%"|''Type''!!''Description''!!width="5%"|''Color''
|-
|1||GND||PWR||For analog outputs||style="background:black; color:white"|Black
|-
|2||AOUT1||IO||Analog output 5V ||style="background:#FED6B1; color:black"|Light Tan
|-
|3||GND||PWR||For analog outputs||style="background:black; color:white"|Black
|-
|4||AOUT2||IO||Analog output 5V ||style="background:#FED6B1; color:black"|Light Tan
|-
|5||GND||PWR||For high-side drivers||style="background:black; color:white"|Black
|-
|6||VOUT||PWR||12-24V power out (directly connected to VIN) for low-side drivers||style="background:Red; color:black"|Red
|-
|7||CAN1_H||IO||CAN high ||style="background:blue; color:white"|Blue
|-
|8||CAN1_L||IO||CAN low ||style="background:cyan; color:black"|Cyan
|-
|9||GND||PWR||For high-side drivers||style="background:black; color:white"|Black
|-
|10||VOUT||PWR||12-24V power out (directly connected to VIN) for low-side drivers||style="background:Red; color:black"|Red
|-
|11||CAN2_H||IO||CAN high ||style="background:blue; color:white"|Blue
|-
|12||CAN2_L||IO||CAN low ||style="background:cyan; color:black"|Cyan
|}
 
{|border="1"  cellspacing="0" style="text-align:center" cellpadding="2%" width="70%"
|+'''Deutsch Header B'''
!width="7%"|''Pin #''!!width="10%"|''Name''!!width="10%"|''Type''!!''Description''!!width="5%"|''Color''
|-
|1||GND||PWR||For RS232||style="background:black; color:white"|Black
|-
|2||SERIAL_IN1||IO||RS232 input (12V)||style="background:green; color:white"|Green
|-
|3||SERIAL_OUT1||PWR||RS323 output (12V)||style="background:#66FF00; color:black"|Light Green
|-
|4||GND||PWR||For RS232||style="background:black; color:white"|Black
|-
|5||SERIAL_IN2||IO||RS232 input (12V)||style="background:green; color:white"|Green
|-
|6||SERIAL_OUT2||PWR||RS323 output (12V)||style="background:#66FF00; color:black"|Light Green
|-
|7||DOUT_LS1||IO||Low-side output ||style="background:#CC6600; color:white"|Brown
|-
|8||DOUT_LS2||IO||Low-side output ||style="background:#CC6600; color:white"|Brown
|-
|9||DOUT_LS3||IO||Low-side output ||style="background:#CC6600; color:white"|Brown
|-
|10||DOUT_LS4||IO||Low-side output ||style="background:#CC6600; color:white"|Brown
|-
|11||DOUT_HS1||IO||High-side output (12V) ||style="background:white; color:black"|White
|-
|11||DOUT_HS2||IO||High-side output (12V) ||style="background:white; color:black"|White
|}
 
 
== Schematics and source files ==
<gallery widths=200px heights=200px>
File:Ecu_schematics_1.png|200px| Power (12V, 5V, 3.3V, 1.8V)
File:Ecu_schematics_2.png|200px| MCU, SD card
File:Ecu_schematics_3.png|200px| IMU, CAN, Serial, GPS
File:Ecu_schematics_4.png|200px| Intel Edison
File:Ecu_schematics_5.png|200px| Digital outputs
File:Ecu_schematics_6.png|200px| Digital inputs
File:Ecu_schematics_7.png|200px| Analog inputs
File:Ecu_schematics_8.png|200px| Analog outputs
File:Ecu_pinout.png|200px| Deutsch-TM 48-pin header
</gallery>
 
The Eagle schematics and board files are on [https://github.com/paparazzi/paparazzi-hardware/tree/master/controller/viking, Github]

Revision as of 14:53, 4 March 2017

Viking Motorsports (VMS) Engine Control Unit (ECU) is the main control board of a custom made electric race car for Formula SAE. Its development was supported by Beta project and the board was designed, assembled and tested at College of Engineering, Portland State University in 2016. The board runs stock Paparazzi sofware as a base.

Current status

As of February 2016, the hardware is essentially mature (revision 1.0) and it runs Paparazzi (an example airframe configuration is provided). More software development needs to be done in order to comply with Formula SAE rules.

Features

  • 4 layer PCB board for better EMI
  • Fully waterproof enclosure (IP-65 rated) and 48-pin Deutsch-TM header
  • ARM Cortex-M4 168MHz MCU
  • Intel Edison as a linux companion computer
  • SD card logging on both MCU and Intel Edison
  • Wifi & Bluetooth connectivity (Intel Edison)
  • 2x insulated CAN bus
  • 2x RS232
  • 4x Analog input (5V)
  • 2x Analog output (5V)
  • 2x Digital input (Switch-to-Ground)
  • 6x Digital input (Switch-to-Battery)
  • 2x High-Side digital output
  • 4x Low-side digital output
  • 12-24V power input
  • 5V power output
  • Reverse polarity and overvoltage input protection on all I/O
  • AspirinIMU with 3-axis gyro, accel and magnetometer and MS5611 barometer
  • Ublox GPS with external antenna
  • USB/JTAG for programming/debugging

The board is fully enclosed in a waterproof enclosure, and is intended to be used in harsh and dusty environments, such as automotive racing.

Pinout

Pins Name and Type are specified with respect to the ECU board. Note that the headers are in the order A-C-D-B (left to right, looking at the board from the top - component side). The pinout is designed so the related pins are adjacent in the wiring harness.


Deutsch Header A
Pin # Name Type Description Color
1 GND PWR For analog sensors Black
2 5V PWR For analog sensors Yellow
3 AIN1 IO Analog input 5V Orange
4 GND PWR For analog sensors Black
5 5V PWR For analog sensors Yellow
6 AIN2 IO Analog input 5V Orange
7 GND PWR For analog sensors Black
8 5V PWR For analog sensors Yellow
9 AIN3 IO Analog input 5V Orange
10 GND PWR For analog sensors Black
11 5V PWR For analog sensors Yellow
12 AIN4 IO Analog input 5V Orange
Deutsch Header C
Pin # Name Type Description Color
1 GND PWR For digital inputs Black
2 DIN_STG1 IO Switch to ground Magenta
3 GND PWR For digital inputs Black
4 DIN_STG2 IO Switch to ground Magenta
5 GND PWR For power in Black
6 VIN PWR 12-24V power in Red
7 DIN_STB1 IO Switch to battery Pink
8 DIN_STB2 IO Switch to battery Pink
9 DIN_STB3 IO Switch to battery Pink
10 DIN_STB4 IO Switch to battery Pink
11 DIN_STB5 IO Switch to battery Pink
12 DIN_STB6 IO Switch to battery Pink
Deutsch Header D
Pin # Name Type Description Color
1 GND PWR For analog outputs Black
2 AOUT1 IO Analog output 5V Light Tan
3 GND PWR For analog outputs Black
4 AOUT2 IO Analog output 5V Light Tan
5 GND PWR For high-side drivers Black
6 VOUT PWR 12-24V power out (directly connected to VIN) for low-side drivers Red
7 CAN1_H IO CAN high Blue
8 CAN1_L IO CAN low Cyan
9 GND PWR For high-side drivers Black
10 VOUT PWR 12-24V power out (directly connected to VIN) for low-side drivers Red
11 CAN2_H IO CAN high Blue
12 CAN2_L IO CAN low Cyan
Deutsch Header B
Pin # Name Type Description Color
1 GND PWR For RS232 Black
2 SERIAL_IN1 IO RS232 input (12V) Green
3 SERIAL_OUT1 PWR RS323 output (12V) Light Green
4 GND PWR For RS232 Black
5 SERIAL_IN2 IO RS232 input (12V) Green
6 SERIAL_OUT2 PWR RS323 output (12V) Light Green
7 DOUT_LS1 IO Low-side output Brown
8 DOUT_LS2 IO Low-side output Brown
9 DOUT_LS3 IO Low-side output Brown
10 DOUT_LS4 IO Low-side output Brown
11 DOUT_HS1 IO High-side output (12V) White
11 DOUT_HS2 IO High-side output (12V) White


Schematics and source files

The Eagle schematics and board files are on Github