/***************************************************************************//** * @file bl_can.h * @brief This file is the header file of bootloader CAN configuration. * @version V1.0.0 * @date May-2021 * @author Zhixin Semiconductor * * @note * Copyright (C) 2021 Zhixin Semiconductor Ltd. All rights reserved. * ******************************************************************************/ #ifndef BL_CAN_H #define BL_CAN_H //#define E16_HL_L_CANID #define MEM_ADR_LR_DET (*(uint16_t*)0x20000804) #define MEM_ADR_LR_DET_INV (*(uint16_t*)0x20000806) #define LEFT_ECU ((uint16_t)0x0101) #define LEFT_ECU_INV ((uint16_t)0xFEFE) #define RIGHT_ECU ((uint16_t)0x0202) #define RIGHT_ECU_INV ((uint16_t)0xFDFD) #define UNKNOWN_ECU ((uint16_t)0x0303) #define UNKNOWN_ECU_INV ((uint16_t)0xFCFC) #include "can_drv.h" #define CAN1_MbGroup1_IRQ_NUM CAN1_Mb0To15_IRQn #define CAN_REC_MB 0U #define CAN_SEND_MB 1U #define CAN_FUNCADDR_REC_MB 2U #define CAN_ID CAN_ID_1 /*#define CLK_CAN_ID CLK_CAN1*/ #define SYSCTRL_CAN_ID SYSCTRL_CAN1 #define CAN_REC_FUNC_ADDR 0x7DFU /*CANID definition for E16 Head Light Left mounting side*/ #ifdef E16_HL_L_CANID #define CAN_SEND_MSG_ID 0x77BU #define CAN_REC_MSG_ID 0x773U #endif /*CANID definition for E16 Head Light Right mounting side*/ #ifdef E16_HL_R_CANID #define CAN_SEND_MSG_ID 0x77CU #define CAN_REC_MSG_ID 0x774U #endif /*CANID definition for E16 Rear Light Left mounting side*/ #ifdef E16_RL_L_CANID #define CAN_SEND_MSG_ID 0x77DU #define CAN_REC_MSG_ID 0x775U #endif /*CANID definition for E16 Rear Light Right mounting side*/ #ifdef E16_RL_R_CANID #define CAN_SEND_MSG_ID 0x7DEU #define CAN_REC_MSG_ID 0x7D6U #endif #define BL_INTERFACE_CAN_FD 1U #define BL_INTERFACE_CAN 2U #define BL_INTERFACE BL_INTERFACE_CAN /* CAN IO definition */ #define BL_CAN_SYS_PORT SYSCTRL_PORTA #define BL_CAN_PORT PORT_A #define BL_CAN_TX_IO GPIO_13 #define BL_CAN_TX_PINMUX PTA13_CAN1_TX #define BL_CAN_RX_IO GPIO_12 #define BL_CAN_RX_PINMUX PTA12_CAN1_RX #define MESSAGE_BUF_LEN 8U typedef struct { uint32_t len; uint8_t data[MESSAGE_BUF_LEN]; uint32_t msgId; /*!< Message ID*/ }MessageBuf_t; ResultStatus_t CanInit(void); void Can1MbCbf(uint32_t mbIdx); void CanReadOneFrame(MessageBuf_t *buf); void CanTransmitMsg(uint8_t *data, uint8_t len); void CanReset(void); #endif /* BL_CAN_H */