RTEMS 6.1-rc4
Loading...
Searching...
No Matches
stm32h7xx_hal_fdcan.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_FDCAN_H
21#define STM32H7xx_HAL_FDCAN_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32h7xx_hal_def.h"
29
30#if defined(FDCAN1)
31
40/* Exported types ------------------------------------------------------------*/
49typedef enum
50{
51 HAL_FDCAN_STATE_RESET = 0x00U,
52 HAL_FDCAN_STATE_READY = 0x01U,
53 HAL_FDCAN_STATE_BUSY = 0x02U,
54 HAL_FDCAN_STATE_ERROR = 0x03U
55} HAL_FDCAN_StateTypeDef;
56
60typedef struct
61{
62 uint32_t FrameFormat;
65 uint32_t Mode;
68 FunctionalState AutoRetransmission;
71 FunctionalState TransmitPause;
74 FunctionalState ProtocolException;
77 uint32_t NominalPrescaler;
81 uint32_t NominalSyncJumpWidth;
86 uint32_t NominalTimeSeg1;
89 uint32_t NominalTimeSeg2;
92 uint32_t DataPrescaler;
96 uint32_t DataSyncJumpWidth;
101 uint32_t DataTimeSeg1;
104 uint32_t DataTimeSeg2;
107 uint32_t MessageRAMOffset;
110 uint32_t StdFiltersNbr;
113 uint32_t ExtFiltersNbr;
116 uint32_t RxFifo0ElmtsNbr;
119 uint32_t RxFifo0ElmtSize;
122 uint32_t RxFifo1ElmtsNbr;
125 uint32_t RxFifo1ElmtSize;
128 uint32_t RxBuffersNbr;
131 uint32_t RxBufferSize;
134 uint32_t TxEventsNbr;
137 uint32_t TxBuffersNbr;
140 uint32_t TxFifoQueueElmtsNbr;
143 uint32_t TxFifoQueueMode;
146 uint32_t TxElmtSize;
149} FDCAN_InitTypeDef;
150
154typedef struct
155{
156 uint32_t ClockCalibration;
159 uint32_t ClockDivider;
163 uint32_t MinOscClkPeriods;
167 uint32_t CalFieldLength;
170 uint32_t TimeQuantaPerBitTime;
173 uint32_t WatchdogStartValue;
177} FDCAN_ClkCalUnitTypeDef;
178
182typedef struct
183{
184 uint32_t IdType;
187 uint32_t FilterIndex;
192 uint32_t FilterType;
199 uint32_t FilterConfig;
202 uint32_t FilterID1;
207 uint32_t FilterID2;
214 uint32_t RxBufferIndex;
220 uint32_t IsCalibrationMsg;
228} FDCAN_FilterTypeDef;
229
233typedef struct
234{
235 uint32_t Identifier;
240 uint32_t IdType;
244 uint32_t TxFrameType;
247 uint32_t DataLength;
250 uint32_t ErrorStateIndicator;
253 uint32_t BitRateSwitch;
257 uint32_t FDFormat;
261 uint32_t TxEventFifoControl;
264 uint32_t MessageMarker;
268} FDCAN_TxHeaderTypeDef;
269
273typedef struct
274{
275 uint32_t Identifier;
280 uint32_t IdType;
283 uint32_t RxFrameType;
286 uint32_t DataLength;
289 uint32_t ErrorStateIndicator;
292 uint32_t BitRateSwitch;
296 uint32_t FDFormat;
300 uint32_t RxTimestamp;
304 uint32_t FilterIndex;
311 uint32_t IsFilterMatchingFrame;
317} FDCAN_RxHeaderTypeDef;
318
322typedef struct
323{
324 uint32_t Identifier;
329 uint32_t IdType;
332 uint32_t TxFrameType;
335 uint32_t DataLength;
338 uint32_t ErrorStateIndicator;
341 uint32_t BitRateSwitch;
345 uint32_t FDFormat;
349 uint32_t TxTimestamp;
353 uint32_t MessageMarker;
357 uint32_t EventType;
360} FDCAN_TxEventFifoTypeDef;
361
365typedef struct
366{
367 uint32_t FilterList;
372 uint32_t FilterIndex;
377 uint32_t MessageStorage;
380 uint32_t MessageIndex;
387} FDCAN_HpMsgStatusTypeDef;
388
392typedef struct
393{
394 uint32_t LastErrorCode;
397 uint32_t DataLastErrorCode;
401 uint32_t Activity;
404 uint32_t ErrorPassive;
409 uint32_t Warning;
416 uint32_t BusOff;
421 uint32_t RxESIflag;
426 uint32_t RxBRSflag;
431 uint32_t RxFDFflag;
437 uint32_t ProtocolException;
442 uint32_t TDCvalue;
445} FDCAN_ProtocolStatusTypeDef;
446
450typedef struct
451{
452 uint32_t TxErrorCnt;
455 uint32_t RxErrorCnt;
458 uint32_t RxErrorPassive;
465 uint32_t ErrorLogging;
472} FDCAN_ErrorCountersTypeDef;
473
477typedef struct
478{
479 uint32_t OperationMode;
482 uint32_t GapEnable;
487 uint32_t TimeMaster;
490 uint32_t SyncDevLimit;
495 uint32_t InitRefTrigOffset;
498 uint32_t ExternalClkSync;
503 uint32_t AppWdgLimit;
511 uint32_t GlobalTimeFilter;
516 uint32_t ClockCalibration;
521 uint32_t EvtTrigPolarity;
526 uint32_t BasicCyclesNbr;
529 uint32_t CycleStartSync;
532 uint32_t TxEnableWindow;
535 uint32_t ExpTxTrigNbr;
540 uint32_t TURNumerator;
544 uint32_t TURDenominator;
547 uint32_t TriggerMemoryNbr;
550 uint32_t StopWatchTrigSel;
553 uint32_t EventTrigSel;
556} FDCAN_TT_ConfigTypeDef;
557
561typedef struct
562{
563 uint32_t TriggerIndex;
566 uint32_t TimeMark;
569 uint32_t RepeatFactor;
572 uint32_t StartCycle;
576 uint32_t TmEventInt;
581 uint32_t TmEventExt;
586 uint32_t TriggerType;
589 uint32_t FilterType;
592 uint32_t TxBufferIndex;
597 uint32_t FilterIndex;
604} FDCAN_TriggerTypeDef;
605
609typedef struct
610{
611 uint32_t ErrorLevel;
614 uint32_t MasterState;
617 uint32_t SyncState;
620 uint32_t GTimeQuality;
626 uint32_t ClockQuality;
632 uint32_t RefTrigOffset;
635 uint32_t GTimeDiscPending;
640 uint32_t GapFinished;
645 uint32_t MasterPriority;
648 uint32_t GapStarted;
653 uint32_t WaitForEvt;
658 uint32_t AppWdgEvt;
663 uint32_t ECSPending;
668 uint32_t PhaseLock;
673} FDCAN_TTOperationStatusTypeDef;
674
678typedef struct
679{
680 uint32_t StandardFilterSA;
683 uint32_t ExtendedFilterSA;
686 uint32_t RxFIFO0SA;
689 uint32_t RxFIFO1SA;
692 uint32_t RxBufferSA;
695 uint32_t TxEventFIFOSA;
698 uint32_t TxBufferSA;
701 uint32_t TxFIFOQSA;
704 uint32_t TTMemorySA;
707 uint32_t EndAddress;
710} FDCAN_MsgRamAddressTypeDef;
711
715#if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
716typedef struct __FDCAN_HandleTypeDef
717#else
718typedef struct
719#endif /* USE_HAL_FDCAN_REGISTER_CALLBACKS */
720{
721 FDCAN_GlobalTypeDef *Instance;
723 TTCAN_TypeDef *ttcan;
725 FDCAN_InitTypeDef Init;
727 FDCAN_MsgRamAddressTypeDef msgRam;
729 uint32_t LatestTxFifoQRequest;
732 __IO HAL_FDCAN_StateTypeDef State;
734 HAL_LockTypeDef Lock;
736 __IO uint32_t ErrorCode;
738#if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
739 void (* ClockCalibrationCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
740 void (* TxEventFifoCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
741 void (* RxFifo0Callback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
742 void (* RxFifo1Callback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
743 void (* TxFifoEmptyCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
744 void (* TxBufferCompleteCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
745 void (* TxBufferAbortCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
746 void (* RxBufferNewMessageCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
747 void (* HighPriorityMessageCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
748 void (* TimestampWraparoundCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
749 void (* TimeoutOccurredCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
750 void (* ErrorCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
751 void (* ErrorStatusCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
752 void (* TT_ScheduleSyncCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
753 void (* TT_TimeMarkCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
754 void (* TT_StopWatchCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
755 void (* TT_GlobalTimeCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
757 void (* MspInitCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
758 void (* MspDeInitCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
759#endif /* USE_HAL_FDCAN_REGISTER_CALLBACKS */
760
761} FDCAN_HandleTypeDef;
762
763#if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
767typedef enum
768{
769 HAL_FDCAN_TX_FIFO_EMPTY_CB_ID = 0x00U,
770 HAL_FDCAN_RX_BUFFER_NEW_MSG_CB_ID = 0x01U,
771 HAL_FDCAN_HIGH_PRIO_MESSAGE_CB_ID = 0x02U,
772 HAL_FDCAN_TIMESTAMP_WRAPAROUND_CB_ID = 0x03U,
773 HAL_FDCAN_TIMEOUT_OCCURRED_CB_ID = 0x04U,
774 HAL_FDCAN_ERROR_CALLBACK_CB_ID = 0x05U,
776 HAL_FDCAN_MSPINIT_CB_ID = 0x06U,
777 HAL_FDCAN_MSPDEINIT_CB_ID = 0x07U,
779} HAL_FDCAN_CallbackIDTypeDef;
780
784typedef void (*pFDCAN_CallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan);
785typedef void (*pFDCAN_ClockCalibrationCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
786typedef void (*pFDCAN_TxEventFifoCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
787typedef void (*pFDCAN_RxFifo0CallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
788typedef void (*pFDCAN_RxFifo1CallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
789typedef void (*pFDCAN_TxBufferCompleteCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
790typedef void (*pFDCAN_TxBufferAbortCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
791typedef void (*pFDCAN_ErrorStatusCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
792typedef void (*pFDCAN_TT_ScheduleSyncCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
793typedef void (*pFDCAN_TT_TimeMarkCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
794typedef void (*pFDCAN_TT_StopWatchCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
795typedef void (*pFDCAN_TT_GlobalTimeCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
796#endif /* USE_HAL_FDCAN_REGISTER_CALLBACKS */
797
802/* Exported constants --------------------------------------------------------*/
812#define HAL_FDCAN_ERROR_NONE ((uint32_t)0x00000000U)
813#define HAL_FDCAN_ERROR_TIMEOUT ((uint32_t)0x00000001U)
814#define HAL_FDCAN_ERROR_NOT_INITIALIZED ((uint32_t)0x00000002U)
815#define HAL_FDCAN_ERROR_NOT_READY ((uint32_t)0x00000004U)
816#define HAL_FDCAN_ERROR_NOT_STARTED ((uint32_t)0x00000008U)
817#define HAL_FDCAN_ERROR_NOT_SUPPORTED ((uint32_t)0x00000010U)
818#define HAL_FDCAN_ERROR_PARAM ((uint32_t)0x00000020U)
819#define HAL_FDCAN_ERROR_PENDING ((uint32_t)0x00000040U)
820#define HAL_FDCAN_ERROR_RAM_ACCESS ((uint32_t)0x00000080U)
821#define HAL_FDCAN_ERROR_FIFO_EMPTY ((uint32_t)0x00000100U)
822#define HAL_FDCAN_ERROR_FIFO_FULL ((uint32_t)0x00000200U)
823#define HAL_FDCAN_ERROR_LOG_OVERFLOW FDCAN_IR_ELO
824#define HAL_FDCAN_ERROR_RAM_WDG FDCAN_IR_WDI
825#define HAL_FDCAN_ERROR_PROTOCOL_ARBT FDCAN_IR_PEA
826#define HAL_FDCAN_ERROR_PROTOCOL_DATA FDCAN_IR_PED
827#define HAL_FDCAN_ERROR_RESERVED_AREA FDCAN_IR_ARA
828#define HAL_FDCAN_ERROR_TT_GLOBAL_TIME FDCAN_TTIR_GTE
829#define HAL_FDCAN_ERROR_TT_TX_UNDERFLOW FDCAN_TTIR_TXU
830#define HAL_FDCAN_ERROR_TT_TX_OVERFLOW FDCAN_TTIR_TXO
831#define HAL_FDCAN_ERROR_TT_SCHEDULE1 FDCAN_TTIR_SE1
832#define HAL_FDCAN_ERROR_TT_SCHEDULE2 FDCAN_TTIR_SE2
833#define HAL_FDCAN_ERROR_TT_NO_INIT_REF FDCAN_TTIR_IWT
834#define HAL_FDCAN_ERROR_TT_NO_REF FDCAN_TTIR_WT
835#define HAL_FDCAN_ERROR_TT_APPL_WDG FDCAN_TTIR_AW
836#define HAL_FDCAN_ERROR_TT_CONFIG FDCAN_TTIR_CER
838#if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
839#define HAL_FDCAN_ERROR_INVALID_CALLBACK ((uint32_t)0x00000100U)
840#endif /* USE_HAL_FDCAN_REGISTER_CALLBACKS */
849#define FDCAN_FRAME_CLASSIC ((uint32_t)0x00000000U)
850#define FDCAN_FRAME_FD_NO_BRS ((uint32_t)FDCAN_CCCR_FDOE)
851#define FDCAN_FRAME_FD_BRS ((uint32_t)(FDCAN_CCCR_FDOE | FDCAN_CCCR_BRSE))
860#define FDCAN_MODE_NORMAL ((uint32_t)0x00000000U)
861#define FDCAN_MODE_RESTRICTED_OPERATION ((uint32_t)0x00000001U)
862#define FDCAN_MODE_BUS_MONITORING ((uint32_t)0x00000002U)
863#define FDCAN_MODE_INTERNAL_LOOPBACK ((uint32_t)0x00000003U)
864#define FDCAN_MODE_EXTERNAL_LOOPBACK ((uint32_t)0x00000004U)
873#define FDCAN_CLOCK_CALIBRATION_DISABLE ((uint32_t)0x00000000U)
874#define FDCAN_CLOCK_CALIBRATION_ENABLE ((uint32_t)0x00000001U)
883#define FDCAN_CLOCK_DIV1 ((uint32_t)0x00000000U)
884#define FDCAN_CLOCK_DIV2 ((uint32_t)0x00000001U)
885#define FDCAN_CLOCK_DIV4 ((uint32_t)0x00000002U)
886#define FDCAN_CLOCK_DIV6 ((uint32_t)0x00000003U)
887#define FDCAN_CLOCK_DIV8 ((uint32_t)0x00000004U)
888#define FDCAN_CLOCK_DIV10 ((uint32_t)0x00000005U)
889#define FDCAN_CLOCK_DIV12 ((uint32_t)0x00000006U)
890#define FDCAN_CLOCK_DIV14 ((uint32_t)0x00000007U)
891#define FDCAN_CLOCK_DIV16 ((uint32_t)0x00000008U)
892#define FDCAN_CLOCK_DIV18 ((uint32_t)0x00000009U)
893#define FDCAN_CLOCK_DIV20 ((uint32_t)0x0000000AU)
894#define FDCAN_CLOCK_DIV22 ((uint32_t)0x0000000BU)
895#define FDCAN_CLOCK_DIV24 ((uint32_t)0x0000000CU)
896#define FDCAN_CLOCK_DIV26 ((uint32_t)0x0000000DU)
897#define FDCAN_CLOCK_DIV28 ((uint32_t)0x0000000EU)
898#define FDCAN_CLOCK_DIV30 ((uint32_t)0x0000000FU)
907#define FDCAN_CALIB_FIELD_LENGTH_32 ((uint32_t)0x00000000U)
908#define FDCAN_CALIB_FIELD_LENGTH_64 ((uint32_t)FDCANCCU_CCFG_CFL)
917#define FDCAN_CLOCK_NOT_CALIBRATED ((uint32_t)0x00000000U)
918#define FDCAN_CLOCK_BASIC_CALIBRATED ((uint32_t)0x40000000U)
919#define FDCAN_CLOCK_PRECISION_CALIBRATED ((uint32_t)0x80000000U)
928#define FDCAN_CALIB_TIME_QUANTA_COUNTER ((uint32_t)0x00000000U)
929#define FDCAN_CALIB_CLOCK_PERIOD_COUNTER ((uint32_t)0x00000001U)
930#define FDCAN_CALIB_WATCHDOG_COUNTER ((uint32_t)0x00000002U)
939#define FDCAN_DATA_BYTES_8 ((uint32_t)0x00000004U)
940#define FDCAN_DATA_BYTES_12 ((uint32_t)0x00000005U)
941#define FDCAN_DATA_BYTES_16 ((uint32_t)0x00000006U)
942#define FDCAN_DATA_BYTES_20 ((uint32_t)0x00000007U)
943#define FDCAN_DATA_BYTES_24 ((uint32_t)0x00000008U)
944#define FDCAN_DATA_BYTES_32 ((uint32_t)0x0000000AU)
945#define FDCAN_DATA_BYTES_48 ((uint32_t)0x0000000EU)
946#define FDCAN_DATA_BYTES_64 ((uint32_t)0x00000012U)
955#define FDCAN_TX_FIFO_OPERATION ((uint32_t)0x00000000U)
956#define FDCAN_TX_QUEUE_OPERATION ((uint32_t)FDCAN_TXBC_TFQM)
965#define FDCAN_STANDARD_ID ((uint32_t)0x00000000U)
966#define FDCAN_EXTENDED_ID ((uint32_t)0x40000000U)
975#define FDCAN_DATA_FRAME ((uint32_t)0x00000000U)
976#define FDCAN_REMOTE_FRAME ((uint32_t)0x20000000U)
985#define FDCAN_DLC_BYTES_0 ((uint32_t)0x00000000U)
986#define FDCAN_DLC_BYTES_1 ((uint32_t)0x00000001U)
987#define FDCAN_DLC_BYTES_2 ((uint32_t)0x00000002U)
988#define FDCAN_DLC_BYTES_3 ((uint32_t)0x00000003U)
989#define FDCAN_DLC_BYTES_4 ((uint32_t)0x00000004U)
990#define FDCAN_DLC_BYTES_5 ((uint32_t)0x00000005U)
991#define FDCAN_DLC_BYTES_6 ((uint32_t)0x00000006U)
992#define FDCAN_DLC_BYTES_7 ((uint32_t)0x00000007U)
993#define FDCAN_DLC_BYTES_8 ((uint32_t)0x00000008U)
994#define FDCAN_DLC_BYTES_12 ((uint32_t)0x00000009U)
995#define FDCAN_DLC_BYTES_16 ((uint32_t)0x0000000AU)
996#define FDCAN_DLC_BYTES_20 ((uint32_t)0x0000000BU)
997#define FDCAN_DLC_BYTES_24 ((uint32_t)0x0000000CU)
998#define FDCAN_DLC_BYTES_32 ((uint32_t)0x0000000DU)
999#define FDCAN_DLC_BYTES_48 ((uint32_t)0x0000000EU)
1000#define FDCAN_DLC_BYTES_64 ((uint32_t)0x0000000FU)
1009#define FDCAN_ESI_ACTIVE ((uint32_t)0x00000000U)
1010#define FDCAN_ESI_PASSIVE ((uint32_t)0x80000000U)
1019#define FDCAN_BRS_OFF ((uint32_t)0x00000000U)
1020#define FDCAN_BRS_ON ((uint32_t)0x00100000U)
1029#define FDCAN_CLASSIC_CAN ((uint32_t)0x00000000U)
1030#define FDCAN_FD_CAN ((uint32_t)0x00200000U)
1039#define FDCAN_NO_TX_EVENTS ((uint32_t)0x00000000U)
1040#define FDCAN_STORE_TX_EVENTS ((uint32_t)0x00800000U)
1049#define FDCAN_FILTER_RANGE ((uint32_t)0x00000000U)
1050#define FDCAN_FILTER_DUAL ((uint32_t)0x00000001U)
1051#define FDCAN_FILTER_MASK ((uint32_t)0x00000002U)
1052#define FDCAN_FILTER_RANGE_NO_EIDM ((uint32_t)0x00000003U)
1061#define FDCAN_FILTER_DISABLE ((uint32_t)0x00000000U)
1062#define FDCAN_FILTER_TO_RXFIFO0 ((uint32_t)0x00000001U)
1063#define FDCAN_FILTER_TO_RXFIFO1 ((uint32_t)0x00000002U)
1064#define FDCAN_FILTER_REJECT ((uint32_t)0x00000003U)
1065#define FDCAN_FILTER_HP ((uint32_t)0x00000004U)
1066#define FDCAN_FILTER_TO_RXFIFO0_HP ((uint32_t)0x00000005U)
1067#define FDCAN_FILTER_TO_RXFIFO1_HP ((uint32_t)0x00000006U)
1068#define FDCAN_FILTER_TO_RXBUFFER ((uint32_t)0x00000007U)
1077#define FDCAN_TX_BUFFER0 ((uint32_t)0x00000001U)
1078#define FDCAN_TX_BUFFER1 ((uint32_t)0x00000002U)
1079#define FDCAN_TX_BUFFER2 ((uint32_t)0x00000004U)
1080#define FDCAN_TX_BUFFER3 ((uint32_t)0x00000008U)
1081#define FDCAN_TX_BUFFER4 ((uint32_t)0x00000010U)
1082#define FDCAN_TX_BUFFER5 ((uint32_t)0x00000020U)
1083#define FDCAN_TX_BUFFER6 ((uint32_t)0x00000040U)
1084#define FDCAN_TX_BUFFER7 ((uint32_t)0x00000080U)
1085#define FDCAN_TX_BUFFER8 ((uint32_t)0x00000100U)
1086#define FDCAN_TX_BUFFER9 ((uint32_t)0x00000200U)
1087#define FDCAN_TX_BUFFER10 ((uint32_t)0x00000400U)
1088#define FDCAN_TX_BUFFER11 ((uint32_t)0x00000800U)
1089#define FDCAN_TX_BUFFER12 ((uint32_t)0x00001000U)
1090#define FDCAN_TX_BUFFER13 ((uint32_t)0x00002000U)
1091#define FDCAN_TX_BUFFER14 ((uint32_t)0x00004000U)
1092#define FDCAN_TX_BUFFER15 ((uint32_t)0x00008000U)
1093#define FDCAN_TX_BUFFER16 ((uint32_t)0x00010000U)
1094#define FDCAN_TX_BUFFER17 ((uint32_t)0x00020000U)
1095#define FDCAN_TX_BUFFER18 ((uint32_t)0x00040000U)
1096#define FDCAN_TX_BUFFER19 ((uint32_t)0x00080000U)
1097#define FDCAN_TX_BUFFER20 ((uint32_t)0x00100000U)
1098#define FDCAN_TX_BUFFER21 ((uint32_t)0x00200000U)
1099#define FDCAN_TX_BUFFER22 ((uint32_t)0x00400000U)
1100#define FDCAN_TX_BUFFER23 ((uint32_t)0x00800000U)
1101#define FDCAN_TX_BUFFER24 ((uint32_t)0x01000000U)
1102#define FDCAN_TX_BUFFER25 ((uint32_t)0x02000000U)
1103#define FDCAN_TX_BUFFER26 ((uint32_t)0x04000000U)
1104#define FDCAN_TX_BUFFER27 ((uint32_t)0x08000000U)
1105#define FDCAN_TX_BUFFER28 ((uint32_t)0x10000000U)
1106#define FDCAN_TX_BUFFER29 ((uint32_t)0x20000000U)
1107#define FDCAN_TX_BUFFER30 ((uint32_t)0x40000000U)
1108#define FDCAN_TX_BUFFER31 ((uint32_t)0x80000000U)
1117#define FDCAN_RX_FIFO0 ((uint32_t)0x00000040U)
1118#define FDCAN_RX_FIFO1 ((uint32_t)0x00000041U)
1119#define FDCAN_RX_BUFFER0 ((uint32_t)0x00000000U)
1120#define FDCAN_RX_BUFFER1 ((uint32_t)0x00000001U)
1121#define FDCAN_RX_BUFFER2 ((uint32_t)0x00000002U)
1122#define FDCAN_RX_BUFFER3 ((uint32_t)0x00000003U)
1123#define FDCAN_RX_BUFFER4 ((uint32_t)0x00000004U)
1124#define FDCAN_RX_BUFFER5 ((uint32_t)0x00000005U)
1125#define FDCAN_RX_BUFFER6 ((uint32_t)0x00000006U)
1126#define FDCAN_RX_BUFFER7 ((uint32_t)0x00000007U)
1127#define FDCAN_RX_BUFFER8 ((uint32_t)0x00000008U)
1128#define FDCAN_RX_BUFFER9 ((uint32_t)0x00000009U)
1129#define FDCAN_RX_BUFFER10 ((uint32_t)0x0000000AU)
1130#define FDCAN_RX_BUFFER11 ((uint32_t)0x0000000BU)
1131#define FDCAN_RX_BUFFER12 ((uint32_t)0x0000000CU)
1132#define FDCAN_RX_BUFFER13 ((uint32_t)0x0000000DU)
1133#define FDCAN_RX_BUFFER14 ((uint32_t)0x0000000EU)
1134#define FDCAN_RX_BUFFER15 ((uint32_t)0x0000000FU)
1135#define FDCAN_RX_BUFFER16 ((uint32_t)0x00000010U)
1136#define FDCAN_RX_BUFFER17 ((uint32_t)0x00000011U)
1137#define FDCAN_RX_BUFFER18 ((uint32_t)0x00000012U)
1138#define FDCAN_RX_BUFFER19 ((uint32_t)0x00000013U)
1139#define FDCAN_RX_BUFFER20 ((uint32_t)0x00000014U)
1140#define FDCAN_RX_BUFFER21 ((uint32_t)0x00000015U)
1141#define FDCAN_RX_BUFFER22 ((uint32_t)0x00000016U)
1142#define FDCAN_RX_BUFFER23 ((uint32_t)0x00000017U)
1143#define FDCAN_RX_BUFFER24 ((uint32_t)0x00000018U)
1144#define FDCAN_RX_BUFFER25 ((uint32_t)0x00000019U)
1145#define FDCAN_RX_BUFFER26 ((uint32_t)0x0000001AU)
1146#define FDCAN_RX_BUFFER27 ((uint32_t)0x0000001BU)
1147#define FDCAN_RX_BUFFER28 ((uint32_t)0x0000001CU)
1148#define FDCAN_RX_BUFFER29 ((uint32_t)0x0000001DU)
1149#define FDCAN_RX_BUFFER30 ((uint32_t)0x0000001EU)
1150#define FDCAN_RX_BUFFER31 ((uint32_t)0x0000001FU)
1151#define FDCAN_RX_BUFFER32 ((uint32_t)0x00000020U)
1152#define FDCAN_RX_BUFFER33 ((uint32_t)0x00000021U)
1153#define FDCAN_RX_BUFFER34 ((uint32_t)0x00000022U)
1154#define FDCAN_RX_BUFFER35 ((uint32_t)0x00000023U)
1155#define FDCAN_RX_BUFFER36 ((uint32_t)0x00000024U)
1156#define FDCAN_RX_BUFFER37 ((uint32_t)0x00000025U)
1157#define FDCAN_RX_BUFFER38 ((uint32_t)0x00000026U)
1158#define FDCAN_RX_BUFFER39 ((uint32_t)0x00000027U)
1159#define FDCAN_RX_BUFFER40 ((uint32_t)0x00000028U)
1160#define FDCAN_RX_BUFFER41 ((uint32_t)0x00000029U)
1161#define FDCAN_RX_BUFFER42 ((uint32_t)0x0000002AU)
1162#define FDCAN_RX_BUFFER43 ((uint32_t)0x0000002BU)
1163#define FDCAN_RX_BUFFER44 ((uint32_t)0x0000002CU)
1164#define FDCAN_RX_BUFFER45 ((uint32_t)0x0000002DU)
1165#define FDCAN_RX_BUFFER46 ((uint32_t)0x0000002EU)
1166#define FDCAN_RX_BUFFER47 ((uint32_t)0x0000002FU)
1167#define FDCAN_RX_BUFFER48 ((uint32_t)0x00000030U)
1168#define FDCAN_RX_BUFFER49 ((uint32_t)0x00000031U)
1169#define FDCAN_RX_BUFFER50 ((uint32_t)0x00000032U)
1170#define FDCAN_RX_BUFFER51 ((uint32_t)0x00000033U)
1171#define FDCAN_RX_BUFFER52 ((uint32_t)0x00000034U)
1172#define FDCAN_RX_BUFFER53 ((uint32_t)0x00000035U)
1173#define FDCAN_RX_BUFFER54 ((uint32_t)0x00000036U)
1174#define FDCAN_RX_BUFFER55 ((uint32_t)0x00000037U)
1175#define FDCAN_RX_BUFFER56 ((uint32_t)0x00000038U)
1176#define FDCAN_RX_BUFFER57 ((uint32_t)0x00000039U)
1177#define FDCAN_RX_BUFFER58 ((uint32_t)0x0000003AU)
1178#define FDCAN_RX_BUFFER59 ((uint32_t)0x0000003BU)
1179#define FDCAN_RX_BUFFER60 ((uint32_t)0x0000003CU)
1180#define FDCAN_RX_BUFFER61 ((uint32_t)0x0000003DU)
1181#define FDCAN_RX_BUFFER62 ((uint32_t)0x0000003EU)
1182#define FDCAN_RX_BUFFER63 ((uint32_t)0x0000003FU)
1191#define FDCAN_TX_EVENT ((uint32_t)0x00400000U)
1192#define FDCAN_TX_IN_SPITE_OF_ABORT ((uint32_t)0x00800000U)
1201#define FDCAN_HP_STORAGE_NO_FIFO ((uint32_t)0x00000000U)
1202#define FDCAN_HP_STORAGE_MSG_LOST ((uint32_t)0x00000040U)
1203#define FDCAN_HP_STORAGE_RXFIFO0 ((uint32_t)0x00000080U)
1204#define FDCAN_HP_STORAGE_RXFIFO1 ((uint32_t)0x000000C0U)
1213#define FDCAN_PROTOCOL_ERROR_NONE ((uint32_t)0x00000000U)
1214#define FDCAN_PROTOCOL_ERROR_STUFF ((uint32_t)0x00000001U)
1215#define FDCAN_PROTOCOL_ERROR_FORM ((uint32_t)0x00000002U)
1216#define FDCAN_PROTOCOL_ERROR_ACK ((uint32_t)0x00000003U)
1217#define FDCAN_PROTOCOL_ERROR_BIT1 ((uint32_t)0x00000004U)
1218#define FDCAN_PROTOCOL_ERROR_BIT0 ((uint32_t)0x00000005U)
1219#define FDCAN_PROTOCOL_ERROR_CRC ((uint32_t)0x00000006U)
1220#define FDCAN_PROTOCOL_ERROR_NO_CHANGE ((uint32_t)0x00000007U)
1229#define FDCAN_COM_STATE_SYNC ((uint32_t)0x00000000U)
1230#define FDCAN_COM_STATE_IDLE ((uint32_t)0x00000008U)
1231#define FDCAN_COM_STATE_RX ((uint32_t)0x00000010U)
1232#define FDCAN_COM_STATE_TX ((uint32_t)0x00000018U)
1241#define FDCAN_CFG_TX_EVENT_FIFO ((uint32_t)0x00000000U)
1242#define FDCAN_CFG_RX_FIFO0 ((uint32_t)0x00000001U)
1243#define FDCAN_CFG_RX_FIFO1 ((uint32_t)0x00000002U)
1252#define FDCAN_RX_FIFO_BLOCKING ((uint32_t)0x00000000U)
1253#define FDCAN_RX_FIFO_OVERWRITE ((uint32_t)0x00000001U)
1262#define FDCAN_ACCEPT_IN_RX_FIFO0 ((uint32_t)0x00000000U)
1263#define FDCAN_ACCEPT_IN_RX_FIFO1 ((uint32_t)0x00000001U)
1264#define FDCAN_REJECT ((uint32_t)0x00000002U)
1273#define FDCAN_FILTER_REMOTE ((uint32_t)0x00000000U)
1274#define FDCAN_REJECT_REMOTE ((uint32_t)0x00000001U)
1283#define FDCAN_INTERRUPT_LINE0 ((uint32_t)0x00000001U)
1284#define FDCAN_INTERRUPT_LINE1 ((uint32_t)0x00000002U)
1293#define FDCAN_TIMESTAMP_INTERNAL ((uint32_t)0x00000001U)
1294#define FDCAN_TIMESTAMP_EXTERNAL ((uint32_t)0x00000002U)
1303#define FDCAN_TIMESTAMP_PRESC_1 ((uint32_t)0x00000000U)
1304#define FDCAN_TIMESTAMP_PRESC_2 ((uint32_t)0x00010000U)
1305#define FDCAN_TIMESTAMP_PRESC_3 ((uint32_t)0x00020000U)
1306#define FDCAN_TIMESTAMP_PRESC_4 ((uint32_t)0x00030000U)
1307#define FDCAN_TIMESTAMP_PRESC_5 ((uint32_t)0x00040000U)
1308#define FDCAN_TIMESTAMP_PRESC_6 ((uint32_t)0x00050000U)
1309#define FDCAN_TIMESTAMP_PRESC_7 ((uint32_t)0x00060000U)
1310#define FDCAN_TIMESTAMP_PRESC_8 ((uint32_t)0x00070000U)
1311#define FDCAN_TIMESTAMP_PRESC_9 ((uint32_t)0x00080000U)
1312#define FDCAN_TIMESTAMP_PRESC_10 ((uint32_t)0x00090000U)
1313#define FDCAN_TIMESTAMP_PRESC_11 ((uint32_t)0x000A0000U)
1314#define FDCAN_TIMESTAMP_PRESC_12 ((uint32_t)0x000B0000U)
1315#define FDCAN_TIMESTAMP_PRESC_13 ((uint32_t)0x000C0000U)
1316#define FDCAN_TIMESTAMP_PRESC_14 ((uint32_t)0x000D0000U)
1317#define FDCAN_TIMESTAMP_PRESC_15 ((uint32_t)0x000E0000U)
1318#define FDCAN_TIMESTAMP_PRESC_16 ((uint32_t)0x000F0000U)
1327#define FDCAN_TIMEOUT_CONTINUOUS ((uint32_t)0x00000000U)
1328#define FDCAN_TIMEOUT_TX_EVENT_FIFO ((uint32_t)0x00000002U)
1329#define FDCAN_TIMEOUT_RX_FIFO0 ((uint32_t)0x00000004U)
1330#define FDCAN_TIMEOUT_RX_FIFO1 ((uint32_t)0x00000006U)
1339#define FDCAN_TT_REF_MESSAGE_NO_PAYLOAD ((uint32_t)0x00000000U)
1340#define FDCAN_TT_REF_MESSAGE_ADD_PAYLOAD ((uint32_t)FDCAN_TTRMC_RMPS)
1349#define FDCAN_TT_REPEAT_EVERY_CYCLE ((uint32_t)0x00000000U)
1350#define FDCAN_TT_REPEAT_EVERY_2ND_CYCLE ((uint32_t)0x00000002U)
1351#define FDCAN_TT_REPEAT_EVERY_4TH_CYCLE ((uint32_t)0x00000004U)
1352#define FDCAN_TT_REPEAT_EVERY_8TH_CYCLE ((uint32_t)0x00000008U)
1353#define FDCAN_TT_REPEAT_EVERY_16TH_CYCLE ((uint32_t)0x00000010U)
1354#define FDCAN_TT_REPEAT_EVERY_32ND_CYCLE ((uint32_t)0x00000020U)
1355#define FDCAN_TT_REPEAT_EVERY_64TH_CYCLE ((uint32_t)0x00000040U)
1364#define FDCAN_TT_TX_REF_TRIGGER ((uint32_t)0x00000000U)
1365#define FDCAN_TT_TX_REF_TRIGGER_GAP ((uint32_t)0x00000001U)
1366#define FDCAN_TT_TX_TRIGGER_SINGLE ((uint32_t)0x00000002U)
1367#define FDCAN_TT_TX_TRIGGER_CONTINUOUS ((uint32_t)0x00000003U)
1368#define FDCAN_TT_TX_TRIGGER_ARBITRATION ((uint32_t)0x00000004U)
1369#define FDCAN_TT_TX_TRIGGER_MERGED ((uint32_t)0x00000005U)
1370#define FDCAN_TT_WATCH_TRIGGER ((uint32_t)0x00000006U)
1371#define FDCAN_TT_WATCH_TRIGGER_GAP ((uint32_t)0x00000007U)
1372#define FDCAN_TT_RX_TRIGGER ((uint32_t)0x00000008U)
1373#define FDCAN_TT_TIME_BASE_TRIGGER ((uint32_t)0x00000009U)
1374#define FDCAN_TT_END_OF_LIST ((uint32_t)0x0000000AU)
1383#define FDCAN_TT_TM_NO_INTERNAL_EVENT ((uint32_t)0x00000000U)
1384#define FDCAN_TT_TM_GEN_INTERNAL_EVENT ((uint32_t)0x00000020U)
1393#define FDCAN_TT_TM_NO_EXTERNAL_EVENT ((uint32_t)0x00000000U)
1394#define FDCAN_TT_TM_GEN_EXTERNAL_EVENT ((uint32_t)0x00000010U)
1403#define FDCAN_TT_COMMUNICATION_LEVEL1 ((uint32_t)0x00000001U)
1404#define FDCAN_TT_COMMUNICATION_LEVEL2 ((uint32_t)0x00000002U)
1405#define FDCAN_TT_COMMUNICATION_LEVEL0 ((uint32_t)0x00000003U)
1414#define FDCAN_STRICTLY_TT_OPERATION ((uint32_t)0x00000000U)
1415#define FDCAN_EXT_EVT_SYNC_TT_OPERATION ((uint32_t)FDCAN_TTOCF_GEN)
1424#define FDCAN_TT_SLAVE ((uint32_t)0x00000000U)
1425#define FDCAN_TT_POTENTIAL_MASTER ((uint32_t)FDCAN_TTOCF_TM)
1434#define FDCAN_TT_EXT_CLK_SYNC_DISABLE ((uint32_t)0x00000000U)
1435#define FDCAN_TT_EXT_CLK_SYNC_ENABLE ((uint32_t)FDCAN_TTOCF_EECS)
1444#define FDCAN_TT_GLOB_TIME_FILT_DISABLE ((uint32_t)0x00000000U)
1445#define FDCAN_TT_GLOB_TIME_FILT_ENABLE ((uint32_t)FDCAN_TTOCF_EGTF)
1454#define FDCAN_TT_AUTO_CLK_CALIB_DISABLE ((uint32_t)0x00000000U)
1455#define FDCAN_TT_AUTO_CLK_CALIB_ENABLE ((uint32_t)FDCAN_TTOCF_ECC)
1464#define FDCAN_TT_EVT_TRIG_POL_RISING ((uint32_t)0x00000000U)
1465#define FDCAN_TT_EVT_TRIG_POL_FALLING ((uint32_t)FDCAN_TTOCF_EVTP)
1474#define FDCAN_TT_CYCLES_PER_MATRIX_1 ((uint32_t)0x00000000U)
1475#define FDCAN_TT_CYCLES_PER_MATRIX_2 ((uint32_t)0x00000001U)
1476#define FDCAN_TT_CYCLES_PER_MATRIX_4 ((uint32_t)0x00000003U)
1477#define FDCAN_TT_CYCLES_PER_MATRIX_8 ((uint32_t)0x00000007U)
1478#define FDCAN_TT_CYCLES_PER_MATRIX_16 ((uint32_t)0x0000000FU)
1479#define FDCAN_TT_CYCLES_PER_MATRIX_32 ((uint32_t)0x0000001FU)
1480#define FDCAN_TT_CYCLES_PER_MATRIX_64 ((uint32_t)0x0000003FU)
1489#define FDCAN_TT_NO_SYNC_PULSE ((uint32_t)0x00000000U)
1490#define FDCAN_TT_SYNC_BASIC_CYCLE_START ((uint32_t)0x00000040U)
1491#define FDCAN_TT_SYNC_MATRIX_START ((uint32_t)0x00000080U)
1500#define FDCAN_TT_STOP_WATCH_TRIGGER_0 ((uint32_t)0x00000000U)
1501#define FDCAN_TT_STOP_WATCH_TRIGGER_1 ((uint32_t)0x00000001U)
1502#define FDCAN_TT_STOP_WATCH_TRIGGER_2 ((uint32_t)0x00000002U)
1503#define FDCAN_TT_STOP_WATCH_TRIGGER_3 ((uint32_t)0x00000003U)
1512#define FDCAN_TT_EVENT_TRIGGER_0 ((uint32_t)0x00000000U)
1513#define FDCAN_TT_EVENT_TRIGGER_1 ((uint32_t)0x00000010U)
1514#define FDCAN_TT_EVENT_TRIGGER_2 ((uint32_t)0x00000020U)
1515#define FDCAN_TT_EVENT_TRIGGER_3 ((uint32_t)0x00000030U)
1524#define FDCAN_TT_STOP_WATCH_DISABLED ((uint32_t)0x00000000U)
1525#define FDCAN_TT_STOP_WATCH_CYCLE_TIME ((uint32_t)0x00000008U)
1526#define FDCAN_TT_STOP_WATCH_LOCAL_TIME ((uint32_t)0x00000010U)
1527#define FDCAN_TT_STOP_WATCH_GLOBAL_TIME ((uint32_t)0x00000018U)
1536#define FDCAN_TT_STOP_WATCH_RISING ((uint32_t)0x00000000U)
1537#define FDCAN_TT_STOP_WATCH_FALLING ((uint32_t)0x00000004U)
1546#define FDCAN_TT_REG_TIMEMARK_DIABLED ((uint32_t)0x00000000U)
1547#define FDCAN_TT_REG_TIMEMARK_CYC_TIME ((uint32_t)0x00000040U)
1548#define FDCAN_TT_REG_TIMEMARK_LOC_TIME ((uint32_t)0x00000080U)
1549#define FDCAN_TT_REG_TIMEMARK_GLO_TIME ((uint32_t)0x000000C0U)
1558#define FDCAN_TT_NO_ERROR ((uint32_t)0x00000000U)
1559#define FDCAN_TT_WARNING ((uint32_t)0x00000001U)
1560#define FDCAN_TT_ERROR ((uint32_t)0x00000002U)
1561#define FDCAN_TT_SEVERE_ERROR ((uint32_t)0x00000003U)
1570#define FDCAN_TT_MASTER_OFF ((uint32_t)0x00000000U)
1571#define FDCAN_TT_TIME_SLAVE ((uint32_t)0x00000004U)
1572#define FDCAN_TT_BACKUP_TIME_MASTER ((uint32_t)0x00000008U)
1573#define FDCAN_TT_CURRENT_TIME_MASTER ((uint32_t)0x0000000CU)
1582#define FDCAN_TT_OUT_OF_SYNC ((uint32_t)0x00000000U)
1583#define FDCAN_TT_SYNCHRONIZING ((uint32_t)0x00000010U)
1584#define FDCAN_TT_IN_GAP ((uint32_t)0x00000020U)
1585#define FDCAN_TT_IN_SCHEDULE ((uint32_t)0x00000030U)
1594#define FDCAN_IR_MASK ((uint32_t)0x3FCFFFFFU)
1595#define CCU_IR_MASK ((uint32_t)0xC0000000U)
1604#define FDCAN_FLAG_TX_COMPLETE FDCAN_IR_TC
1605#define FDCAN_FLAG_TX_ABORT_COMPLETE FDCAN_IR_TCF
1606#define FDCAN_FLAG_TX_FIFO_EMPTY FDCAN_IR_TFE
1607#define FDCAN_FLAG_RX_HIGH_PRIORITY_MSG FDCAN_IR_HPM
1608#define FDCAN_FLAG_RX_BUFFER_NEW_MESSAGE FDCAN_IR_DRX
1609#define FDCAN_FLAG_TX_EVT_FIFO_ELT_LOST FDCAN_IR_TEFL
1610#define FDCAN_FLAG_TX_EVT_FIFO_FULL FDCAN_IR_TEFF
1611#define FDCAN_FLAG_TX_EVT_FIFO_WATERMARK FDCAN_IR_TEFW
1612#define FDCAN_FLAG_TX_EVT_FIFO_NEW_DATA FDCAN_IR_TEFN
1613#define FDCAN_FLAG_RX_FIFO0_MESSAGE_LOST FDCAN_IR_RF0L
1614#define FDCAN_FLAG_RX_FIFO0_FULL FDCAN_IR_RF0F
1615#define FDCAN_FLAG_RX_FIFO0_WATERMARK FDCAN_IR_RF0W
1616#define FDCAN_FLAG_RX_FIFO0_NEW_MESSAGE FDCAN_IR_RF0N
1617#define FDCAN_FLAG_RX_FIFO1_MESSAGE_LOST FDCAN_IR_RF1L
1618#define FDCAN_FLAG_RX_FIFO1_FULL FDCAN_IR_RF1F
1619#define FDCAN_FLAG_RX_FIFO1_WATERMARK FDCAN_IR_RF1W
1620#define FDCAN_FLAG_RX_FIFO1_NEW_MESSAGE FDCAN_IR_RF1N
1621#define FDCAN_FLAG_RAM_ACCESS_FAILURE FDCAN_IR_MRAF
1622#define FDCAN_FLAG_ERROR_LOGGING_OVERFLOW FDCAN_IR_ELO
1623#define FDCAN_FLAG_ERROR_PASSIVE FDCAN_IR_EP
1624#define FDCAN_FLAG_ERROR_WARNING FDCAN_IR_EW
1625#define FDCAN_FLAG_BUS_OFF FDCAN_IR_BO
1626#define FDCAN_FLAG_RAM_WATCHDOG FDCAN_IR_WDI
1627#define FDCAN_FLAG_ARB_PROTOCOL_ERROR FDCAN_IR_PEA
1628#define FDCAN_FLAG_DATA_PROTOCOL_ERROR FDCAN_IR_PED
1629#define FDCAN_FLAG_RESERVED_ADDRESS_ACCESS FDCAN_IR_ARA
1630#define FDCAN_FLAG_TIMESTAMP_WRAPAROUND FDCAN_IR_TSW
1631#define FDCAN_FLAG_TIMEOUT_OCCURRED FDCAN_IR_TOO
1632#define FDCAN_FLAG_CALIB_STATE_CHANGED (FDCANCCU_IR_CSC << 30)
1633#define FDCAN_FLAG_CALIB_WATCHDOG_EVENT (FDCANCCU_IR_CWE << 30)
1647#define FDCAN_IT_TX_COMPLETE FDCAN_IE_TCE
1648#define FDCAN_IT_TX_ABORT_COMPLETE FDCAN_IE_TCFE
1649#define FDCAN_IT_TX_FIFO_EMPTY FDCAN_IE_TFEE
1658#define FDCAN_IT_RX_HIGH_PRIORITY_MSG FDCAN_IE_HPME
1659#define FDCAN_IT_RX_BUFFER_NEW_MESSAGE FDCAN_IE_DRXE
1668#define FDCAN_IT_TIMESTAMP_WRAPAROUND FDCAN_IE_TSWE
1669#define FDCAN_IT_TIMEOUT_OCCURRED FDCAN_IE_TOOE
1678#define FDCAN_IT_CALIB_STATE_CHANGED (FDCANCCU_IE_CSCE << 30)
1679#define FDCAN_IT_CALIB_WATCHDOG_EVENT (FDCANCCU_IE_CWEE << 30)
1688#define FDCAN_IT_TX_EVT_FIFO_ELT_LOST FDCAN_IE_TEFLE
1689#define FDCAN_IT_TX_EVT_FIFO_FULL FDCAN_IE_TEFFE
1690#define FDCAN_IT_TX_EVT_FIFO_WATERMARK FDCAN_IE_TEFWE
1691#define FDCAN_IT_TX_EVT_FIFO_NEW_DATA FDCAN_IE_TEFNE
1700#define FDCAN_IT_RX_FIFO0_MESSAGE_LOST FDCAN_IE_RF0LE
1701#define FDCAN_IT_RX_FIFO0_FULL FDCAN_IE_RF0FE
1702#define FDCAN_IT_RX_FIFO0_WATERMARK FDCAN_IE_RF0WE
1703#define FDCAN_IT_RX_FIFO0_NEW_MESSAGE FDCAN_IE_RF0NE
1712#define FDCAN_IT_RX_FIFO1_MESSAGE_LOST FDCAN_IE_RF1LE
1713#define FDCAN_IT_RX_FIFO1_FULL FDCAN_IE_RF1FE
1714#define FDCAN_IT_RX_FIFO1_WATERMARK FDCAN_IE_RF1WE
1715#define FDCAN_IT_RX_FIFO1_NEW_MESSAGE FDCAN_IE_RF1NE
1724#define FDCAN_IT_RAM_ACCESS_FAILURE FDCAN_IE_MRAFE
1725#define FDCAN_IT_ERROR_LOGGING_OVERFLOW FDCAN_IE_ELOE
1726#define FDCAN_IT_RAM_WATCHDOG FDCAN_IE_WDIE
1727#define FDCAN_IT_ARB_PROTOCOL_ERROR FDCAN_IE_PEAE
1728#define FDCAN_IT_DATA_PROTOCOL_ERROR FDCAN_IE_PEDE
1729#define FDCAN_IT_RESERVED_ADDRESS_ACCESS FDCAN_IE_ARAE
1738#define FDCAN_IT_ERROR_PASSIVE FDCAN_IE_EPE
1739#define FDCAN_IT_ERROR_WARNING FDCAN_IE_EWE
1740#define FDCAN_IT_BUS_OFF FDCAN_IE_BOE
1753#define FDCAN_TT_FLAG_BASIC_CYCLE_START FDCAN_TTIR_SBC
1754#define FDCAN_TT_FLAG_MATRIX_CYCLE_START FDCAN_TTIR_SMC
1755#define FDCAN_TT_FLAG_SYNC_MODE_CHANGE FDCAN_TTIR_CSM
1756#define FDCAN_TT_FLAG_START_OF_GAP FDCAN_TTIR_SOG
1757#define FDCAN_TT_FLAG_REG_TIME_MARK FDCAN_TTIR_RTMI
1758#define FDCAN_TT_FLAG_TRIG_TIME_MARK FDCAN_TTIR_TTMI
1759#define FDCAN_TT_FLAG_STOP_WATCH FDCAN_TTIR_SWE
1760#define FDCAN_TT_FLAG_GLOBAL_TIME_WRAP FDCAN_TTIR_GTW
1761#define FDCAN_TT_FLAG_GLOBAL_TIME_DISC FDCAN_TTIR_GTD
1762#define FDCAN_TT_FLAG_GLOBAL_TIME_ERROR FDCAN_TTIR_GTE
1763#define FDCAN_TT_FLAG_TX_COUNT_UNDERFLOW FDCAN_TTIR_TXU
1764#define FDCAN_TT_FLAG_TX_COUNT_OVERFLOW FDCAN_TTIR_TXO
1765#define FDCAN_TT_FLAG_SCHEDULING_ERROR_1 FDCAN_TTIR_SE1
1766#define FDCAN_TT_FLAG_SCHEDULING_ERROR_2 FDCAN_TTIR_SE2
1767#define FDCAN_TT_FLAG_ERROR_LEVEL_CHANGE FDCAN_TTIR_ELC
1768#define FDCAN_TT_FLAG_INIT_WATCH_TRIGGER FDCAN_TTIR_IWT
1769#define FDCAN_TT_FLAG_WATCH_TRIGGER FDCAN_TTIR_WT
1770#define FDCAN_TT_FLAG_APPLICATION_WATCHDOG FDCAN_TTIR_AW
1771#define FDCAN_TT_FLAG_CONFIG_ERROR FDCAN_TTIR_CER
1785#define FDCAN_TT_IT_BASIC_CYCLE_START FDCAN_TTIE_SBCE
1786#define FDCAN_TT_IT_MATRIX_CYCLE_START FDCAN_TTIE_SMCE
1787#define FDCAN_TT_IT_SYNC_MODE_CHANGE FDCAN_TTIE_CSME
1788#define FDCAN_TT_IT_START_OF_GAP FDCAN_TTIE_SOGE
1797#define FDCAN_TT_IT_REG_TIME_MARK FDCAN_TTIE_RTMIE
1798#define FDCAN_TT_IT_TRIG_TIME_MARK FDCAN_TTIE_TTMIE
1807#define FDCAN_TT_IT_STOP_WATCH FDCAN_TTIE_SWEE
1816#define FDCAN_TT_IT_GLOBAL_TIME_WRAP FDCAN_TTIE_GTWE
1817#define FDCAN_TT_IT_GLOBAL_TIME_DISC FDCAN_TTIE_GTDE
1826#define FDCAN_TT_IT_GLOBAL_TIME_ERROR FDCAN_TTIE_GTEE
1827#define FDCAN_TT_IT_TX_COUNT_UNDERFLOW FDCAN_TTIE_TXUE
1828#define FDCAN_TT_IT_TX_COUNT_OVERFLOW FDCAN_TTIE_TXOE
1829#define FDCAN_TT_IT_SCHEDULING_ERROR_1 FDCAN_TTIE_SE1E
1830#define FDCAN_TT_IT_SCHEDULING_ERROR_2 FDCAN_TTIE_SE2E
1831#define FDCAN_TT_IT_ERROR_LEVEL_CHANGE FDCAN_TTIE_ELCE
1840#define FDCAN_TT_IT_INIT_WATCH_TRIGGER FDCAN_TTIE_IWTE
1841#define FDCAN_TT_IT_WATCH_TRIGGER FDCAN_TTIE_WTE
1842#define FDCAN_TT_IT_APPLICATION_WATCHDOG FDCAN_TTIE_AWE
1843#define FDCAN_TT_IT_CONFIG_ERROR FDCAN_TTIE_CERE
1856/* Exported macro ------------------------------------------------------------*/
1866#if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
1867#define __HAL_FDCAN_RESET_HANDLE_STATE(__HANDLE__) do{ \
1868 (__HANDLE__)->State = HAL_FDCAN_STATE_RESET; \
1869 (__HANDLE__)->MspInitCallback = NULL; \
1870 (__HANDLE__)->MspDeInitCallback = NULL; \
1871 } while(0)
1872#else
1873#define __HAL_FDCAN_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_FDCAN_STATE_RESET)
1874#endif /* USE_HAL_FDCAN_REGISTER_CALLBACKS */
1875
1883#define __HAL_FDCAN_ENABLE_IT(__HANDLE__, __INTERRUPT__) \
1884 do{ \
1885 (__HANDLE__)->Instance->IE |= ((__INTERRUPT__) & FDCAN_IR_MASK); \
1886 FDCAN_CCU->IE |= (((__INTERRUPT__) & CCU_IR_MASK) >> 30); \
1887 }while(0)
1888
1889
1897#define __HAL_FDCAN_DISABLE_IT(__HANDLE__, __INTERRUPT__) \
1898 do{ \
1899 ((__HANDLE__)->Instance->IE) &= ~((__INTERRUPT__) & FDCAN_IR_MASK); \
1900 FDCAN_CCU->IE &= ~(((__INTERRUPT__) & CCU_IR_MASK) >> 30); \
1901 }while(0)
1902
1910#define __HAL_FDCAN_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) < FDCAN_IT_CALIB_WATCHDOG_EVENT) ? \
1911 ((__HANDLE__)->Instance->IR &\
1912 (__INTERRUPT__)) : ((FDCAN_CCU->IR << 30) & (__INTERRUPT__)))
1913
1921#define __HAL_FDCAN_CLEAR_IT(__HANDLE__, __INTERRUPT__) \
1922 do { \
1923 ((__HANDLE__)->Instance->IR) = ((__INTERRUPT__) & FDCAN_IR_MASK); \
1924 FDCAN_CCU->IR = (((__INTERRUPT__) & CCU_IR_MASK) >> 30); \
1925 } while(0);
1926
1934#define __HAL_FDCAN_GET_FLAG(__HANDLE__, __FLAG__) (((__FLAG__) < FDCAN_FLAG_CALIB_WATCHDOG_EVENT) ? \
1935 ((__HANDLE__)->Instance->IR &\
1936 (__FLAG__)) : ((FDCAN_CCU->IR << 30) & (__FLAG__)))
1937
1945#define __HAL_FDCAN_CLEAR_FLAG(__HANDLE__, __FLAG__) \
1946 do { \
1947 ((__HANDLE__)->Instance->IR) = ((__FLAG__) & FDCAN_IR_MASK); \
1948 FDCAN_CCU->IR = (((__FLAG__) & CCU_IR_MASK) >> 30); \
1949 } while(0);
1950
1957#define __HAL_FDCAN_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) < FDCAN_IT_CALIB_WATCHDOG_EVENT) ? \
1958 ((__HANDLE__)->Instance->IE &\
1959 (__INTERRUPT__)) : ((FDCAN_CCU->IE << 30) & \
1960 (__INTERRUPT__)))
1961
1969#define __HAL_FDCAN_TT_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIE) |= (__INTERRUPT__))
1970
1978#define __HAL_FDCAN_TT_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIE) &= ~(__INTERRUPT__))
1979
1987#define __HAL_FDCAN_TT_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIR) & (__INTERRUPT__))
1988
1996#define __HAL_FDCAN_TT_CLEAR_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIR) = (__INTERRUPT__))
1997
2005#define __HAL_FDCAN_TT_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->ttcan->TTIR) & (__FLAG__))
2006
2014#define __HAL_FDCAN_TT_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->ttcan->TTIR) = (__FLAG__))
2015
2022#define __HAL_FDCAN_TT_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIE) & (__INTERRUPT__))
2023
2028/* Exported functions --------------------------------------------------------*/
2036/* Initialization and de-initialization functions *****************************/
2037HAL_StatusTypeDef HAL_FDCAN_Init(FDCAN_HandleTypeDef *hfdcan);
2038HAL_StatusTypeDef HAL_FDCAN_DeInit(FDCAN_HandleTypeDef *hfdcan);
2039void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef *hfdcan);
2040void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef *hfdcan);
2041HAL_StatusTypeDef HAL_FDCAN_EnterPowerDownMode(FDCAN_HandleTypeDef *hfdcan);
2042HAL_StatusTypeDef HAL_FDCAN_ExitPowerDownMode(FDCAN_HandleTypeDef *hfdcan);
2043
2044#if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
2045/* Callbacks Register/UnRegister functions ***********************************/
2046HAL_StatusTypeDef HAL_FDCAN_RegisterCallback(FDCAN_HandleTypeDef *hfdcan, HAL_FDCAN_CallbackIDTypeDef CallbackID,
2047 pFDCAN_CallbackTypeDef pCallback);
2048HAL_StatusTypeDef HAL_FDCAN_UnRegisterCallback(FDCAN_HandleTypeDef *hfdcan, HAL_FDCAN_CallbackIDTypeDef CallbackID);
2049HAL_StatusTypeDef HAL_FDCAN_RegisterClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan,
2050 pFDCAN_ClockCalibrationCallbackTypeDef pCallback);
2051HAL_StatusTypeDef HAL_FDCAN_UnRegisterClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan);
2052HAL_StatusTypeDef HAL_FDCAN_RegisterTxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan,
2053 pFDCAN_TxEventFifoCallbackTypeDef pCallback);
2054HAL_StatusTypeDef HAL_FDCAN_UnRegisterTxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan);
2055HAL_StatusTypeDef HAL_FDCAN_RegisterRxFifo0Callback(FDCAN_HandleTypeDef *hfdcan,
2056 pFDCAN_RxFifo0CallbackTypeDef pCallback);
2057HAL_StatusTypeDef HAL_FDCAN_UnRegisterRxFifo0Callback(FDCAN_HandleTypeDef *hfdcan);
2058HAL_StatusTypeDef HAL_FDCAN_RegisterRxFifo1Callback(FDCAN_HandleTypeDef *hfdcan,
2059 pFDCAN_RxFifo1CallbackTypeDef pCallback);
2060HAL_StatusTypeDef HAL_FDCAN_UnRegisterRxFifo1Callback(FDCAN_HandleTypeDef *hfdcan);
2061HAL_StatusTypeDef HAL_FDCAN_RegisterTxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan,
2062 pFDCAN_TxBufferCompleteCallbackTypeDef pCallback);
2063HAL_StatusTypeDef HAL_FDCAN_UnRegisterTxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan);
2064HAL_StatusTypeDef HAL_FDCAN_RegisterTxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan,
2065 pFDCAN_TxBufferAbortCallbackTypeDef pCallback);
2066HAL_StatusTypeDef HAL_FDCAN_UnRegisterTxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan);
2067HAL_StatusTypeDef HAL_FDCAN_RegisterErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan,
2068 pFDCAN_ErrorStatusCallbackTypeDef pCallback);
2069HAL_StatusTypeDef HAL_FDCAN_UnRegisterErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan);
2070HAL_StatusTypeDef HAL_FDCAN_RegisterTTScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan,
2071 pFDCAN_TT_ScheduleSyncCallbackTypeDef pCallback);
2072HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan);
2073HAL_StatusTypeDef HAL_FDCAN_RegisterTTTimeMarkCallback(FDCAN_HandleTypeDef *hfdcan,
2074 pFDCAN_TT_TimeMarkCallbackTypeDef pCallback);
2075HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTTimeMarkCallback(FDCAN_HandleTypeDef *hfdcan);
2076HAL_StatusTypeDef HAL_FDCAN_RegisterTTStopWatchCallback(FDCAN_HandleTypeDef *hfdcan,
2077 pFDCAN_TT_StopWatchCallbackTypeDef pCallback);
2078HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTStopWatchCallback(FDCAN_HandleTypeDef *hfdcan);
2079HAL_StatusTypeDef HAL_FDCAN_RegisterTTGlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan,
2080 pFDCAN_TT_GlobalTimeCallbackTypeDef pCallback);
2081HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTGlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan);
2082#endif /* USE_HAL_FDCAN_REGISTER_CALLBACKS */
2090/* Configuration functions ****************************************************/
2091HAL_StatusTypeDef HAL_FDCAN_ConfigClockCalibration(FDCAN_HandleTypeDef *hfdcan,
2092 const FDCAN_ClkCalUnitTypeDef *sCcuConfig);
2093uint32_t HAL_FDCAN_GetClockCalibrationState(const FDCAN_HandleTypeDef *hfdcan);
2094HAL_StatusTypeDef HAL_FDCAN_ResetClockCalibrationState(FDCAN_HandleTypeDef *hfdcan);
2095uint32_t HAL_FDCAN_GetClockCalibrationCounter(const FDCAN_HandleTypeDef *hfdcan, uint32_t Counter);
2096HAL_StatusTypeDef HAL_FDCAN_ConfigFilter(FDCAN_HandleTypeDef *hfdcan, const FDCAN_FilterTypeDef *sFilterConfig);
2097HAL_StatusTypeDef HAL_FDCAN_ConfigGlobalFilter(FDCAN_HandleTypeDef *hfdcan, uint32_t NonMatchingStd,
2098 uint32_t NonMatchingExt, uint32_t RejectRemoteStd,
2099 uint32_t RejectRemoteExt);
2100HAL_StatusTypeDef HAL_FDCAN_ConfigExtendedIdMask(FDCAN_HandleTypeDef *hfdcan, uint32_t Mask);
2101HAL_StatusTypeDef HAL_FDCAN_ConfigRxFifoOverwrite(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo, uint32_t OperationMode);
2102HAL_StatusTypeDef HAL_FDCAN_ConfigFifoWatermark(FDCAN_HandleTypeDef *hfdcan, uint32_t FIFO, uint32_t Watermark);
2103HAL_StatusTypeDef HAL_FDCAN_ConfigRamWatchdog(FDCAN_HandleTypeDef *hfdcan, uint32_t CounterStartValue);
2104HAL_StatusTypeDef HAL_FDCAN_ConfigTimestampCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimestampPrescaler);
2105HAL_StatusTypeDef HAL_FDCAN_EnableTimestampCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimestampOperation);
2106HAL_StatusTypeDef HAL_FDCAN_DisableTimestampCounter(FDCAN_HandleTypeDef *hfdcan);
2107uint16_t HAL_FDCAN_GetTimestampCounter(const FDCAN_HandleTypeDef *hfdcan);
2108HAL_StatusTypeDef HAL_FDCAN_ResetTimestampCounter(FDCAN_HandleTypeDef *hfdcan);
2109HAL_StatusTypeDef HAL_FDCAN_ConfigTimeoutCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimeoutOperation,
2110 uint32_t TimeoutPeriod);
2111HAL_StatusTypeDef HAL_FDCAN_EnableTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
2112HAL_StatusTypeDef HAL_FDCAN_DisableTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
2113uint16_t HAL_FDCAN_GetTimeoutCounter(const FDCAN_HandleTypeDef *hfdcan);
2114HAL_StatusTypeDef HAL_FDCAN_ResetTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
2115HAL_StatusTypeDef HAL_FDCAN_ConfigTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan, uint32_t TdcOffset,
2116 uint32_t TdcFilter);
2117HAL_StatusTypeDef HAL_FDCAN_EnableTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan);
2118HAL_StatusTypeDef HAL_FDCAN_DisableTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan);
2119HAL_StatusTypeDef HAL_FDCAN_EnableISOMode(FDCAN_HandleTypeDef *hfdcan);
2120HAL_StatusTypeDef HAL_FDCAN_DisableISOMode(FDCAN_HandleTypeDef *hfdcan);
2121HAL_StatusTypeDef HAL_FDCAN_EnableEdgeFiltering(FDCAN_HandleTypeDef *hfdcan);
2122HAL_StatusTypeDef HAL_FDCAN_DisableEdgeFiltering(FDCAN_HandleTypeDef *hfdcan);
2130/* Control functions **********************************************************/
2131HAL_StatusTypeDef HAL_FDCAN_Start(FDCAN_HandleTypeDef *hfdcan);
2132HAL_StatusTypeDef HAL_FDCAN_Stop(FDCAN_HandleTypeDef *hfdcan);
2133HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxFifoQ(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
2134 const uint8_t *pTxData);
2135HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxBuffer(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
2136 const uint8_t *pTxData, uint32_t BufferIndex);
2137HAL_StatusTypeDef HAL_FDCAN_EnableTxBufferRequest(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndex);
2138uint32_t HAL_FDCAN_GetLatestTxFifoQRequestBuffer(const FDCAN_HandleTypeDef *hfdcan);
2139HAL_StatusTypeDef HAL_FDCAN_AbortTxRequest(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndex);
2140HAL_StatusTypeDef HAL_FDCAN_GetRxMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t RxLocation,
2141 FDCAN_RxHeaderTypeDef *pRxHeader, uint8_t *pRxData);
2142HAL_StatusTypeDef HAL_FDCAN_GetTxEvent(FDCAN_HandleTypeDef *hfdcan, FDCAN_TxEventFifoTypeDef *pTxEvent);
2143HAL_StatusTypeDef HAL_FDCAN_GetHighPriorityMessageStatus(const FDCAN_HandleTypeDef *hfdcan,
2144 FDCAN_HpMsgStatusTypeDef *HpMsgStatus);
2145HAL_StatusTypeDef HAL_FDCAN_GetProtocolStatus(const FDCAN_HandleTypeDef *hfdcan,
2146 FDCAN_ProtocolStatusTypeDef *ProtocolStatus);
2147HAL_StatusTypeDef HAL_FDCAN_GetErrorCounters(const FDCAN_HandleTypeDef *hfdcan,
2148 FDCAN_ErrorCountersTypeDef *ErrorCounters);
2149uint32_t HAL_FDCAN_IsRxBufferMessageAvailable(FDCAN_HandleTypeDef *hfdcan, uint32_t RxBufferIndex);
2150uint32_t HAL_FDCAN_IsTxBufferMessagePending(const FDCAN_HandleTypeDef *hfdcan, uint32_t TxBufferIndex);
2151uint32_t HAL_FDCAN_GetRxFifoFillLevel(const FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo);
2152uint32_t HAL_FDCAN_GetTxFifoFreeLevel(const FDCAN_HandleTypeDef *hfdcan);
2153uint32_t HAL_FDCAN_IsRestrictedOperationMode(const FDCAN_HandleTypeDef *hfdcan);
2154HAL_StatusTypeDef HAL_FDCAN_ExitRestrictedOperationMode(FDCAN_HandleTypeDef *hfdcan);
2162/* TT Configuration and control functions**************************************/
2163HAL_StatusTypeDef HAL_FDCAN_TT_ConfigOperation(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TT_ConfigTypeDef *pTTParams);
2164HAL_StatusTypeDef HAL_FDCAN_TT_ConfigReferenceMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t IdType, uint32_t Identifier,
2165 uint32_t Payload);
2166HAL_StatusTypeDef HAL_FDCAN_TT_ConfigTrigger(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TriggerTypeDef *sTriggerConfig);
2167HAL_StatusTypeDef HAL_FDCAN_TT_SetGlobalTime(FDCAN_HandleTypeDef *hfdcan, uint32_t TimePreset);
2168HAL_StatusTypeDef HAL_FDCAN_TT_SetClockSynchronization(FDCAN_HandleTypeDef *hfdcan, uint32_t NewTURNumerator);
2169HAL_StatusTypeDef HAL_FDCAN_TT_ConfigStopWatch(FDCAN_HandleTypeDef *hfdcan, uint32_t Source, uint32_t Polarity);
2170HAL_StatusTypeDef HAL_FDCAN_TT_ConfigRegisterTimeMark(FDCAN_HandleTypeDef *hfdcan, uint32_t TimeMarkSource,
2171 uint32_t TimeMarkValue, uint32_t RepeatFactor,
2172 uint32_t StartCycle);
2173HAL_StatusTypeDef HAL_FDCAN_TT_EnableRegisterTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2174HAL_StatusTypeDef HAL_FDCAN_TT_DisableRegisterTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2175HAL_StatusTypeDef HAL_FDCAN_TT_EnableTriggerTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2176HAL_StatusTypeDef HAL_FDCAN_TT_DisableTriggerTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2177HAL_StatusTypeDef HAL_FDCAN_TT_EnableHardwareGapControl(FDCAN_HandleTypeDef *hfdcan);
2178HAL_StatusTypeDef HAL_FDCAN_TT_DisableHardwareGapControl(FDCAN_HandleTypeDef *hfdcan);
2179HAL_StatusTypeDef HAL_FDCAN_TT_EnableTimeMarkGapControl(FDCAN_HandleTypeDef *hfdcan);
2180HAL_StatusTypeDef HAL_FDCAN_TT_DisableTimeMarkGapControl(FDCAN_HandleTypeDef *hfdcan);
2181HAL_StatusTypeDef HAL_FDCAN_TT_SetNextIsGap(FDCAN_HandleTypeDef *hfdcan);
2182HAL_StatusTypeDef HAL_FDCAN_TT_SetEndOfGap(FDCAN_HandleTypeDef *hfdcan);
2183HAL_StatusTypeDef HAL_FDCAN_TT_ConfigExternalSyncPhase(FDCAN_HandleTypeDef *hfdcan, uint32_t TargetPhase);
2184HAL_StatusTypeDef HAL_FDCAN_TT_EnableExternalSynchronization(FDCAN_HandleTypeDef *hfdcan);
2185HAL_StatusTypeDef HAL_FDCAN_TT_DisableExternalSynchronization(FDCAN_HandleTypeDef *hfdcan);
2186HAL_StatusTypeDef HAL_FDCAN_TT_GetOperationStatus(const FDCAN_HandleTypeDef *hfdcan,
2187 FDCAN_TTOperationStatusTypeDef *TTOpStatus);
2195/* Interrupts management ******************************************************/
2196HAL_StatusTypeDef HAL_FDCAN_ConfigInterruptLines(FDCAN_HandleTypeDef *hfdcan, uint32_t ITList, uint32_t InterruptLine);
2197HAL_StatusTypeDef HAL_FDCAN_TT_ConfigInterruptLines(FDCAN_HandleTypeDef *hfdcan, uint32_t TTITList,
2198 uint32_t InterruptLine);
2199HAL_StatusTypeDef HAL_FDCAN_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveITs,
2200 uint32_t BufferIndexes);
2201HAL_StatusTypeDef HAL_FDCAN_DeactivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t InactiveITs);
2202HAL_StatusTypeDef HAL_FDCAN_TT_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveTTITs);
2203HAL_StatusTypeDef HAL_FDCAN_TT_DeactivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t InactiveTTITs);
2204void HAL_FDCAN_IRQHandler(FDCAN_HandleTypeDef *hfdcan);
2212/* Callback functions *********************************************************/
2213void HAL_FDCAN_ClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
2214void HAL_FDCAN_TxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
2215void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
2216void HAL_FDCAN_RxFifo1Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
2217void HAL_FDCAN_TxFifoEmptyCallback(FDCAN_HandleTypeDef *hfdcan);
2218void HAL_FDCAN_TxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
2219void HAL_FDCAN_TxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
2220void HAL_FDCAN_RxBufferNewMessageCallback(FDCAN_HandleTypeDef *hfdcan);
2221void HAL_FDCAN_HighPriorityMessageCallback(FDCAN_HandleTypeDef *hfdcan);
2222void HAL_FDCAN_TimestampWraparoundCallback(FDCAN_HandleTypeDef *hfdcan);
2223void HAL_FDCAN_TimeoutOccurredCallback(FDCAN_HandleTypeDef *hfdcan);
2224void HAL_FDCAN_ErrorCallback(FDCAN_HandleTypeDef *hfdcan);
2225void HAL_FDCAN_ErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
2226void HAL_FDCAN_TT_ScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
2227void HAL_FDCAN_TT_TimeMarkCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
2228void HAL_FDCAN_TT_StopWatchCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
2229void HAL_FDCAN_TT_GlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
2237/* Peripheral State functions *************************************************/
2238uint32_t HAL_FDCAN_GetError(const FDCAN_HandleTypeDef *hfdcan);
2239HAL_FDCAN_StateTypeDef HAL_FDCAN_GetState(const FDCAN_HandleTypeDef *hfdcan);
2248/* Private types -------------------------------------------------------------*/
2258/* Private variables ---------------------------------------------------------*/
2268/* Private constants ---------------------------------------------------------*/
2278/* Private macros ------------------------------------------------------------*/
2283#define IS_FDCAN_FRAME_FORMAT(FORMAT) (((FORMAT) == FDCAN_FRAME_CLASSIC ) || \
2284 ((FORMAT) == FDCAN_FRAME_FD_NO_BRS) || \
2285 ((FORMAT) == FDCAN_FRAME_FD_BRS ))
2286#define IS_FDCAN_MODE(MODE) (((MODE) == FDCAN_MODE_NORMAL ) || \
2287 ((MODE) == FDCAN_MODE_RESTRICTED_OPERATION) || \
2288 ((MODE) == FDCAN_MODE_BUS_MONITORING ) || \
2289 ((MODE) == FDCAN_MODE_INTERNAL_LOOPBACK ) || \
2290 ((MODE) == FDCAN_MODE_EXTERNAL_LOOPBACK ))
2291
2292#define IS_FDCAN_CLOCK_CALIBRATION(CALIBRATION) (((CALIBRATION) == FDCAN_CLOCK_CALIBRATION_DISABLE) || \
2293 ((CALIBRATION) == FDCAN_CLOCK_CALIBRATION_ENABLE ))
2294
2295#define IS_FDCAN_CKDIV(CKDIV) (((CKDIV) == FDCAN_CLOCK_DIV1 ) || \
2296 ((CKDIV) == FDCAN_CLOCK_DIV2 ) || \
2297 ((CKDIV) == FDCAN_CLOCK_DIV4 ) || \
2298 ((CKDIV) == FDCAN_CLOCK_DIV6 ) || \
2299 ((CKDIV) == FDCAN_CLOCK_DIV8 ) || \
2300 ((CKDIV) == FDCAN_CLOCK_DIV10) || \
2301 ((CKDIV) == FDCAN_CLOCK_DIV12) || \
2302 ((CKDIV) == FDCAN_CLOCK_DIV14) || \
2303 ((CKDIV) == FDCAN_CLOCK_DIV16) || \
2304 ((CKDIV) == FDCAN_CLOCK_DIV18) || \
2305 ((CKDIV) == FDCAN_CLOCK_DIV20) || \
2306 ((CKDIV) == FDCAN_CLOCK_DIV22) || \
2307 ((CKDIV) == FDCAN_CLOCK_DIV24) || \
2308 ((CKDIV) == FDCAN_CLOCK_DIV26) || \
2309 ((CKDIV) == FDCAN_CLOCK_DIV28) || \
2310 ((CKDIV) == FDCAN_CLOCK_DIV30))
2311#define IS_FDCAN_NOMINAL_PRESCALER(PRESCALER) (((PRESCALER) >= 1U) && ((PRESCALER) <= 512U))
2312#define IS_FDCAN_NOMINAL_SJW(SJW) (((SJW) >= 1U) && ((SJW) <= 128U))
2313#define IS_FDCAN_NOMINAL_TSEG1(TSEG1) (((TSEG1) >= 1U) && ((TSEG1) <= 256U))
2314#define IS_FDCAN_NOMINAL_TSEG2(TSEG2) (((TSEG2) >= 1U) && ((TSEG2) <= 128U))
2315#define IS_FDCAN_DATA_PRESCALER(PRESCALER) (((PRESCALER) >= 1U) && ((PRESCALER) <= 32U))
2316#define IS_FDCAN_DATA_SJW(SJW) (((SJW) >= 1U) && ((SJW) <= 16U))
2317#define IS_FDCAN_DATA_TSEG1(TSEG1) (((TSEG1) >= 1U) && ((TSEG1) <= 32U))
2318#define IS_FDCAN_DATA_TSEG2(TSEG2) (((TSEG2) >= 1U) && ((TSEG2) <= 16U))
2319#define IS_FDCAN_MAX_VALUE(VALUE, _MAX_) ((VALUE) <= (_MAX_))
2320#define IS_FDCAN_MIN_VALUE(VALUE, _MIN_) ((VALUE) >= (_MIN_))
2321#define IS_FDCAN_DATA_SIZE(SIZE) (((SIZE) == FDCAN_DATA_BYTES_8 ) || \
2322 ((SIZE) == FDCAN_DATA_BYTES_12) || \
2323 ((SIZE) == FDCAN_DATA_BYTES_16) || \
2324 ((SIZE) == FDCAN_DATA_BYTES_20) || \
2325 ((SIZE) == FDCAN_DATA_BYTES_24) || \
2326 ((SIZE) == FDCAN_DATA_BYTES_32) || \
2327 ((SIZE) == FDCAN_DATA_BYTES_48) || \
2328 ((SIZE) == FDCAN_DATA_BYTES_64))
2329#define IS_FDCAN_TX_FIFO_QUEUE_MODE(MODE) (((MODE) == FDCAN_TX_FIFO_OPERATION ) || \
2330 ((MODE) == FDCAN_TX_QUEUE_OPERATION))
2331#define IS_FDCAN_ID_TYPE(ID_TYPE) (((ID_TYPE) == FDCAN_STANDARD_ID) || \
2332 ((ID_TYPE) == FDCAN_EXTENDED_ID))
2333#define IS_FDCAN_FILTER_CFG(CONFIG) (((CONFIG) == FDCAN_FILTER_DISABLE ) || \
2334 ((CONFIG) == FDCAN_FILTER_TO_RXFIFO0 ) || \
2335 ((CONFIG) == FDCAN_FILTER_TO_RXFIFO1 ) || \
2336 ((CONFIG) == FDCAN_FILTER_REJECT ) || \
2337 ((CONFIG) == FDCAN_FILTER_HP ) || \
2338 ((CONFIG) == FDCAN_FILTER_TO_RXFIFO0_HP) || \
2339 ((CONFIG) == FDCAN_FILTER_TO_RXFIFO1_HP) || \
2340 ((CONFIG) == FDCAN_FILTER_TO_RXBUFFER ))
2341#define IS_FDCAN_TX_LOCATION(LOCATION) (((LOCATION) == FDCAN_TX_BUFFER0 ) || ((LOCATION) == FDCAN_TX_BUFFER1 ) || \
2342 ((LOCATION) == FDCAN_TX_BUFFER2 ) || ((LOCATION) == FDCAN_TX_BUFFER3 ) || \
2343 ((LOCATION) == FDCAN_TX_BUFFER4 ) || ((LOCATION) == FDCAN_TX_BUFFER5 ) || \
2344 ((LOCATION) == FDCAN_TX_BUFFER6 ) || ((LOCATION) == FDCAN_TX_BUFFER7 ) || \
2345 ((LOCATION) == FDCAN_TX_BUFFER8 ) || ((LOCATION) == FDCAN_TX_BUFFER9 ) || \
2346 ((LOCATION) == FDCAN_TX_BUFFER10) || ((LOCATION) == FDCAN_TX_BUFFER11) || \
2347 ((LOCATION) == FDCAN_TX_BUFFER12) || ((LOCATION) == FDCAN_TX_BUFFER13) || \
2348 ((LOCATION) == FDCAN_TX_BUFFER14) || ((LOCATION) == FDCAN_TX_BUFFER15) || \
2349 ((LOCATION) == FDCAN_TX_BUFFER16) || ((LOCATION) == FDCAN_TX_BUFFER17) || \
2350 ((LOCATION) == FDCAN_TX_BUFFER18) || ((LOCATION) == FDCAN_TX_BUFFER19) || \
2351 ((LOCATION) == FDCAN_TX_BUFFER20) || ((LOCATION) == FDCAN_TX_BUFFER21) || \
2352 ((LOCATION) == FDCAN_TX_BUFFER22) || ((LOCATION) == FDCAN_TX_BUFFER23) || \
2353 ((LOCATION) == FDCAN_TX_BUFFER24) || ((LOCATION) == FDCAN_TX_BUFFER25) || \
2354 ((LOCATION) == FDCAN_TX_BUFFER26) || ((LOCATION) == FDCAN_TX_BUFFER27) || \
2355 ((LOCATION) == FDCAN_TX_BUFFER28) || ((LOCATION) == FDCAN_TX_BUFFER29) || \
2356 ((LOCATION) == FDCAN_TX_BUFFER30) || ((LOCATION) == FDCAN_TX_BUFFER31))
2357#define IS_FDCAN_RX_FIFO(FIFO) (((FIFO) == FDCAN_RX_FIFO0) || \
2358 ((FIFO) == FDCAN_RX_FIFO1))
2359#define IS_FDCAN_RX_FIFO_MODE(MODE) (((MODE) == FDCAN_RX_FIFO_BLOCKING ) || \
2360 ((MODE) == FDCAN_RX_FIFO_OVERWRITE))
2361#define IS_FDCAN_STD_FILTER_TYPE(TYPE) (((TYPE) == FDCAN_FILTER_RANGE) || \
2362 ((TYPE) == FDCAN_FILTER_DUAL ) || \
2363 ((TYPE) == FDCAN_FILTER_MASK ))
2364#define IS_FDCAN_EXT_FILTER_TYPE(TYPE) (((TYPE) == FDCAN_FILTER_RANGE ) || \
2365 ((TYPE) == FDCAN_FILTER_DUAL ) || \
2366 ((TYPE) == FDCAN_FILTER_MASK ) || \
2367 ((TYPE) == FDCAN_FILTER_RANGE_NO_EIDM))
2368#define IS_FDCAN_FRAME_TYPE(TYPE) (((TYPE) == FDCAN_DATA_FRAME ) || \
2369 ((TYPE) == FDCAN_REMOTE_FRAME))
2370#define IS_FDCAN_DLC(DLC) (((DLC) == FDCAN_DLC_BYTES_0 ) || \
2371 ((DLC) == FDCAN_DLC_BYTES_1 ) || \
2372 ((DLC) == FDCAN_DLC_BYTES_2 ) || \
2373 ((DLC) == FDCAN_DLC_BYTES_3 ) || \
2374 ((DLC) == FDCAN_DLC_BYTES_4 ) || \
2375 ((DLC) == FDCAN_DLC_BYTES_5 ) || \
2376 ((DLC) == FDCAN_DLC_BYTES_6 ) || \
2377 ((DLC) == FDCAN_DLC_BYTES_7 ) || \
2378 ((DLC) == FDCAN_DLC_BYTES_8 ) || \
2379 ((DLC) == FDCAN_DLC_BYTES_12) || \
2380 ((DLC) == FDCAN_DLC_BYTES_16) || \
2381 ((DLC) == FDCAN_DLC_BYTES_20) || \
2382 ((DLC) == FDCAN_DLC_BYTES_24) || \
2383 ((DLC) == FDCAN_DLC_BYTES_32) || \
2384 ((DLC) == FDCAN_DLC_BYTES_48) || \
2385 ((DLC) == FDCAN_DLC_BYTES_64))
2386#define IS_FDCAN_ESI(ESI) (((ESI) == FDCAN_ESI_ACTIVE ) || \
2387 ((ESI) == FDCAN_ESI_PASSIVE))
2388#define IS_FDCAN_BRS(BRS) (((BRS) == FDCAN_BRS_OFF) || \
2389 ((BRS) == FDCAN_BRS_ON ))
2390#define IS_FDCAN_FDF(FDF) (((FDF) == FDCAN_CLASSIC_CAN) || \
2391 ((FDF) == FDCAN_FD_CAN ))
2392#define IS_FDCAN_EFC(EFC) (((EFC) == FDCAN_NO_TX_EVENTS ) || \
2393 ((EFC) == FDCAN_STORE_TX_EVENTS))
2394#define IS_FDCAN_IT(IT) (((IT) & ~(FDCAN_IR_MASK | CCU_IR_MASK)) == 0U)
2395#define IS_FDCAN_TT_IT(IT) (((IT) & 0xFFF80000U) == 0U)
2396#define IS_FDCAN_FIFO_WATERMARK(FIFO) (((FIFO) == FDCAN_CFG_TX_EVENT_FIFO) || \
2397 ((FIFO) == FDCAN_CFG_RX_FIFO0 ) || \
2398 ((FIFO) == FDCAN_CFG_RX_FIFO1 ))
2399#define IS_FDCAN_NON_MATCHING(DESTINATION) (((DESTINATION) == FDCAN_ACCEPT_IN_RX_FIFO0) || \
2400 ((DESTINATION) == FDCAN_ACCEPT_IN_RX_FIFO1) || \
2401 ((DESTINATION) == FDCAN_REJECT ))
2402#define IS_FDCAN_REJECT_REMOTE(DESTINATION) (((DESTINATION) == FDCAN_FILTER_REMOTE) || \
2403 ((DESTINATION) == FDCAN_REJECT_REMOTE))
2404#define IS_FDCAN_IT_LINE(IT_LINE) (((IT_LINE) == FDCAN_INTERRUPT_LINE0) || \
2405 ((IT_LINE) == FDCAN_INTERRUPT_LINE1))
2406#define IS_FDCAN_TIMESTAMP(OPERATION) (((OPERATION) == FDCAN_TIMESTAMP_INTERNAL) || \
2407 ((OPERATION) == FDCAN_TIMESTAMP_EXTERNAL))
2408#define IS_FDCAN_TIMESTAMP_PRESCALER(PRESCALER) (((PRESCALER) == FDCAN_TIMESTAMP_PRESC_1 ) || \
2409 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_2 ) || \
2410 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_3 ) || \
2411 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_4 ) || \
2412 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_5 ) || \
2413 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_6 ) || \
2414 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_7 ) || \
2415 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_8 ) || \
2416 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_9 ) || \
2417 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_10) || \
2418 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_11) || \
2419 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_12) || \
2420 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_13) || \
2421 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_14) || \
2422 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_15) || \
2423 ((PRESCALER) == FDCAN_TIMESTAMP_PRESC_16))
2424#define IS_FDCAN_TIMEOUT(OPERATION) (((OPERATION) == FDCAN_TIMEOUT_CONTINUOUS ) || \
2425 ((OPERATION) == FDCAN_TIMEOUT_TX_EVENT_FIFO) || \
2426 ((OPERATION) == FDCAN_TIMEOUT_RX_FIFO0 ) || \
2427 ((OPERATION) == FDCAN_TIMEOUT_RX_FIFO1 ))
2428#define IS_FDCAN_CALIBRATION_FIELD_LENGTH(LENGTH) (((LENGTH) == FDCAN_CALIB_FIELD_LENGTH_32) || \
2429 ((LENGTH) == FDCAN_CALIB_FIELD_LENGTH_64))
2430#define IS_FDCAN_CALIBRATION_COUNTER(COUNTER) (((COUNTER) == FDCAN_CALIB_TIME_QUANTA_COUNTER ) || \
2431 ((COUNTER) == FDCAN_CALIB_CLOCK_PERIOD_COUNTER) || \
2432 ((COUNTER) == FDCAN_CALIB_WATCHDOG_COUNTER ))
2433#define IS_FDCAN_TT_REFERENCE_MESSAGE_PAYLOAD(PAYLOAD) (((PAYLOAD) == FDCAN_TT_REF_MESSAGE_NO_PAYLOAD ) || \
2434 ((PAYLOAD) == FDCAN_TT_REF_MESSAGE_ADD_PAYLOAD))
2435#define IS_FDCAN_TT_REPEAT_FACTOR(FACTOR) (((FACTOR) == FDCAN_TT_REPEAT_EVERY_CYCLE ) || \
2436 ((FACTOR) == FDCAN_TT_REPEAT_EVERY_2ND_CYCLE ) || \
2437 ((FACTOR) == FDCAN_TT_REPEAT_EVERY_4TH_CYCLE ) || \
2438 ((FACTOR) == FDCAN_TT_REPEAT_EVERY_8TH_CYCLE ) || \
2439 ((FACTOR) == FDCAN_TT_REPEAT_EVERY_16TH_CYCLE) || \
2440 ((FACTOR) == FDCAN_TT_REPEAT_EVERY_32ND_CYCLE) || \
2441 ((FACTOR) == FDCAN_TT_REPEAT_EVERY_64TH_CYCLE))
2442#define IS_FDCAN_TT_TRIGGER_TYPE(TYPE) (((TYPE) == FDCAN_TT_TX_REF_TRIGGER ) || \
2443 ((TYPE) == FDCAN_TT_TX_REF_TRIGGER_GAP ) || \
2444 ((TYPE) == FDCAN_TT_TX_TRIGGER_SINGLE ) || \
2445 ((TYPE) == FDCAN_TT_TX_TRIGGER_CONTINUOUS ) || \
2446 ((TYPE) == FDCAN_TT_TX_TRIGGER_ARBITRATION) || \
2447 ((TYPE) == FDCAN_TT_TX_TRIGGER_MERGED ) || \
2448 ((TYPE) == FDCAN_TT_WATCH_TRIGGER ) || \
2449 ((TYPE) == FDCAN_TT_WATCH_TRIGGER_GAP ) || \
2450 ((TYPE) == FDCAN_TT_RX_TRIGGER ) || \
2451 ((TYPE) == FDCAN_TT_TIME_BASE_TRIGGER ) || \
2452 ((TYPE) == FDCAN_TT_END_OF_LIST ))
2453#define IS_FDCAN_TT_TM_EVENT_INTERNAL(EVENT) (((EVENT) == FDCAN_TT_TM_NO_INTERNAL_EVENT ) || \
2454 ((EVENT) == FDCAN_TT_TM_GEN_INTERNAL_EVENT))
2455#define IS_FDCAN_TT_TM_EVENT_EXTERNAL(EVENT) (((EVENT) == FDCAN_TT_TM_NO_EXTERNAL_EVENT ) || \
2456 ((EVENT) == FDCAN_TT_TM_GEN_EXTERNAL_EVENT))
2457#define IS_FDCAN_OPERATION_MODE(MODE) (((MODE) == FDCAN_TT_COMMUNICATION_LEVEL1 ) || \
2458 ((MODE) == FDCAN_TT_COMMUNICATION_LEVEL2 ) || \
2459 ((MODE) == FDCAN_TT_COMMUNICATION_LEVEL0 ))
2460#define IS_FDCAN_TT_OPERATION(OPERATION) (((OPERATION) == FDCAN_STRICTLY_TT_OPERATION ) || \
2461 ((OPERATION) == FDCAN_EXT_EVT_SYNC_TT_OPERATION))
2462#define IS_FDCAN_TT_TIME_MASTER(FUNCTION) (((FUNCTION) == FDCAN_TT_SLAVE ) || \
2463 ((FUNCTION) == FDCAN_TT_POTENTIAL_MASTER))
2464#define IS_FDCAN_TT_EXTERNAL_CLK_SYNC(SYNC) (((SYNC) == FDCAN_TT_EXT_CLK_SYNC_DISABLE) || \
2465 ((SYNC) == FDCAN_TT_EXT_CLK_SYNC_ENABLE ))
2466#define IS_FDCAN_TT_GLOBAL_TIME_FILTERING(FILTERING) (((FILTERING) == FDCAN_TT_GLOB_TIME_FILT_DISABLE) || \
2467 ((FILTERING) == FDCAN_TT_GLOB_TIME_FILT_ENABLE ))
2468#define IS_FDCAN_TT_AUTO_CLK_CALIBRATION(CALIBRATION) (((CALIBRATION) == FDCAN_TT_AUTO_CLK_CALIB_DISABLE) || \
2469 ((CALIBRATION) == FDCAN_TT_AUTO_CLK_CALIB_ENABLE ))
2470#define IS_FDCAN_TT_EVENT_TRIGGER_POLARITY(POLARITY) (((POLARITY) == FDCAN_TT_EVT_TRIG_POL_RISING ) || \
2471 ((POLARITY) == FDCAN_TT_EVT_TRIG_POL_FALLING))
2472#define IS_FDCAN_TT_BASIC_CYCLES_NUMBER(NUMBER) (((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_1 ) || \
2473 ((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_2 ) || \
2474 ((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_4 ) || \
2475 ((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_8 ) || \
2476 ((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_16) || \
2477 ((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_32) || \
2478 ((NUMBER) == FDCAN_TT_CYCLES_PER_MATRIX_64))
2479#define IS_FDCAN_TT_CYCLE_START_SYNC(SYNC) (((SYNC) == FDCAN_TT_NO_SYNC_PULSE ) || \
2480 ((SYNC) == FDCAN_TT_SYNC_BASIC_CYCLE_START) || \
2481 ((SYNC) == FDCAN_TT_SYNC_MATRIX_START ))
2482#define IS_FDCAN_TT_TX_ENABLE_WINDOW(NTU) (((NTU) >= 1U) && ((NTU) <= 16U))
2483#define IS_FDCAN_TT_TUR_NUMERATOR(NUMERATOR) (((NUMERATOR) >= 0x10000U) && ((NUMERATOR) <= 0x1FFFFU))
2484#define IS_FDCAN_TT_TUR_DENOMINATOR(DENOMINATOR) (((DENOMINATOR) >= 0x0001U) && ((DENOMINATOR) <= 0x3FFFU))
2485#define IS_FDCAN_TT_TUR_LEVEL_1(NC,DC) ((NC) >= (4U * (DC)))
2486#define IS_FDCAN_TT_TUR_LEVEL_0_2(NC,DC) ((NC) >= (8U * (DC)))
2487#define IS_FDCAN_TT_STOP_WATCH_TRIGGER(TRIGGER) (((TRIGGER) == FDCAN_TT_STOP_WATCH_TRIGGER_0) || \
2488 ((TRIGGER) == FDCAN_TT_STOP_WATCH_TRIGGER_1) || \
2489 ((TRIGGER) == FDCAN_TT_STOP_WATCH_TRIGGER_2) || \
2490 ((TRIGGER) == FDCAN_TT_STOP_WATCH_TRIGGER_3))
2491#define IS_FDCAN_TT_EVENT_TRIGGER(TRIGGER) (((TRIGGER) == FDCAN_TT_EVENT_TRIGGER_0) || \
2492 ((TRIGGER) == FDCAN_TT_EVENT_TRIGGER_1) || \
2493 ((TRIGGER) == FDCAN_TT_EVENT_TRIGGER_2) || \
2494 ((TRIGGER) == FDCAN_TT_EVENT_TRIGGER_3))
2495#define IS_FDCAN_TT_TIME_PRESET(TIME) (((TIME) <= 0xFFFFU) && ((TIME) != 0x8000U))
2496#define IS_FDCAN_TT_STOP_WATCH_SOURCE(SOURCE) (((SOURCE) == FDCAN_TT_STOP_WATCH_DISABLED ) || \
2497 ((SOURCE) == FDCAN_TT_STOP_WATCH_CYCLE_TIME ) || \
2498 ((SOURCE) == FDCAN_TT_STOP_WATCH_LOCAL_TIME ) || \
2499 ((SOURCE) == FDCAN_TT_STOP_WATCH_GLOBAL_TIME))
2500#define IS_FDCAN_TT_STOP_WATCH_POLARITY(POLARITY) (((POLARITY) == FDCAN_TT_STOP_WATCH_RISING ) || \
2501 ((POLARITY) == FDCAN_TT_STOP_WATCH_FALLING))
2502#define IS_FDCAN_TT_REGISTER_TIME_MARK_SOURCE(SOURCE) (((SOURCE) == FDCAN_TT_REG_TIMEMARK_DIABLED ) || \
2503 ((SOURCE) == FDCAN_TT_REG_TIMEMARK_CYC_TIME) || \
2504 ((SOURCE) == FDCAN_TT_REG_TIMEMARK_LOC_TIME) || \
2505 ((SOURCE) == FDCAN_TT_REG_TIMEMARK_GLO_TIME))
2506
2507#define FDCAN_CHECK_IT_SOURCE(__IE__, __IT__) ((((__IE__) & (__IT__)) == (__IT__)) ? SET : RESET)
2508
2509#define FDCAN_CHECK_FLAG(__IR__, __FLAG__) ((((__IR__) & (__FLAG__)) == (__FLAG__)) ? SET : RESET)
2514/* Private functions prototypes ----------------------------------------------*/
2524/* Private functions ---------------------------------------------------------*/
2540#endif /* FDCAN1 */
2541
2542#ifdef __cplusplus
2543}
2544#endif
2545
2546#endif /* STM32H7xx_HAL_FDCAN_H */
2547
2548
#define __IO
Definition: core_cm4.h:239
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32h7xx_hal_def.h:47
HAL_LockTypeDef
HAL Lock structures definition.
Definition: stm32h7xx_hal_def.h:58
FD Controller Area Network.
Definition: stm32h723xx.h:315
TTFD Controller Area Network.
Definition: stm32h723xx.h:376