diff --git a/CanPorts.c b/CanPorts.c index 177dea1..a49b869 100644 --- a/CanPorts.c +++ b/CanPorts.c @@ -29,8 +29,8 @@ static void vCanPort_InitCAN0RxTxPin() { PORT_InitType tInitStruct = {0U}; GPIO_InitType tGpioInitStruct = {0}; - /* CAN0_STB */ - /* PortC 30: MUX = GPIO output */ + // CAN0_STB + // PortC 30: MUX = GPIO output tInitStruct.u32PortPins = PORT_PIN_30; tInitStruct.uPortPinMux.u32PortPinMode = PORT_GPIO_MODE; PORT_InitPins(PORT_C, &tInitStruct); @@ -39,7 +39,7 @@ static void vCanPort_InitCAN0RxTxPin() { tGpioInitStruct.ePinLevel = GPIO_LOW; GPIO_InitPins(GPIO_C, &tGpioInitStruct); - /* Port C2: MUX = ALT3, CAN0_RX */ + // Port C2: MUX = ALT3, CAN0_RX tInitStruct.u32PortPins = PORT_PIN_2; tInitStruct.uPortPinMux.u32PortPinMode = PORTC_2_FLEXCAN0_RX; tInitStruct.bPullEn = FALSE; @@ -49,7 +49,7 @@ static void vCanPort_InitCAN0RxTxPin() { tGpioInitStruct.ePinDirection = GPIO_IN; GPIO_InitPins((GPIO_InstanceType) PORT_C, &tGpioInitStruct); - /* Port C3: MUX = ALT3, CAN0_TX */ + // Port C3: MUX = ALT3, CAN0_TX tInitStruct.u32PortPins = PORT_PIN_3; tInitStruct.uPortPinMux.u32PortPinMode = PORTC_3_FLEXCAN0_TX; PORT_InitPins(PORT_C, &tInitStruct); @@ -59,7 +59,10 @@ static void vCanPort_InitCAN0RxTxPin() { GPIO_InitPins(GPIO_C, &tGpioInitStruct); } -uint32_t IdCanFilter[2] = {PROTOCOL_XCP_ID, 1}; +const FilterTo_FLEXCAN_RxMbFilterType IdCanFilter[4] = {{FLEXCAN_ID_STD, 1, 1, 0}, + {FLEXCAN_ID_STD, 2, 2, 1}, + {FLEXCAN_ID_STD, 3, 3, 1}, + {FLEXCAN_ID_EXT, 0x3, 0x3, 2}}; static void vCanPort_InitCan0() { vCanPort_InitCAN0RxTxPin(); @@ -77,13 +80,14 @@ static void vCanPort_InitCan0() { DMA_REQ_FLEXCAN0, (uint8_t *)&g_aRxDataBuf[0], + 16, - 2, IdCanFilter, + 4, DMA1_IRQn, - 0x55, - 1, + 0xFF, + DMA1_IRQn, FLEXCAN_BAUD_500K, FLEXCAN_ID_STD, diff --git a/CanPorts.h b/CanPorts.h index 593a12a..18bb122 100644 --- a/CanPorts.h +++ b/CanPorts.h @@ -7,7 +7,7 @@ #include "CanSerialPortFrame.h" -#define PROTOCOL_XCP_ID 0x123 +#define PROTOCOL_XCP_ID 0x23 #define PROTOCOL_CAN_XCP 0 #define PROTOCOL_CAN_RAW 1