mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
- 1채널(ACU) RX ID 수정(150 → 151) - ACU ARC 적용 - [!] Message buffer(MB) 오류 수정 = define.h 내 MAX_RX_MB_1ch 수정 (4U → 32U) = board.c 내 LN.1244 RXID setting for문 수정(RX_MB_IDX → RX_MB_IDX_1ch) - Simulink 로직 수정 = ACU CAN Fault Flag 적용 = ACU 모드일때만 적용
344 lines
10 KiB
C
344 lines
10 KiB
C
#ifndef __define__
|
||
#define __define__
|
||
|
||
#include "math.h"
|
||
|
||
|
||
#define EVB_BOARD 1
|
||
#define Pllab_BOARD 2
|
||
|
||
#define BOARD_TYPE EVB_BOARD
|
||
|
||
|
||
// #define DEBUG_TEST
|
||
|
||
// #define EMC_TEST
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
typedef unsigned long u64;
|
||
typedef unsigned int u32;
|
||
typedef int s32;
|
||
typedef unsigned short u16;
|
||
typedef unsigned char u8;
|
||
typedef signed char s8;
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
#ifndef TRUE
|
||
#define TRUE 1
|
||
#endif
|
||
|
||
#ifndef FALSE
|
||
#define FALSE 0
|
||
#endif
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define APP_TRUE 0
|
||
#define APP_FALSE 1
|
||
#define APP_ERROR 2
|
||
|
||
#define APP_ON 1
|
||
#define APP_OFF 0
|
||
|
||
#define APP_HIGH 1
|
||
#define APP_LOW 0
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define MAX_COMMAND_BUF 256
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
//CAM FD MB 0~23 TX_MB 0~3 RX_MB 4~23
|
||
#define RX_MB_IDX MAX_TX_MB
|
||
#define TX_MB_IDX 0U
|
||
|
||
#define RX_MB_IDX_1ch MAX_TX_MB_1ch
|
||
|
||
#define MAX_RX_MB 32U
|
||
#define MAX_TX_MB 14U
|
||
|
||
#define MAX_RX_MB_1ch 32U
|
||
#define MAX_TX_MB_1ch 28U
|
||
|
||
|
||
#define MAX_TX_RING 200
|
||
#define MAX_RX_RING 100
|
||
|
||
#define MAX_CAN_BUFFER 32 //max can length
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define P_WR(ch) CAN_ch[ch].p_wr
|
||
#define P_RD(ch) CAN_ch[ch].p_rd
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
//<2F>궗<EFBFBD>뼇<EFBFBD>꽌<EFBFBD>쓽 寃쎌슦 1~6梨꾨꼸, 肄붾뱶<EBB6BE>긽<EFBFBD>뿉<EFBFBD>꽌<EFBFBD>뒗 0~5梨꾨꼸, 肄붾뱶湲곗<E6B9B2><EAB397>쑝濡<EC919D> <20>옉<EFBFBD>꽦<EFBFBD>븯<EFBFBD><EBB8AF><EFBFBD>쓬
|
||
|
||
|
||
/*ECU3 CH0*/
|
||
/*tx id*/
|
||
#define ECU3_CH0_RWA_VCU_RC_Signal1 0x050
|
||
#define ECU3_CH0_RWA_VCU_RC_Signal2 0x051
|
||
#define ECU3_CH0_RWS_VCU_RC_Signal1 0x060
|
||
#define ECU3_CH0_RWS_VCU_RC_Signal2 0x061
|
||
#define ECU3_CH0_VCU_BCM_Signal_1 0x150
|
||
#define ECU3_CH0_VCU_MCU_Signals1 0x250
|
||
#define ECU3_CH0_VCU_RC_Signals1 0x010
|
||
#define ECU3_CH0_VCU_RC_Signals2 0x011
|
||
#define ECU3_VCU_EPAM 0x220
|
||
|
||
|
||
/*rx id*/
|
||
#define ECU3_CH0_BCM_VCU_Signal1 0x570
|
||
#define ECU3_CH0_BCM_VCU_Signal2 0x580
|
||
#define ECU3_CH0_BCM_VCU_Signal3 0x590
|
||
#define ECU3_CH0_BCM_VCU_Signal4 0x595
|
||
#define ECU3_CH0_BCM_VCU_Signal5 0x585
|
||
#define ECU3_CH0_MCU_VCU_Signals1 0x300
|
||
#define ECU3_CH0_MCU_VCU_Signals2 0x301
|
||
#define ECU3_CH0_RC_VCU_Signal1 0x040
|
||
#define ECU3_CH0_RC_VCU_Signal2 0x041
|
||
#define ECU3_CH0_RX_IMU_TX1 0x174
|
||
#define ECU3_CH0_RX_IMU_TX2 0x178
|
||
#define ECU3_CH0_RX_IMU_TX3 0x17C
|
||
#define ECU3_RC_VCU_BCM_Signal_1 0x155
|
||
#define ECU3_EPAM_VCU 0x221
|
||
#define ECU3_CAR_ARC 0x012
|
||
#define ECU3_Receive_Debugging 0x777
|
||
#define ECU3_RC_VCU_Fault_Flag 0x042
|
||
|
||
|
||
/*ECU3 CH1*/
|
||
/*tx id*/
|
||
#define ECU3_CH1_BCM_VCU_ACU_Signal1 0x570
|
||
#define ECU3_CH1_BCM_VCU_ACU_Signal2 0x580
|
||
#define ECU3_CH1_BCM_VCU_ACU_Signal3 0x590
|
||
#define ECU3_CH1_BCM_VCU_ACU_Signal4 0x595
|
||
#define ECU3_CH1_BCM_VCU_ACU_Signal5 0x585
|
||
#define ECU3_CH1_RWA_VCU_ACU_Signal1 0x050
|
||
#define ECU3_CH1_RWA_VCU_ACU_Signal2 0x051
|
||
#define ECU3_CH1_RWS_VCU_ACU_Signal1 0x060
|
||
#define ECU3_CH1_RWS_VCU_ACU_Signal2 0x061
|
||
#define ECU3_CH1_VCU_ACU_Signal1 0x013
|
||
#define ECU3_CH1_VCU_ACU_Signal2 0x014
|
||
|
||
/*rx id*/
|
||
#define ECU3_CH1_ACU_VCU_Signal1 0x091
|
||
#define ECU3_CH1_ACU_VCU_Signal2 0x092
|
||
#define ECU3_CH1_ACU_VCU_Signal3 0x093
|
||
#define ECU3_CH1_ACU_BCM_Signal_1 0x151
|
||
|
||
|
||
/*ECU3 CH2*/
|
||
/*tx id*/
|
||
#define ECU3_CH2_BSC_IDB_BrakeCommand 0x064
|
||
#define ECU3_CH2_BSC_IMU_ 0x070
|
||
#define ECU3_CH2_BSC_IDB_StartupCommand 0x032
|
||
#define ECU3_CH2_CH3_B_I_U_Message_1 0x797
|
||
#define ECU3_CH2_BSC_RegenCommand 0x06A
|
||
#define ECU3_CH2_BSC_RWA_RackCommand 0x040
|
||
#define ECU3_CH2_BSC_RWA_Sister 0x350
|
||
#define ECU3_CH2_BSC_RWA_StartupCommand 0x310
|
||
#define ECU3_CH2_BSC_VehicleEnvironment 0x384
|
||
#define ECU3_CH2_IDB_WheelSpeedStatus 0x088
|
||
|
||
|
||
/*rx id*/
|
||
#define ECU3_CH2_IDB_BrakeStatus1 0x09A
|
||
#define ECU3_CH2_IDB_BrakeStatus2 0x0C8
|
||
#define ECU3_CH2_IDB_PressureStatus 0x0A0
|
||
#define ECU3_CH2_IDB_RegenTcsRequest 0x082
|
||
#define ECU3_CH2_IDB_Status 0x092
|
||
#define ECU3_CH2_IDB_TireSlipStatus 0x096
|
||
#define ECU3_CH2_IDB_UdsResponse 0x798
|
||
#define ECU3_CH2_IDB_WheelStatus 0x08C
|
||
#define ECU3_CH2_RWA_Status1 0x072
|
||
#define ECU3_CH2_RWA_Status2 0x073
|
||
#define ECU3_CH2_RWA_Status3 0x0AA
|
||
|
||
/*ECU3 CH3*/
|
||
/*tx id*/
|
||
#define ECU3_CH3_TX_BSC_IMU 0x071
|
||
#define ECU3_CH3_TX_BSC_RCU_BrakeCommand 0x065
|
||
#define ECU3_CH3_TX_BSC_RWA_RackCommand 0x040
|
||
#define ECU3_CH3_TX_BSC_RWA_Sister 0x350
|
||
#define ECU3_CH3_TX_BSC_RWA_StartupCommand 0x310
|
||
#define ECU3_CH3_TX_BSC_RCU_StartupCommand 0x033
|
||
#define ECU3_CH3_TX_BSC_RCU_UdsRequest 0x797
|
||
#define ECU3_CH3_TX_BSC_VehicleEnvironment 0x385
|
||
#define ECU3_CH3_TX_RCU_WheelSpeedStatus 0x089
|
||
|
||
/*rx id*/
|
||
#define ECU3_CH3_RX_RCU_BrakeStatus1 0x09B
|
||
#define ECU3_CH3_RX_RCU_BrakeStatus2 0x0C9
|
||
#define ECU3_CH3_RX_RCU_PressureStatus 0x0A1
|
||
#define ECU3_CH3_RX_RWA_Status1 0x072
|
||
#define ECU3_CH3_RX_RWA_Status2 0x073
|
||
#define ECU3_CH3_RX_RWA_Status3 0x0AA
|
||
#define ECU3_CH3_RX_RCU_TireSlipStatus 0x097
|
||
#define ECU3_CH3_RX_RCU_WheelStatus 0x08D
|
||
#define ECU3_CH3_RX_RCU_Status 0x093
|
||
#define ECU3_CH3_RX_RCU_UdsResponse 0x799
|
||
|
||
|
||
/*ECU3 CH4*/
|
||
/*tx id*/
|
||
#define ECU3_CH4_VCU_RWS_Rack_Cmd 0x040
|
||
#define ECU3_CH4_VCU_RWS_StartupCommand 0x310
|
||
|
||
/*rx id*/
|
||
#define ECU3_CH4_RX_RWS_VCU_Rack_AngleFbk 0x073
|
||
#define ECU3_CH4_RX_RWS_VCU_stat_Signal 0x072
|
||
|
||
/*ECU3 CH5*/
|
||
/*tx id*/
|
||
#define ECU3_CH5_VCU_RWS_Rack_Cmd 0x040
|
||
#define ECU3_CH5_VCU_RWS_StartupCommand 0x310
|
||
|
||
/*rx id*/
|
||
#define ECU3_CH5_RWS_VCU_Rack_AngleFbk 0x073
|
||
#define ECU3_CH5_RWS_VCU_stat_Signal 0x072
|
||
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
typedef void (*user_callback)( int param );
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
|
||
#define PIT_INST_0 0U
|
||
#define CH_0 0U
|
||
//#define PIT_PERIOD 40000 // 1ms
|
||
#define PIT_PERIOD 20000 // 500Usec
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define ADC_INST_0 0U
|
||
#define ADC_INST_1 1U
|
||
#define ADC_INST_2 2U
|
||
|
||
#define MAX_ADC_RETRY 10
|
||
|
||
#define ADC_AN_6 6U
|
||
#define ADC_AN_2 2U
|
||
#define ADC_AN_3 3U
|
||
#define ADC_AN_4 4U
|
||
#define ADC_AN_5 5U
|
||
#define ADC_AN_43 43U
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define MAX_CAN_INST 6
|
||
#define CAN_INST_0 0U
|
||
#define CAN_INST_1 1U
|
||
#define CAN_INST_2 2U
|
||
#define CAN_INST_3 3U
|
||
#define CAN_INST_4 4U
|
||
#define CAN_INST_5 5U
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
#define DIN_0 0U
|
||
#define DIN_1 1U
|
||
#define DIN_2 2U
|
||
#define DIN_3 3U
|
||
#define DIN_4 4U
|
||
#define DIN_5 5U
|
||
#define DIN_6 6U
|
||
#define DIN_7 7U
|
||
|
||
#define DOUT_0 0U
|
||
#define DOUT_1 1U
|
||
#define DOUT_2 2U
|
||
#define DOUT_3 3U
|
||
#define DOUT_4 4U
|
||
#define DOUT_5 5U
|
||
#define DOUT_6 6U
|
||
#define DOUT_7 7U
|
||
|
||
#define ADC_0 0U
|
||
#define ADC_1 1U
|
||
#define ADC_2 2U
|
||
#define ADC_3 3U
|
||
#define ADC_4 4U
|
||
#define AIN_BAT 5U
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
#define MAX_PWM 8
|
||
|
||
#define PWM_EMIOS_0 0U
|
||
|
||
#define PWM_CH0 0U
|
||
#define PWM_CH1 1U
|
||
#define PWM_CH2 2U
|
||
#define PWM_CH3 3U
|
||
|
||
#define PWM_FREQ 50000 // 50KHz
|
||
#define PWM_INIT_MAX_TICK 160000000/PWM_FREQ
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define HW_LPI2C1 1 // Hardware I2C
|
||
#define I2C_SLAVE 1U
|
||
#define I2C_MASTER 0U
|
||
#define TRANSFER_SIZE 8U
|
||
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
/* --- software I2C --- */
|
||
//#define I2C_CROSS
|
||
#ifndef I2C_CROSS
|
||
#define I2C_DELAY 500
|
||
#define I2C_SDA(x) {if(x) Siul2_Dio_Ip_WritePin(I2C0_SDA_PORT, I2C0_SDA_PIN, 1U); else Siul2_Dio_Ip_WritePin(I2C0_SDA_PORT, I2C0_SDA_PIN, 0U);}
|
||
#define I2C_SCL(x) {if(x) Siul2_Dio_Ip_WritePin(I2C0_SCL_PORT, I2C0_SCL_PIN, 1U); else Siul2_Dio_Ip_WritePin(I2C0_SCL_PORT, I2C0_SCL_PIN, 0U);}
|
||
#define I2C_SDI ((Siul2_Dio_Ip_ReadPins(I2C0_SDA_PORT)&0x00000001)?1:0)
|
||
#else
|
||
#define I2C_DELAY 500
|
||
#define I2C_SDA(x) {if(x) Siul2_Dio_Ip_WritePin(I2C0_SCL_PORT, I2C0_SCL_PIN, 1U); else Siul2_Dio_Ip_WritePin(I2C0_SCL_PORT, I2C0_SCL_PIN, 0U);}
|
||
#define I2C_SCL(x) {if(x) Siul2_Dio_Ip_WritePin(I2C0_SDA_PORT, I2C0_SDA_PIN, 1U); else Siul2_Dio_Ip_WritePin(I2C0_SDA_PORT, I2C0_SDA_PIN, 0U);}
|
||
#define I2C_SDI ((Siul2_Dio_Ip_ReadPins(I2C0_SCL_PORT)&0x00000002)?1:0)
|
||
#endif
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
|
||
#define I2C_START { I2C_SDA(APP_HIGH); i2c_delay(I2C_DELAY); I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY);\
|
||
I2C_SDA(APP_LOW); i2c_delay(I2C_DELAY); I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY);}
|
||
|
||
#define I2C_STOP { I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY); I2C_SDA(APP_LOW); i2c_delay(I2C_DELAY);\
|
||
I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY); \
|
||
I2C_SDA(APP_HIGH); i2c_delay(I2C_DELAY); }
|
||
|
||
#define I2C_WDATA(a) { I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY); I2C_SDA(a); i2c_delay(I2C_DELAY);\
|
||
I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY); I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY);}
|
||
|
||
#define I2C_RDATA(a) { I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY); \
|
||
a<<=1; a|=I2C_SDI; i2c_delay(I2C_DELAY); \
|
||
I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY); }
|
||
|
||
#define I2C_GETACK(a) { i2c_delay(I2C_DELAY); I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY);\
|
||
a|=I2C_SDI; i2c_delay(I2C_DELAY); I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY);}
|
||
|
||
#define I2C_SETNACK { I2C_SDA(APP_HIGH); i2c_delay(I2C_DELAY); I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY);\
|
||
I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY); I2C_SDA(APP_HIGH); i2c_delay(I2C_DELAY);}
|
||
|
||
#define I2C_SETACK { I2C_SDA(APP_LOW); i2c_delay(I2C_DELAY); I2C_SCL(APP_HIGH); i2c_delay(I2C_DELAY);\
|
||
I2C_SCL(APP_LOW); i2c_delay(I2C_DELAY); I2C_SDA(APP_HIGH); i2c_delay(I2C_DELAY);}
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
|
||
#define LIN_INSTANCE_1 0
|
||
#define LIN_INSTANCE_2 1
|
||
|
||
#define ID_1 0x1A
|
||
#define ID_2 0x2A
|
||
#define BUFFER_SIZE 3U
|
||
#define T_LIN_TIME_OUT 400000
|
||
|
||
#endif
|
||
|
||
|