SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_flexcan.h
Go to the documentation of this file.
1
9#ifndef SDRV_FLEXCAN_H_
10#define SDRV_FLEXCAN_H_
11
12#include <stdbool.h>
13#include <types.h>
14
15#include "../source/flexcan/sdrv_flexcan_priv.h"
16#include <sdrv_common.h>
17
18/* Doze mode support definition. */
19#define FLEXCAN_HAS_DOZE_MODE_SUPPORT 1
20
21#define FLEXCAN_COPY_USE_BURST 1
22
23#define CORE_LITTLE_ENDIAN 1
24
25/* Data index converting between frame and MB. */
26#if CORE_LITTLE_ENDIAN
27#define IDX_CONVERT(x) (((x) & 0xFCU) + 3U - ((x) & 3U))
28#else
29#define IDX_CONVERT(x) (x)
30#endif
31
32/* Make Rx FIFO ID filter table content. */
33/* ID type */
34#define STANDARD_DATA_ID 0U
35#define STANDARD_REMOTE_ID 2U
36#define EXTENDED_DATA_ID 1U
37#define EXTENDED_REMOTE_ID 3U
38/* Type A */
39#define MAKE_TYPE_A_FILTER(id, type) \
40 (((type) << 30) | ((id) << (((type)&1U) ? 1 : 19)))
41/* Type B */
42#define MAKE_TYPE_B_FILTER(id1, id2, type1, type2) \
43 (((type1) << 30) | ((id1) << (((type1)&1U) ? 16 : 19)) | ((type2) << 14) | \
44 ((id2) << (((type2)&1U) ? 0 : 3)))
45/* Type C */
46#define MAKE_TYPE_C_FILTER(id1, id2, id3, id4) \
47 (((id1)&0xFFU) | ((id2)&0xFFU) | ((id3)&0xFFU) | ((id4)&0xFFU))
48
49#define FlexCanRxFifoAcceptRemoteFrame 1UL
50#define FlexCanRxFifoAcceptExtFrame 1UL
51
52// Aliases data types declarations
58
59/******************* FlexCAN data structure *********************/
66
70 0,
72 1
74
77 0,
79 1,
85
88 0,
91
93typedef enum flexcan_frame_type {
97
103
104// Structures/unions data types declarations
107 uint8_t enableBRS;
108 uint8_t enableTDC;
109 uint8_t TDCOffset;
112};
113
115typedef struct {
118 uint32_t id;
120
122typedef struct {
123 uint8_t dlcLow;
124 uint8_t dlcHigh;
125 uint8_t payload1[8U];
128 uint8_t payload2[8U];
131
133typedef enum {
141
143typedef enum {
153
160 uint16_t numMatches;
162 uint16_t matchTimeout;
177};
178
186 uint16_t preDivider;
187 uint8_t rJumpwidth;
188 uint8_t propSeg;
189 uint8_t phaseSeg1;
190 uint8_t phaseSeg2;
191};
192
195 uint8_t maxMbNum;
208};
209
211 uint32_t filter_code;
212 uint32_t filter_mask;
214
216 uint8_t idFilterNum;
220};
221
231typedef struct _flexcan_rx_mb_config {
232 uint32_t id;
237
238typedef struct _flexcan_frame {
239 uint16_t
241 uint32_t id;
242 struct {
243 uint32_t
244 length : 7;
245 uint32_t type : 1;
246 uint32_t format : 1;
247 uint32_t isCANFDFrame : 1;
248 uint32_t isCANFDBrsEn : 1;
249 uint32_t reserved1 : 5;
250 uint32_t idHit : 9;
252 uint32_t reserved2 : 7;
253 };
254 uint8_t
258
260typedef struct _flexcan_mb_transfer {
262 uint8_t mbIdx;
264
270
273
275typedef enum _flexcan_status {
280 2),
282 3),
287 5),
289 6),
293 8),
295 9),
300 11),
305 13),
308 14),
312
340
353 flexcan_status_e status,
354 uint32_t result, void *userData);
355
361 uint8_t irq_num;
367 void *userData;
370 *volatile pMBFrameBuf[FLEXCAN_HAS_MESSAGE_BUFFER_MAX_NUMBER];
374 volatile uint8_t mbState[FLEXCAN_HAS_MESSAGE_BUFFER_MAX_NUMBER];
376 volatile uint8_t rxFifoState;
377 /* Bit map used to record if a MB is used. */
378 uint32_t mb_used_mask[2];
379#if FLEXCAN_HAS_DOZE_MODE_SUPPORT
381#endif
382};
383
394 0x8000U,
396 0x4000U,
398 0x400U,
400 0x800U,
402 0x4000000U,
403};
404
405/******************************************************************************
406 * API
407 *****************************************************************************/
408
424extern void flexcan_create_handle(flexcan_handle_t *handle, uint8_t controller_id,
425 void *reg_base, uint8_t irq_num,
426 flexcan_transfer_callback_t callback, void *userData);
427
460 const flexcan_config_t *config);
461
473
488
501
510extern void flexcan_deinit(flexcan_handle_t *handle);
511
527extern void
529 const flexcan_timing_config_t *config);
530
549extern void
551 const flexcan_timing_config_t *arbitrPhaseConfig,
552 const flexcan_timing_config_t *dataPhaseConfig);
553
562extern void flexcan_read_wmb(flexcan_handle_t *handle, uint8_t wmbIndex,
563 flexcan_frame_t *wmb);
564
579 bool request);
580
592 uint32_t mask);
593
603 uint32_t mask);
604
621 uint8_t maskIdx, uint32_t mask);
622
633extern void flexcan_set_tx_mb_config(flexcan_handle_t *handle, uint8_t mbIdx,
634 bool tx_by_interrupt);
635
646extern void flexcan_set_rx_mb_config(flexcan_handle_t *handle, uint8_t mbIdx,
647 const flexcan_rx_mb_config_t *config);
648
658 const flexcan_rx_fifo_config_t *config);
659
671extern void flexcan_enable_interrupts(flexcan_handle_t *handle, uint32_t mask);
672
684extern void flexcan_disable_interrupts(flexcan_handle_t *handle, uint32_t mask);
685
693extern uint32_t flexcan_get_mb_iflag(flexcan_handle_t *handle, uint8_t msgBufId);
694
714 uint8_t padding_val);
715
730extern flexcan_status_e
733
748extern flexcan_status_e
751
768 uint8_t mbIdx,
769 const flexcan_frame_t *txFrame,
770 uint8_t padding_val);
771
790 uint8_t mbIdx,
791 flexcan_frame_t *rxFrame);
792
804 flexcan_frame_t *rxFrame);
805
814extern void flexcan_abort_mb_send(flexcan_handle_t *handle, uint8_t mbIdx);
815
824extern void flexcan_abort_mb_receive(flexcan_handle_t *handle, uint8_t mbIdx);
825
834
843 uint8_t mbIdx);
844
852extern uint8_t flexcan_get_mb_state(flexcan_handle_t *handle, uint8_t mbIdx);
853
862extern bool flexcan_is_mb_occupied(flexcan_handle_t *handle, uint8_t mbIdx);
863
872
880 uint32_t mask);
881
891extern int flexcan_irq_handler(uint32_t irq, void *arg);
892
893#endif /* SDRV_FLEXCAN_H_ */
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_FLEXCAN
Definition: sdrv_common.h:34
@ SDRV_STATUS_OK
Definition: sdrv_common.h:72
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
int flexcan_irq_handler(uint32_t irq, void *arg)
FlexCAN IRQ handle function.
void(* flexcan_transfer_callback_t)(flexcan_handle_t *handle, flexcan_status_e status, uint32_t result, void *userData)
FlexCAN transfer callback function.
Definition: sdrv_flexcan.h:352
bool flexcan_is_mb_occupied(flexcan_handle_t *handle, uint8_t mbIdx)
check whether mb is occupied by fifo along with filter table.
flexcan_status_e flexcan_reset(flexcan_handle_t *handle)
Reset the FlexCAN Instance.
void flexcan_fd_set_timing_config(flexcan_handle_t *handle, const flexcan_timing_config_t *arbitrPhaseConfig, const flexcan_timing_config_t *dataPhaseConfig)
Setting FlexCAN FD protocol timing characteristic.
void flexcan_clear_err_status_flag(flexcan_handle_t *handle, uint32_t mask)
Clear all error interrupt status.
flexcan_frame_type
FlexCAN frame type.
Definition: sdrv_flexcan.h:93
@ FLEXCAN_FrameTypeData
Definition: sdrv_flexcan.h:94
@ FLEXCAN_FrameTypeRemote
Definition: sdrv_flexcan.h:95
flexcan_fd_data_size
Definition: sdrv_flexcan.h:60
@ CAN_FD_32BYTES_PER_MB
Definition: sdrv_flexcan.h:63
@ CAN_FD_16BYTES_PER_MB
Definition: sdrv_flexcan.h:62
@ CAN_FD_8BYTES_PER_MB
Definition: sdrv_flexcan.h:61
@ CAN_FD_64BYTES_PER_MB
Definition: sdrv_flexcan.h:64
struct flexcan_rx_fifo_filter_table flexcan_rx_fifo_filter_table_t
flexcan_rx_fifo_priority
Definition: sdrv_flexcan.h:86
@ FLEXCAN_RxFifoPrioLow
Definition: sdrv_flexcan.h:87
@ FLEXCAN_RxFifoPrioHigh
Definition: sdrv_flexcan.h:89
flexcan_status_e flexcan_read_rx_fifo(flexcan_handle_t *handle, flexcan_frame_t *rxFrame)
Read a FlexCAN Message from Rx FIFO.
void flexcan_set_rx_fifo_config(flexcan_handle_t *handle, const flexcan_rx_fifo_config_t *config)
Configure the FlexCAN Rx FIFO.
_flexcan_interrupt_enable
FlexCAN interrupt configuration structure, default settings all disabled.
Definition: sdrv_flexcan.h:392
@ FLEXCAN_RxWarningInterruptEnable
Definition: sdrv_flexcan.h:397
@ FLEXCAN_TxWarningInterruptEnable
Definition: sdrv_flexcan.h:399
@ FLEXCAN_BusOffInterruptEnable
Definition: sdrv_flexcan.h:393
@ FLEXCAN_WakeUpInterruptEnable
Definition: sdrv_flexcan.h:401
@ FLEXCAN_ErrorInterruptEnable
Definition: sdrv_flexcan.h:395
uint8_t flexcan_get_mb_state(flexcan_handle_t *handle, uint8_t mbIdx)
Get MB state.
uint32_t flexcan_read_mb_int_status(flexcan_handle_t *handle, uint8_t mbIdx)
Read MB interrupt status.
flexcan_pn_filter_selection_e
Pretended Networking matching schemes.
Definition: sdrv_flexcan.h:143
@ FLEXCAN_FILTER_MATCH_RANGE
Definition: sdrv_flexcan.h:149
@ FLEXCAN_FILTER_MATCH_EXACT
Definition: sdrv_flexcan.h:144
@ FLEXCAN_FILTER_MATCH_GEQ
Definition: sdrv_flexcan.h:145
@ FLEXCAN_FILTER_MATCH_LEQ
Definition: sdrv_flexcan.h:147
flexcan_status_e flexcan_freeze(flexcan_handle_t *handle, bool freeze)
Enter or exit freeze mode.
flexcan_frame_format
FlexCAN frame format.
Definition: sdrv_flexcan.h:99
@ FLEXCAN_EXTEND_FRAME
Definition: sdrv_flexcan.h:101
@ FLEXCAN_STANDARD_FRAME
Definition: sdrv_flexcan.h:100
flexcan_status_e flexcan_init(flexcan_handle_t *handle, const flexcan_config_t *config)
Initializes a FlexCAN instance.
flexcan_status_e flexcan_write_tx_mb(flexcan_handle_t *handle, uint8_t mbIdx, const flexcan_frame_t *txFrame, uint8_t padding_val)
Write FlexCAN Message to Transmit Message Buffer.
flexcan_clock_source
FlexCAN clock source.
Definition: sdrv_flexcan.h:68
@ FLEXCAN_ClkSrcPeri
Definition: sdrv_flexcan.h:71
@ FLEXCAN_ClkSrcOsc
Definition: sdrv_flexcan.h:69
void flexcan_set_rx_mb_config(flexcan_handle_t *handle, uint8_t mbIdx, const flexcan_rx_mb_config_t *config)
Configure a FlexCAN Receive Message Buffer.
void flexcan_set_rx_individual_mask(flexcan_handle_t *handle, uint8_t maskIdx, uint32_t mask)
Set the FlexCAN Receive Individual Mask.
void flexcan_create_handle(flexcan_handle_t *handle, uint8_t controller_id, void *reg_base, uint8_t irq_num, flexcan_transfer_callback_t callback, void *userData)
Initialize the FlexCAN handle.
_flexcan_status
FlexCAN transfer status.
Definition: sdrv_flexcan.h:275
@ FLEXCAN_RX_FIFO_OVERFLOW
Definition: sdrv_flexcan.h:296
@ FLEXCAN_WAKEUP_MATCH
Definition: sdrv_flexcan.h:306
@ FLEXCAN_RX_FIFO_WARNING
Definition: sdrv_flexcan.h:298
@ FLEXCAN_TX_SWITCH_TO_RX
Definition: sdrv_flexcan.h:283
@ FLEXCAN_TX_BUSY
Definition: sdrv_flexcan.h:279
@ FLEXCAN_RX_FIFO_BUSY
Definition: sdrv_flexcan.h:292
@ FLEXCAN_ERROR_STATUS
Definition: sdrv_flexcan.h:301
@ FLEXCAN_RX_OVERFLOW
Definition: sdrv_flexcan.h:290
@ FLEXCAN_WAKEUP_TIMEOUT
Definition: sdrv_flexcan.h:303
@ FLEXCAN_RX_BUSY
Definition: sdrv_flexcan.h:286
@ FLEXCAN_SUCCESS
Definition: sdrv_flexcan.h:276
@ FLEXCAN_FAIL
Definition: sdrv_flexcan.h:277
@ FLEXCAN_RX_IDLE
Definition: sdrv_flexcan.h:288
@ FLEXCAN_UNHANDLED
Definition: sdrv_flexcan.h:309
@ FLEXCAN_RX_FIFO_IDLE
Definition: sdrv_flexcan.h:294
@ FLEXCAN_TX_IDLE
Definition: sdrv_flexcan.h:281
uint32_t flexcan_get_mb_iflag(flexcan_handle_t *handle, uint8_t msgBufId)
Get mailbox interrupt flag.
void flexcan_abort_mb_send(flexcan_handle_t *handle, uint8_t mbIdx)
Abort interrupt driven message send process.
void flexcan_abort_mb_receive(flexcan_handle_t *handle, uint8_t mbIdx)
Abort interrupt driven message receive process.
flexcan_status_e flexcan_receive_fifo_nonblocking(flexcan_handle_t *handle, flexcan_fifo_transfer_t *xfer)
Receive message from Rx FIFO using IRQ.
void flexcan_set_rx_mb_global_mask(flexcan_handle_t *handle, uint32_t mask)
Set the FlexCAN Receive Message Buffer Global Mask.
flexcan_status_e flexcan_enable(flexcan_handle_t *handle, bool enable)
Enables or disable the FlexCAN module operation.
flexcan_status_e flexcan_request_sleep(flexcan_handle_t *handle, bool request)
Enter or exit lowpower mode.
void flexcan_set_rx_fifo_global_mask(flexcan_handle_t *handle, uint32_t mask)
Set the FlexCAN Receive FIFO Global Mask.
void flexcan_disable_interrupts(flexcan_handle_t *handle, uint32_t mask)
Disable FlexCAN interrupts according to provided mask.
enum _flexcan_status flexcan_status_e
FlexCAN transfer status.
struct _flexcan_rx_mb_config flexcan_rx_mb_config_t
FlexCAN Receive Message Buffer configuration structure.
flexcan_status_e flexcan_send_nonblocking(flexcan_handle_t *handle, flexcan_mb_transfer_t *xfer, uint8_t padding_val)
send message using IRQ
enum flexcan_frame_format flexcan_frame_format_e
FlexCAN frame format.
flexcan_status_e flexcan_receive_nonblocking(flexcan_handle_t *handle, flexcan_mb_transfer_t *xfer)
Receive message using IRQ.
flexcan_rx_fifo_filter_type
Definition: sdrv_flexcan.h:75
@ FLEXCAN_RxFifoFilterTypeC
Definition: sdrv_flexcan.h:81
@ FLEXCAN_RxFifoFilterTypeA
Definition: sdrv_flexcan.h:76
@ FLEXCAN_RxFifoFilterTypeB
Definition: sdrv_flexcan.h:78
@ FLEXCAN_RxFifoFilterTypeD
Definition: sdrv_flexcan.h:83
flexcan_pn_filter_combination_e
Pretended Networking filtering combinations.
Definition: sdrv_flexcan.h:133
@ FLEXCAN_FILTER_ID_NTIMES
Definition: sdrv_flexcan.h:136
@ FLEXCAN_FILTER_ID
Definition: sdrv_flexcan.h:134
@ FLEXCAN_FILTER_ID_PAYLOAD
Definition: sdrv_flexcan.h:135
@ FLEXCAN_FILTER_ID_PAYLOAD_NTIMES
Definition: sdrv_flexcan.h:138
struct _flexcan_frame flexcan_frame_t
enum flexcan_clock_source flexcan_clock_source_e
FlexCAN clock source.
enum flexcan_rx_fifo_filter_type flexcan_rx_fifo_filter_type_e
struct _flexcan_fifo_transfer flexcan_fifo_transfer_t
FlexCAN Rx FIFO transfer.
flexcan_controller_id
Definition: sdrv_flexcan.h:313
@ FLEXCAN23
Definition: sdrv_flexcan.h:336
@ FLEXCAN4
Definition: sdrv_flexcan.h:317
@ FLEXCAN1
Definition: sdrv_flexcan.h:314
@ FLEXCAN5
Definition: sdrv_flexcan.h:318
@ FLEXCAN13
Definition: sdrv_flexcan.h:326
@ FLEXCAN22
Definition: sdrv_flexcan.h:335
@ FLEXCAN19
Definition: sdrv_flexcan.h:332
@ FLEXCAN11
Definition: sdrv_flexcan.h:324
@ FLEXCAN14
Definition: sdrv_flexcan.h:327
@ FLEXCAN7
Definition: sdrv_flexcan.h:320
@ FLEXCAN9
Definition: sdrv_flexcan.h:322
@ FLEXCAN10
Definition: sdrv_flexcan.h:323
@ MAX_FLEXCAN_CH
Definition: sdrv_flexcan.h:338
@ FLEXCAN6
Definition: sdrv_flexcan.h:319
@ FLEXCAN12
Definition: sdrv_flexcan.h:325
@ FLEXCAN21
Definition: sdrv_flexcan.h:334
@ FLEXCAN17
Definition: sdrv_flexcan.h:330
@ FLEXCAN18
Definition: sdrv_flexcan.h:331
@ FLEXCAN2
Definition: sdrv_flexcan.h:315
@ FLEXCAN8
Definition: sdrv_flexcan.h:321
@ FLEXCAN3
Definition: sdrv_flexcan.h:316
@ FLEXCAN16
Definition: sdrv_flexcan.h:329
@ FLEXCAN20
Definition: sdrv_flexcan.h:333
@ FLEXCAN15
Definition: sdrv_flexcan.h:328
@ FLEXCAN24
Definition: sdrv_flexcan.h:337
enum flexcan_fd_data_size flexcan_fd_data_size_e
void flexcan_abort_receive_fifo(flexcan_handle_t *handle)
Abort interrupt driven message receive from Rx FIFO process.
enum flexcan_frame_type flexcan_frame_type_e
FlexCAN frame type.
void flexcan_deinit(flexcan_handle_t *handle)
De-initializes a FlexCAN instance.
void flexcan_set_tx_mb_config(flexcan_handle_t *handle, uint8_t mbIdx, bool tx_by_interrupt)
Configure a FlexCAN Transmit Message Buffer.
void flexcan_enable_interrupts(flexcan_handle_t *handle, uint32_t mask)
Enable FlexCAN interrupts according to provided mask.
void flexcan_classic_set_timing_config(flexcan_handle_t *handle, const flexcan_timing_config_t *config)
Setting FlexCAN classic protocol timing characteristic.
enum flexcan_rx_fifo_priority flexcan_rx_fifo_priority_e
flexcan_status_e flexcan_read_rx_mb(flexcan_handle_t *handle, uint8_t mbIdx, flexcan_frame_t *rxFrame)
Read a FlexCAN Message from Receive Message Buffer.
void flexcan_read_wmb(flexcan_handle_t *handle, uint8_t wmbIndex, flexcan_frame_t *wmb)
read a can message from wakeup message buffer.
struct _flexcan_mb_transfer flexcan_mb_transfer_t
FlexCAN Message Buffer transfer.
uint32_t flexcan_get_error_status(flexcan_handle_t *handle)
Get reported error conditons detected in the reception and transmission.
enum flexcan_controller_id flexcan_controller_id_e
FlexCAN Rx FIFO transfer.
Definition: sdrv_flexcan.h:266
flexcan_frame_t * pFrame
Definition: sdrv_flexcan.h:268
Definition: sdrv_flexcan.h:238
uint32_t idHit
Definition: sdrv_flexcan.h:250
uint8_t * dataBuffer
Definition: sdrv_flexcan.h:255
uint32_t format
Definition: sdrv_flexcan.h:246
uint32_t id
Definition: sdrv_flexcan.h:241
uint32_t isCANFDBrsEn
Definition: sdrv_flexcan.h:248
uint32_t isCANFDFrame
Definition: sdrv_flexcan.h:247
uint32_t type
Definition: sdrv_flexcan.h:245
uint16_t timestamp
Definition: sdrv_flexcan.h:240
uint32_t reserved2
Definition: sdrv_flexcan.h:252
uint32_t length
Definition: sdrv_flexcan.h:244
uint32_t reserved1
Definition: sdrv_flexcan.h:249
FlexCAN handle structure.
Definition: sdrv_flexcan.h:357
void * base_addr
Definition: sdrv_flexcan.h:363
volatile uint8_t rxFifoState
Definition: sdrv_flexcan.h:376
void * userData
Definition: sdrv_flexcan.h:367
flexcan_frame_t *volatile pRxFifoFrameBuf
Definition: sdrv_flexcan.h:372
flexcan_transfer_callback_t callback
Definition: sdrv_flexcan.h:365
uint8_t controller_id
Definition: sdrv_flexcan.h:359
uint32_t mb_used_mask[2]
Definition: sdrv_flexcan.h:378
uint8_t irq_num
Definition: sdrv_flexcan.h:361
volatile uint8_t mbState[FLEXCAN_HAS_MESSAGE_BUFFER_MAX_NUMBER]
Definition: sdrv_flexcan.h:374
flexcan_frame_t *volatile pMBFrameBuf[FLEXCAN_HAS_MESSAGE_BUFFER_MAX_NUMBER]
Definition: sdrv_flexcan.h:370
bool enableDoze
Definition: sdrv_flexcan.h:380
FlexCAN Message Buffer transfer.
Definition: sdrv_flexcan.h:260
flexcan_frame_t * pFrame
Definition: sdrv_flexcan.h:261
uint8_t mbIdx
Definition: sdrv_flexcan.h:262
FlexCAN Receive Message Buffer configuration structure.
Definition: sdrv_flexcan.h:231
flexcan_frame_type_e type
Definition: sdrv_flexcan.h:235
flexcan_frame_format_e format
Definition: sdrv_flexcan.h:234
uint32_t id
Definition: sdrv_flexcan.h:232
Definition: sdrv_flexcan.h:193
bool enableCANFD
Definition: sdrv_flexcan.h:202
flexcan_clock_source_e clkSrc
Definition: sdrv_flexcan.h:194
bool enableLBUFTransmittedFirst
Definition: sdrv_flexcan.h:197
bool enableLoopBack
Definition: sdrv_flexcan.h:196
flexcan_pn_config_t pnet_cfg
Definition: sdrv_flexcan.h:207
bool enableSelfWakeup
Definition: sdrv_flexcan.h:199
flexcan_timing_config_t nominalBitTiming
Definition: sdrv_flexcan.h:204
uint8_t maxMbNum
Definition: sdrv_flexcan.h:195
flexcan_timing_config_t dataBitTiming
Definition: sdrv_flexcan.h:205
bool enablePretendedNetworking
Definition: sdrv_flexcan.h:203
flexcan_fd_config_t can_fd_cfg
Definition: sdrv_flexcan.h:206
bool enableDoze
Definition: sdrv_flexcan.h:201
bool enableListenOnly
Definition: sdrv_flexcan.h:198
bool enableIndividMask
Definition: sdrv_flexcan.h:200
Definition: sdrv_flexcan.h:105
uint8_t enableBRS
Definition: sdrv_flexcan.h:107
uint8_t enableTDC
Definition: sdrv_flexcan.h:108
uint8_t TDCOffset
Definition: sdrv_flexcan.h:109
flexcan_fd_data_size_e r0_mb_data_size
Definition: sdrv_flexcan.h:110
uint8_t enableISOCANFD
Definition: sdrv_flexcan.h:106
flexcan_fd_data_size_e r1_mb_data_size
Definition: sdrv_flexcan.h:111
Pretended Networking configuration structure.
Definition: sdrv_flexcan.h:155
flexcan_pn_id_filter_t idFilter2
Definition: sdrv_flexcan.h:169
flexcan_pn_filter_selection_e payloadFilterType
Definition: sdrv_flexcan.h:174
flexcan_pn_filter_combination_e filterComb
Definition: sdrv_flexcan.h:165
flexcan_pn_filter_selection_e idFilterType
Definition: sdrv_flexcan.h:172
uint16_t numMatches
Definition: sdrv_flexcan.h:160
bool wakeUpMatch
Definition: sdrv_flexcan.h:158
uint16_t matchTimeout
Definition: sdrv_flexcan.h:162
flexcan_pn_id_filter_t idFilter1
Definition: sdrv_flexcan.h:167
bool wakeUpTimeout
Definition: sdrv_flexcan.h:156
flexcan_pn_payload_filter_t payloadFilter
Definition: sdrv_flexcan.h:176
Pretended Networking ID filter.
Definition: sdrv_flexcan.h:115
bool remoteFrame
Definition: sdrv_flexcan.h:117
bool extendedId
Definition: sdrv_flexcan.h:116
uint32_t id
Definition: sdrv_flexcan.h:118
Pretended Networking payload filter.
Definition: sdrv_flexcan.h:122
uint8_t dlcHigh
Definition: sdrv_flexcan.h:124
uint8_t dlcLow
Definition: sdrv_flexcan.h:123
Definition: sdrv_flexcan.h:215
uint8_t idFilterNum
Definition: sdrv_flexcan.h:216
flexcan_rx_fifo_filter_type_e idFilterType
Definition: sdrv_flexcan.h:217
flexcan_rx_fifo_filter_table_t * filter_tab
Definition: sdrv_flexcan.h:219
flexcan_rx_fifo_priority_e priority
Definition: sdrv_flexcan.h:218
Definition: sdrv_flexcan.h:210
uint32_t filter_mask
Definition: sdrv_flexcan.h:212
uint32_t filter_code
Definition: sdrv_flexcan.h:211
Definition: sdrv_flexcan.h:185
uint8_t phaseSeg2
Definition: sdrv_flexcan.h:190
uint8_t phaseSeg1
Definition: sdrv_flexcan.h:189
uint8_t rJumpwidth
Definition: sdrv_flexcan.h:187
uint16_t preDivider
Definition: sdrv_flexcan.h:186
uint8_t propSeg
Definition: sdrv_flexcan.h:188