Has base BMU code but sends dummy temperature and voltage readings to test CAN
Dependencies: CUER_CAN DS1820 LTC2943 LTC6804 mbed
Fork of BMS_BMUCore_Max by
Data_Types_BMU.h
- Committer:
- lcockerton62
- Date:
- 2016-12-22
- Revision:
- 0:0a5f554d2a16
- Child:
- 1:51477fe4851b
File content as of revision 0:0a5f554d2a16:
#ifndef Data_Types_BMU_H #define Data_Types_BMU_H #include "CAN_Data.h" #include "CAN_IDs.h" #include "mbed.h" #define NO_OF_CELLS 1 #define NO_TEMPERATURE_SENSORS 1 // CAN pins #define CAN_WRITE_PIN p29 #define CAN_READ_PIN p30 struct BMU_data{ // Data for the CAN bus see Tritium Communications Protocol // Cell voltage uint16_t cell_voltages[NO_OF_CELLS]; // Store all voltage measurements in here uint16_t max_cell_voltage; uint16_t min_cell_voltage; uint8_t CMU_cell_voltage_minimum[2]; //Order: [0]CMU with minimum [1]cell with minimum uint8_t CMU_cell_voltage_maximum[2]; //Order: [0]CMU with maximum [1]cell with maximum // SOC float SOC; float percentage_SOC; //Cell Temperature uint16_t temperature_measurements[NO_TEMPERATURE_SENSORS]; // Store all of the temperature measurements in here uint16_t max_cell_temp; uint16_t min_cell_temp; uint8_t CMU_number_min_temp; uint8_t CMU_number_max_temp; }; // @TODO are both the battery status and extended status used or just one of them enum BMU_CAN_flags{ // Think this is used for legacy software }; enum BMU_extended_CAN_flags{ // BMU wont send all of these errors NONE = 0x00, CELL_OVER_VOLTAGE = 0x00000001, CELL_UNDER_VOLTAGE = 0x00000002, CELL_OVER_TEMPERATURE = 0x00000004, MEASUREMENT_UNTRUSTED = 0x00000008, CMU_COMMUNICATION_TIMEOUT = 0x00000010, VEHICLE_COMMUNICATIONS_TIMEOUT = 0x00000020, BMU_SETUP_MODE = 0x00000040, CMU_CAN_POWER_STATUS = 0x00000080, PACK_ISOLATION_TEST_FAILURE = 0x00000100, SOC_MEASUREMENT_NOT_VALID = 0x00000200, CAN_12V_LOW = 0x00000400, CONTACTOR_NOT_ENGAGED = 0x00000800, CMU_EXTRA_CELL = 0x00001000, }; #endif