File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_FDCAN_H
0021 #define STM32H7xx_HAL_FDCAN_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030 #if defined(FDCAN1)
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 typedef enum
0050 {
0051 HAL_FDCAN_STATE_RESET = 0x00U,
0052 HAL_FDCAN_STATE_READY = 0x01U,
0053 HAL_FDCAN_STATE_BUSY = 0x02U,
0054 HAL_FDCAN_STATE_ERROR = 0x03U
0055 } HAL_FDCAN_StateTypeDef;
0056
0057
0058
0059
0060 typedef struct
0061 {
0062 uint32_t FrameFormat;
0063
0064
0065 uint32_t Mode;
0066
0067
0068 FunctionalState AutoRetransmission;
0069
0070
0071 FunctionalState TransmitPause;
0072
0073
0074 FunctionalState ProtocolException;
0075
0076
0077 uint32_t NominalPrescaler;
0078
0079
0080
0081 uint32_t NominalSyncJumpWidth;
0082
0083
0084
0085
0086 uint32_t NominalTimeSeg1;
0087
0088
0089 uint32_t NominalTimeSeg2;
0090
0091
0092 uint32_t DataPrescaler;
0093
0094
0095
0096 uint32_t DataSyncJumpWidth;
0097
0098
0099
0100
0101 uint32_t DataTimeSeg1;
0102
0103
0104 uint32_t DataTimeSeg2;
0105
0106
0107 uint32_t MessageRAMOffset;
0108
0109
0110 uint32_t StdFiltersNbr;
0111
0112
0113 uint32_t ExtFiltersNbr;
0114
0115
0116 uint32_t RxFifo0ElmtsNbr;
0117
0118
0119 uint32_t RxFifo0ElmtSize;
0120
0121
0122 uint32_t RxFifo1ElmtsNbr;
0123
0124
0125 uint32_t RxFifo1ElmtSize;
0126
0127
0128 uint32_t RxBuffersNbr;
0129
0130
0131 uint32_t RxBufferSize;
0132
0133
0134 uint32_t TxEventsNbr;
0135
0136
0137 uint32_t TxBuffersNbr;
0138
0139
0140 uint32_t TxFifoQueueElmtsNbr;
0141
0142
0143 uint32_t TxFifoQueueMode;
0144
0145
0146 uint32_t TxElmtSize;
0147
0148
0149 } FDCAN_InitTypeDef;
0150
0151
0152
0153
0154 typedef struct
0155 {
0156 uint32_t ClockCalibration;
0157
0158
0159 uint32_t ClockDivider;
0160
0161
0162
0163 uint32_t MinOscClkPeriods;
0164
0165
0166
0167 uint32_t CalFieldLength;
0168
0169
0170 uint32_t TimeQuantaPerBitTime;
0171
0172
0173 uint32_t WatchdogStartValue;
0174
0175
0176
0177 } FDCAN_ClkCalUnitTypeDef;
0178
0179
0180
0181
0182 typedef struct
0183 {
0184 uint32_t IdType;
0185
0186
0187 uint32_t FilterIndex;
0188
0189
0190
0191
0192 uint32_t FilterType;
0193
0194
0195
0196
0197
0198
0199 uint32_t FilterConfig;
0200
0201
0202 uint32_t FilterID1;
0203
0204
0205
0206
0207 uint32_t FilterID2;
0208
0209
0210
0211
0212
0213
0214 uint32_t RxBufferIndex;
0215
0216
0217
0218
0219
0220 uint32_t IsCalibrationMsg;
0221
0222
0223
0224
0225
0226
0227
0228 } FDCAN_FilterTypeDef;
0229
0230
0231
0232
0233 typedef struct
0234 {
0235 uint32_t Identifier;
0236
0237
0238
0239
0240 uint32_t IdType;
0241
0242
0243
0244 uint32_t TxFrameType;
0245
0246
0247 uint32_t DataLength;
0248
0249
0250 uint32_t ErrorStateIndicator;
0251
0252
0253 uint32_t BitRateSwitch;
0254
0255
0256
0257 uint32_t FDFormat;
0258
0259
0260
0261 uint32_t TxEventFifoControl;
0262
0263
0264 uint32_t MessageMarker;
0265
0266
0267
0268 } FDCAN_TxHeaderTypeDef;
0269
0270
0271
0272
0273 typedef struct
0274 {
0275 uint32_t Identifier;
0276
0277
0278
0279
0280 uint32_t IdType;
0281
0282
0283 uint32_t RxFrameType;
0284
0285
0286 uint32_t DataLength;
0287
0288
0289 uint32_t ErrorStateIndicator;
0290
0291
0292 uint32_t BitRateSwitch;
0293
0294
0295
0296 uint32_t FDFormat;
0297
0298
0299
0300 uint32_t RxTimestamp;
0301
0302
0303
0304 uint32_t FilterIndex;
0305
0306
0307
0308
0309
0310
0311 uint32_t IsFilterMatchingFrame;
0312
0313
0314
0315
0316
0317 } FDCAN_RxHeaderTypeDef;
0318
0319
0320
0321
0322 typedef struct
0323 {
0324 uint32_t Identifier;
0325
0326
0327
0328
0329 uint32_t IdType;
0330
0331
0332 uint32_t TxFrameType;
0333
0334
0335 uint32_t DataLength;
0336
0337
0338 uint32_t ErrorStateIndicator;
0339
0340
0341 uint32_t BitRateSwitch;
0342
0343
0344
0345 uint32_t FDFormat;
0346
0347
0348
0349 uint32_t TxTimestamp;
0350
0351
0352
0353 uint32_t MessageMarker;
0354
0355
0356
0357 uint32_t EventType;
0358
0359
0360 } FDCAN_TxEventFifoTypeDef;
0361
0362
0363
0364
0365 typedef struct
0366 {
0367 uint32_t FilterList;
0368
0369
0370
0371
0372 uint32_t FilterIndex;
0373
0374
0375
0376
0377 uint32_t MessageStorage;
0378
0379
0380 uint32_t MessageIndex;
0381
0382
0383
0384
0385
0386
0387 } FDCAN_HpMsgStatusTypeDef;
0388
0389
0390
0391
0392 typedef struct
0393 {
0394 uint32_t LastErrorCode;
0395
0396
0397 uint32_t DataLastErrorCode;
0398
0399
0400
0401 uint32_t Activity;
0402
0403
0404 uint32_t ErrorPassive;
0405
0406
0407
0408
0409 uint32_t Warning;
0410
0411
0412
0413
0414
0415
0416 uint32_t BusOff;
0417
0418
0419
0420
0421 uint32_t RxESIflag;
0422
0423
0424
0425
0426 uint32_t RxBRSflag;
0427
0428
0429
0430
0431 uint32_t RxFDFflag;
0432
0433
0434
0435
0436
0437 uint32_t ProtocolException;
0438
0439
0440
0441
0442 uint32_t TDCvalue;
0443
0444
0445 } FDCAN_ProtocolStatusTypeDef;
0446
0447
0448
0449
0450 typedef struct
0451 {
0452 uint32_t TxErrorCnt;
0453
0454
0455 uint32_t RxErrorCnt;
0456
0457
0458 uint32_t RxErrorPassive;
0459
0460
0461
0462
0463
0464
0465 uint32_t ErrorLogging;
0466
0467
0468
0469
0470
0471
0472 } FDCAN_ErrorCountersTypeDef;
0473
0474
0475
0476
0477 typedef struct
0478 {
0479 uint32_t OperationMode;
0480
0481
0482 uint32_t GapEnable;
0483
0484
0485
0486
0487 uint32_t TimeMaster;
0488
0489
0490 uint32_t SyncDevLimit;
0491
0492
0493
0494
0495 uint32_t InitRefTrigOffset;
0496
0497
0498 uint32_t ExternalClkSync;
0499
0500
0501
0502
0503 uint32_t AppWdgLimit;
0504
0505
0506
0507
0508
0509
0510
0511 uint32_t GlobalTimeFilter;
0512
0513
0514
0515
0516 uint32_t ClockCalibration;
0517
0518
0519
0520
0521 uint32_t EvtTrigPolarity;
0522
0523
0524
0525
0526 uint32_t BasicCyclesNbr;
0527
0528
0529 uint32_t CycleStartSync;
0530
0531
0532 uint32_t TxEnableWindow;
0533
0534
0535 uint32_t ExpTxTrigNbr;
0536
0537
0538
0539
0540 uint32_t TURNumerator;
0541
0542
0543
0544 uint32_t TURDenominator;
0545
0546
0547 uint32_t TriggerMemoryNbr;
0548
0549
0550 uint32_t StopWatchTrigSel;
0551
0552
0553 uint32_t EventTrigSel;
0554
0555
0556 } FDCAN_TT_ConfigTypeDef;
0557
0558
0559
0560
0561 typedef struct
0562 {
0563 uint32_t TriggerIndex;
0564
0565
0566 uint32_t TimeMark;
0567
0568
0569 uint32_t RepeatFactor;
0570
0571
0572 uint32_t StartCycle;
0573
0574
0575
0576 uint32_t TmEventInt;
0577
0578
0579
0580
0581 uint32_t TmEventExt;
0582
0583
0584
0585
0586 uint32_t TriggerType;
0587
0588
0589 uint32_t FilterType;
0590
0591
0592 uint32_t TxBufferIndex;
0593
0594
0595
0596
0597 uint32_t FilterIndex;
0598
0599
0600
0601
0602
0603
0604 } FDCAN_TriggerTypeDef;
0605
0606
0607
0608
0609 typedef struct
0610 {
0611 uint32_t ErrorLevel;
0612
0613
0614 uint32_t MasterState;
0615
0616
0617 uint32_t SyncState;
0618
0619
0620 uint32_t GTimeQuality;
0621
0622
0623
0624
0625
0626 uint32_t ClockQuality;
0627
0628
0629
0630
0631
0632 uint32_t RefTrigOffset;
0633
0634
0635 uint32_t GTimeDiscPending;
0636
0637
0638
0639
0640 uint32_t GapFinished;
0641
0642
0643
0644
0645 uint32_t MasterPriority;
0646
0647
0648 uint32_t GapStarted;
0649
0650
0651
0652
0653 uint32_t WaitForEvt;
0654
0655
0656
0657
0658 uint32_t AppWdgEvt;
0659
0660
0661
0662
0663 uint32_t ECSPending;
0664
0665
0666
0667
0668 uint32_t PhaseLock;
0669
0670
0671
0672
0673 } FDCAN_TTOperationStatusTypeDef;
0674
0675
0676
0677
0678 typedef struct
0679 {
0680 uint32_t StandardFilterSA;
0681
0682
0683 uint32_t ExtendedFilterSA;
0684
0685
0686 uint32_t RxFIFO0SA;
0687
0688
0689 uint32_t RxFIFO1SA;
0690
0691
0692 uint32_t RxBufferSA;
0693
0694
0695 uint32_t TxEventFIFOSA;
0696
0697
0698 uint32_t TxBufferSA;
0699
0700
0701 uint32_t TxFIFOQSA;
0702
0703
0704 uint32_t TTMemorySA;
0705
0706
0707 uint32_t EndAddress;
0708
0709
0710 } FDCAN_MsgRamAddressTypeDef;
0711
0712
0713
0714
0715 #if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
0716 typedef struct __FDCAN_HandleTypeDef
0717 #else
0718 typedef struct
0719 #endif
0720 {
0721 FDCAN_GlobalTypeDef *Instance;
0722
0723 TTCAN_TypeDef *ttcan;
0724
0725 FDCAN_InitTypeDef Init;
0726
0727 FDCAN_MsgRamAddressTypeDef msgRam;
0728
0729 uint32_t LatestTxFifoQRequest;
0730
0731
0732 __IO HAL_FDCAN_StateTypeDef State;
0733
0734 HAL_LockTypeDef Lock;
0735
0736 __IO uint32_t ErrorCode;
0737
0738 #if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
0739 void (* ClockCalibrationCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
0740 void (* TxEventFifoCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
0741 void (* RxFifo0Callback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
0742 void (* RxFifo1Callback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
0743 void (* TxFifoEmptyCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0744 void (* TxBufferCompleteCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
0745 void (* TxBufferAbortCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
0746 void (* RxBufferNewMessageCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0747 void (* HighPriorityMessageCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0748 void (* TimestampWraparoundCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0749 void (* TimeoutOccurredCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0750 void (* ErrorCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0751 void (* ErrorStatusCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
0752 void (* TT_ScheduleSyncCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
0753 void (* TT_TimeMarkCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
0754 void (* TT_StopWatchCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
0755 void (* TT_GlobalTimeCallback)(struct __FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
0756
0757 void (* MspInitCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0758 void (* MspDeInitCallback)(struct __FDCAN_HandleTypeDef *hfdcan);
0759 #endif
0760
0761 } FDCAN_HandleTypeDef;
0762
0763 #if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
0764
0765
0766
0767 typedef enum
0768 {
0769 HAL_FDCAN_TX_FIFO_EMPTY_CB_ID = 0x00U,
0770 HAL_FDCAN_RX_BUFFER_NEW_MSG_CB_ID = 0x01U,
0771 HAL_FDCAN_HIGH_PRIO_MESSAGE_CB_ID = 0x02U,
0772 HAL_FDCAN_TIMESTAMP_WRAPAROUND_CB_ID = 0x03U,
0773 HAL_FDCAN_TIMEOUT_OCCURRED_CB_ID = 0x04U,
0774 HAL_FDCAN_ERROR_CALLBACK_CB_ID = 0x05U,
0775
0776 HAL_FDCAN_MSPINIT_CB_ID = 0x06U,
0777 HAL_FDCAN_MSPDEINIT_CB_ID = 0x07U,
0778
0779 } HAL_FDCAN_CallbackIDTypeDef;
0780
0781
0782
0783
0784 typedef void (*pFDCAN_CallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan);
0785 typedef void (*pFDCAN_ClockCalibrationCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
0786 typedef void (*pFDCAN_TxEventFifoCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
0787 typedef void (*pFDCAN_RxFifo0CallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
0788 typedef void (*pFDCAN_RxFifo1CallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
0789 typedef void (*pFDCAN_TxBufferCompleteCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
0790 typedef void (*pFDCAN_TxBufferAbortCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
0791 typedef void (*pFDCAN_ErrorStatusCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
0792 typedef void (*pFDCAN_TT_ScheduleSyncCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
0793 typedef void (*pFDCAN_TT_TimeMarkCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
0794 typedef void (*pFDCAN_TT_StopWatchCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
0795 typedef void (*pFDCAN_TT_GlobalTimeCallbackTypeDef)(FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
0796 #endif
0797
0798
0799
0800
0801
0802
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812 #define HAL_FDCAN_ERROR_NONE ((uint32_t)0x00000000U)
0813 #define HAL_FDCAN_ERROR_TIMEOUT ((uint32_t)0x00000001U)
0814 #define HAL_FDCAN_ERROR_NOT_INITIALIZED ((uint32_t)0x00000002U)
0815 #define HAL_FDCAN_ERROR_NOT_READY ((uint32_t)0x00000004U)
0816 #define HAL_FDCAN_ERROR_NOT_STARTED ((uint32_t)0x00000008U)
0817 #define HAL_FDCAN_ERROR_NOT_SUPPORTED ((uint32_t)0x00000010U)
0818 #define HAL_FDCAN_ERROR_PARAM ((uint32_t)0x00000020U)
0819 #define HAL_FDCAN_ERROR_PENDING ((uint32_t)0x00000040U)
0820 #define HAL_FDCAN_ERROR_RAM_ACCESS ((uint32_t)0x00000080U)
0821 #define HAL_FDCAN_ERROR_FIFO_EMPTY ((uint32_t)0x00000100U)
0822 #define HAL_FDCAN_ERROR_FIFO_FULL ((uint32_t)0x00000200U)
0823 #define HAL_FDCAN_ERROR_LOG_OVERFLOW FDCAN_IR_ELO
0824 #define HAL_FDCAN_ERROR_RAM_WDG FDCAN_IR_WDI
0825 #define HAL_FDCAN_ERROR_PROTOCOL_ARBT FDCAN_IR_PEA
0826 #define HAL_FDCAN_ERROR_PROTOCOL_DATA FDCAN_IR_PED
0827 #define HAL_FDCAN_ERROR_RESERVED_AREA FDCAN_IR_ARA
0828 #define HAL_FDCAN_ERROR_TT_GLOBAL_TIME FDCAN_TTIR_GTE
0829 #define HAL_FDCAN_ERROR_TT_TX_UNDERFLOW FDCAN_TTIR_TXU
0830 #define HAL_FDCAN_ERROR_TT_TX_OVERFLOW FDCAN_TTIR_TXO
0831 #define HAL_FDCAN_ERROR_TT_SCHEDULE1 FDCAN_TTIR_SE1
0832 #define HAL_FDCAN_ERROR_TT_SCHEDULE2 FDCAN_TTIR_SE2
0833 #define HAL_FDCAN_ERROR_TT_NO_INIT_REF FDCAN_TTIR_IWT
0834 #define HAL_FDCAN_ERROR_TT_NO_REF FDCAN_TTIR_WT
0835 #define HAL_FDCAN_ERROR_TT_APPL_WDG FDCAN_TTIR_AW
0836 #define HAL_FDCAN_ERROR_TT_CONFIG FDCAN_TTIR_CER
0837
0838 #if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
0839 #define HAL_FDCAN_ERROR_INVALID_CALLBACK ((uint32_t)0x00000100U)
0840 #endif
0841
0842
0843
0844
0845
0846
0847
0848
0849 #define FDCAN_FRAME_CLASSIC ((uint32_t)0x00000000U)
0850 #define FDCAN_FRAME_FD_NO_BRS ((uint32_t)FDCAN_CCCR_FDOE)
0851 #define FDCAN_FRAME_FD_BRS ((uint32_t)(FDCAN_CCCR_FDOE | FDCAN_CCCR_BRSE))
0852
0853
0854
0855
0856
0857
0858
0859
0860 #define FDCAN_MODE_NORMAL ((uint32_t)0x00000000U)
0861 #define FDCAN_MODE_RESTRICTED_OPERATION ((uint32_t)0x00000001U)
0862 #define FDCAN_MODE_BUS_MONITORING ((uint32_t)0x00000002U)
0863 #define FDCAN_MODE_INTERNAL_LOOPBACK ((uint32_t)0x00000003U)
0864 #define FDCAN_MODE_EXTERNAL_LOOPBACK ((uint32_t)0x00000004U)
0865
0866
0867
0868
0869
0870
0871
0872
0873 #define FDCAN_CLOCK_CALIBRATION_DISABLE ((uint32_t)0x00000000U)
0874 #define FDCAN_CLOCK_CALIBRATION_ENABLE ((uint32_t)0x00000001U)
0875
0876
0877
0878
0879
0880
0881
0882
0883 #define FDCAN_CLOCK_DIV1 ((uint32_t)0x00000000U)
0884 #define FDCAN_CLOCK_DIV2 ((uint32_t)0x00000001U)
0885 #define FDCAN_CLOCK_DIV4 ((uint32_t)0x00000002U)
0886 #define FDCAN_CLOCK_DIV6 ((uint32_t)0x00000003U)
0887 #define FDCAN_CLOCK_DIV8 ((uint32_t)0x00000004U)
0888 #define FDCAN_CLOCK_DIV10 ((uint32_t)0x00000005U)
0889 #define FDCAN_CLOCK_DIV12 ((uint32_t)0x00000006U)
0890 #define FDCAN_CLOCK_DIV14 ((uint32_t)0x00000007U)
0891 #define FDCAN_CLOCK_DIV16 ((uint32_t)0x00000008U)
0892 #define FDCAN_CLOCK_DIV18 ((uint32_t)0x00000009U)
0893 #define FDCAN_CLOCK_DIV20 ((uint32_t)0x0000000AU)
0894 #define FDCAN_CLOCK_DIV22 ((uint32_t)0x0000000BU)
0895 #define FDCAN_CLOCK_DIV24 ((uint32_t)0x0000000CU)
0896 #define FDCAN_CLOCK_DIV26 ((uint32_t)0x0000000DU)
0897 #define FDCAN_CLOCK_DIV28 ((uint32_t)0x0000000EU)
0898 #define FDCAN_CLOCK_DIV30 ((uint32_t)0x0000000FU)
0899
0900
0901
0902
0903
0904
0905
0906
0907 #define FDCAN_CALIB_FIELD_LENGTH_32 ((uint32_t)0x00000000U)
0908 #define FDCAN_CALIB_FIELD_LENGTH_64 ((uint32_t)FDCANCCU_CCFG_CFL)
0909
0910
0911
0912
0913
0914
0915
0916
0917 #define FDCAN_CLOCK_NOT_CALIBRATED ((uint32_t)0x00000000U)
0918 #define FDCAN_CLOCK_BASIC_CALIBRATED ((uint32_t)0x40000000U)
0919 #define FDCAN_CLOCK_PRECISION_CALIBRATED ((uint32_t)0x80000000U)
0920
0921
0922
0923
0924
0925
0926
0927
0928 #define FDCAN_CALIB_TIME_QUANTA_COUNTER ((uint32_t)0x00000000U)
0929 #define FDCAN_CALIB_CLOCK_PERIOD_COUNTER ((uint32_t)0x00000001U)
0930 #define FDCAN_CALIB_WATCHDOG_COUNTER ((uint32_t)0x00000002U)
0931
0932
0933
0934
0935
0936
0937
0938
0939 #define FDCAN_DATA_BYTES_8 ((uint32_t)0x00000004U)
0940 #define FDCAN_DATA_BYTES_12 ((uint32_t)0x00000005U)
0941 #define FDCAN_DATA_BYTES_16 ((uint32_t)0x00000006U)
0942 #define FDCAN_DATA_BYTES_20 ((uint32_t)0x00000007U)
0943 #define FDCAN_DATA_BYTES_24 ((uint32_t)0x00000008U)
0944 #define FDCAN_DATA_BYTES_32 ((uint32_t)0x0000000AU)
0945 #define FDCAN_DATA_BYTES_48 ((uint32_t)0x0000000EU)
0946 #define FDCAN_DATA_BYTES_64 ((uint32_t)0x00000012U)
0947
0948
0949
0950
0951
0952
0953
0954
0955 #define FDCAN_TX_FIFO_OPERATION ((uint32_t)0x00000000U)
0956 #define FDCAN_TX_QUEUE_OPERATION ((uint32_t)FDCAN_TXBC_TFQM)
0957
0958
0959
0960
0961
0962
0963
0964
0965 #define FDCAN_STANDARD_ID ((uint32_t)0x00000000U)
0966 #define FDCAN_EXTENDED_ID ((uint32_t)0x40000000U)
0967
0968
0969
0970
0971
0972
0973
0974
0975 #define FDCAN_DATA_FRAME ((uint32_t)0x00000000U)
0976 #define FDCAN_REMOTE_FRAME ((uint32_t)0x20000000U)
0977
0978
0979
0980
0981
0982
0983
0984
0985 #define FDCAN_DLC_BYTES_0 ((uint32_t)0x00000000U)
0986 #define FDCAN_DLC_BYTES_1 ((uint32_t)0x00000001U)
0987 #define FDCAN_DLC_BYTES_2 ((uint32_t)0x00000002U)
0988 #define FDCAN_DLC_BYTES_3 ((uint32_t)0x00000003U)
0989 #define FDCAN_DLC_BYTES_4 ((uint32_t)0x00000004U)
0990 #define FDCAN_DLC_BYTES_5 ((uint32_t)0x00000005U)
0991 #define FDCAN_DLC_BYTES_6 ((uint32_t)0x00000006U)
0992 #define FDCAN_DLC_BYTES_7 ((uint32_t)0x00000007U)
0993 #define FDCAN_DLC_BYTES_8 ((uint32_t)0x00000008U)
0994 #define FDCAN_DLC_BYTES_12 ((uint32_t)0x00000009U)
0995 #define FDCAN_DLC_BYTES_16 ((uint32_t)0x0000000AU)
0996 #define FDCAN_DLC_BYTES_20 ((uint32_t)0x0000000BU)
0997 #define FDCAN_DLC_BYTES_24 ((uint32_t)0x0000000CU)
0998 #define FDCAN_DLC_BYTES_32 ((uint32_t)0x0000000DU)
0999 #define FDCAN_DLC_BYTES_48 ((uint32_t)0x0000000EU)
1000 #define FDCAN_DLC_BYTES_64 ((uint32_t)0x0000000FU)
1001
1002
1003
1004
1005
1006
1007
1008
1009 #define FDCAN_ESI_ACTIVE ((uint32_t)0x00000000U)
1010 #define FDCAN_ESI_PASSIVE ((uint32_t)0x80000000U)
1011
1012
1013
1014
1015
1016
1017
1018
1019 #define FDCAN_BRS_OFF ((uint32_t)0x00000000U)
1020 #define FDCAN_BRS_ON ((uint32_t)0x00100000U)
1021
1022
1023
1024
1025
1026
1027
1028
1029 #define FDCAN_CLASSIC_CAN ((uint32_t)0x00000000U)
1030 #define FDCAN_FD_CAN ((uint32_t)0x00200000U)
1031
1032
1033
1034
1035
1036
1037
1038
1039 #define FDCAN_NO_TX_EVENTS ((uint32_t)0x00000000U)
1040 #define FDCAN_STORE_TX_EVENTS ((uint32_t)0x00800000U)
1041
1042
1043
1044
1045
1046
1047
1048
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)
1053
1054
1055
1056
1057
1058
1059
1060
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)
1069
1070
1071
1072
1073
1074
1075
1076
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)
1109
1110
1111
1112
1113
1114
1115
1116
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)
1183
1184
1185
1186
1187
1188
1189
1190
1191 #define FDCAN_TX_EVENT ((uint32_t)0x00400000U)
1192 #define FDCAN_TX_IN_SPITE_OF_ABORT ((uint32_t)0x00800000U)
1193
1194
1195
1196
1197
1198
1199
1200
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)
1205
1206
1207
1208
1209
1210
1211
1212
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)
1221
1222
1223
1224
1225
1226
1227
1228
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)
1233
1234
1235
1236
1237
1238
1239
1240
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)
1244
1245
1246
1247
1248
1249
1250
1251
1252 #define FDCAN_RX_FIFO_BLOCKING ((uint32_t)0x00000000U)
1253 #define FDCAN_RX_FIFO_OVERWRITE ((uint32_t)0x00000001U)
1254
1255
1256
1257
1258
1259
1260
1261
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)
1265
1266
1267
1268
1269
1270
1271
1272
1273 #define FDCAN_FILTER_REMOTE ((uint32_t)0x00000000U)
1274 #define FDCAN_REJECT_REMOTE ((uint32_t)0x00000001U)
1275
1276
1277
1278
1279
1280
1281
1282
1283 #define FDCAN_INTERRUPT_LINE0 ((uint32_t)0x00000001U)
1284 #define FDCAN_INTERRUPT_LINE1 ((uint32_t)0x00000002U)
1285
1286
1287
1288
1289
1290
1291
1292
1293 #define FDCAN_TIMESTAMP_INTERNAL ((uint32_t)0x00000001U)
1294 #define FDCAN_TIMESTAMP_EXTERNAL ((uint32_t)0x00000002U)
1295
1296
1297
1298
1299
1300
1301
1302
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)
1319
1320
1321
1322
1323
1324
1325
1326
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)
1331
1332
1333
1334
1335
1336
1337
1338
1339 #define FDCAN_TT_REF_MESSAGE_NO_PAYLOAD ((uint32_t)0x00000000U)
1340 #define FDCAN_TT_REF_MESSAGE_ADD_PAYLOAD ((uint32_t)FDCAN_TTRMC_RMPS)
1341
1342
1343
1344
1345
1346
1347
1348
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)
1356
1357
1358
1359
1360
1361
1362
1363
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)
1375
1376
1377
1378
1379
1380
1381
1382
1383 #define FDCAN_TT_TM_NO_INTERNAL_EVENT ((uint32_t)0x00000000U)
1384 #define FDCAN_TT_TM_GEN_INTERNAL_EVENT ((uint32_t)0x00000020U)
1385
1386
1387
1388
1389
1390
1391
1392
1393 #define FDCAN_TT_TM_NO_EXTERNAL_EVENT ((uint32_t)0x00000000U)
1394 #define FDCAN_TT_TM_GEN_EXTERNAL_EVENT ((uint32_t)0x00000010U)
1395
1396
1397
1398
1399
1400
1401
1402
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)
1406
1407
1408
1409
1410
1411
1412
1413
1414 #define FDCAN_STRICTLY_TT_OPERATION ((uint32_t)0x00000000U)
1415 #define FDCAN_EXT_EVT_SYNC_TT_OPERATION ((uint32_t)FDCAN_TTOCF_GEN)
1416
1417
1418
1419
1420
1421
1422
1423
1424 #define FDCAN_TT_SLAVE ((uint32_t)0x00000000U)
1425 #define FDCAN_TT_POTENTIAL_MASTER ((uint32_t)FDCAN_TTOCF_TM)
1426
1427
1428
1429
1430
1431
1432
1433
1434 #define FDCAN_TT_EXT_CLK_SYNC_DISABLE ((uint32_t)0x00000000U)
1435 #define FDCAN_TT_EXT_CLK_SYNC_ENABLE ((uint32_t)FDCAN_TTOCF_EECS)
1436
1437
1438
1439
1440
1441
1442
1443
1444 #define FDCAN_TT_GLOB_TIME_FILT_DISABLE ((uint32_t)0x00000000U)
1445 #define FDCAN_TT_GLOB_TIME_FILT_ENABLE ((uint32_t)FDCAN_TTOCF_EGTF)
1446
1447
1448
1449
1450
1451
1452
1453
1454 #define FDCAN_TT_AUTO_CLK_CALIB_DISABLE ((uint32_t)0x00000000U)
1455 #define FDCAN_TT_AUTO_CLK_CALIB_ENABLE ((uint32_t)FDCAN_TTOCF_ECC)
1456
1457
1458
1459
1460
1461
1462
1463
1464 #define FDCAN_TT_EVT_TRIG_POL_RISING ((uint32_t)0x00000000U)
1465 #define FDCAN_TT_EVT_TRIG_POL_FALLING ((uint32_t)FDCAN_TTOCF_EVTP)
1466
1467
1468
1469
1470
1471
1472
1473
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)
1481
1482
1483
1484
1485
1486
1487
1488
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)
1492
1493
1494
1495
1496
1497
1498
1499
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)
1504
1505
1506
1507
1508
1509
1510
1511
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)
1516
1517
1518
1519
1520
1521
1522
1523
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)
1528
1529
1530
1531
1532
1533
1534
1535
1536 #define FDCAN_TT_STOP_WATCH_RISING ((uint32_t)0x00000000U)
1537 #define FDCAN_TT_STOP_WATCH_FALLING ((uint32_t)0x00000004U)
1538
1539
1540
1541
1542
1543
1544
1545
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)
1550
1551
1552
1553
1554
1555
1556
1557
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)
1562
1563
1564
1565
1566
1567
1568
1569
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)
1574
1575
1576
1577
1578
1579
1580
1581
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)
1586
1587
1588
1589
1590
1591
1592
1593
1594 #define FDCAN_IR_MASK ((uint32_t)0x3FCFFFFFU)
1595 #define CCU_IR_MASK ((uint32_t)0xC0000000U)
1596
1597
1598
1599
1600
1601
1602
1603
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)
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
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
1650
1651
1652
1653
1654
1655
1656
1657
1658 #define FDCAN_IT_RX_HIGH_PRIORITY_MSG FDCAN_IE_HPME
1659 #define FDCAN_IT_RX_BUFFER_NEW_MESSAGE FDCAN_IE_DRXE
1660
1661
1662
1663
1664
1665
1666
1667
1668 #define FDCAN_IT_TIMESTAMP_WRAPAROUND FDCAN_IE_TSWE
1669 #define FDCAN_IT_TIMEOUT_OCCURRED FDCAN_IE_TOOE
1670
1671
1672
1673
1674
1675
1676
1677
1678 #define FDCAN_IT_CALIB_STATE_CHANGED (FDCANCCU_IE_CSCE << 30)
1679 #define FDCAN_IT_CALIB_WATCHDOG_EVENT (FDCANCCU_IE_CWEE << 30)
1680
1681
1682
1683
1684
1685
1686
1687
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
1692
1693
1694
1695
1696
1697
1698
1699
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
1704
1705
1706
1707
1708
1709
1710
1711
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
1716
1717
1718
1719
1720
1721
1722
1723
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
1730
1731
1732
1733
1734
1735
1736
1737
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
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
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
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
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
1789
1790
1791
1792
1793
1794
1795
1796
1797 #define FDCAN_TT_IT_REG_TIME_MARK FDCAN_TTIE_RTMIE
1798 #define FDCAN_TT_IT_TRIG_TIME_MARK FDCAN_TTIE_TTMIE
1799
1800
1801
1802
1803
1804
1805
1806
1807 #define FDCAN_TT_IT_STOP_WATCH FDCAN_TTIE_SWEE
1808
1809
1810
1811
1812
1813
1814
1815
1816 #define FDCAN_TT_IT_GLOBAL_TIME_WRAP FDCAN_TTIE_GTWE
1817 #define FDCAN_TT_IT_GLOBAL_TIME_DISC FDCAN_TTIE_GTDE
1818
1819
1820
1821
1822
1823
1824
1825
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
1832
1833
1834
1835
1836
1837
1838
1839
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
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
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
1875
1876
1877
1878
1879
1880
1881
1882
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
1890
1891
1892
1893
1894
1895
1896
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
1903
1904
1905
1906
1907
1908
1909
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
1914
1915
1916
1917
1918
1919
1920
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
1927
1928
1929
1930
1931
1932
1933
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
1938
1939
1940
1941
1942
1943
1944
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
1951
1952
1953
1954
1955
1956
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
1962
1963
1964
1965
1966
1967
1968
1969 #define __HAL_FDCAN_TT_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIE) |= (__INTERRUPT__))
1970
1971
1972
1973
1974
1975
1976
1977
1978 #define __HAL_FDCAN_TT_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIE) &= ~(__INTERRUPT__))
1979
1980
1981
1982
1983
1984
1985
1986
1987 #define __HAL_FDCAN_TT_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIR) & (__INTERRUPT__))
1988
1989
1990
1991
1992
1993
1994
1995
1996 #define __HAL_FDCAN_TT_CLEAR_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIR) = (__INTERRUPT__))
1997
1998
1999
2000
2001
2002
2003
2004
2005 #define __HAL_FDCAN_TT_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->ttcan->TTIR) & (__FLAG__))
2006
2007
2008
2009
2010
2011
2012
2013
2014 #define __HAL_FDCAN_TT_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->ttcan->TTIR) = (__FLAG__))
2015
2016
2017
2018
2019
2020
2021
2022 #define __HAL_FDCAN_TT_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->ttcan->TTIE) & (__INTERRUPT__))
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037 HAL_StatusTypeDef HAL_FDCAN_Init(FDCAN_HandleTypeDef *hfdcan);
2038 HAL_StatusTypeDef HAL_FDCAN_DeInit(FDCAN_HandleTypeDef *hfdcan);
2039 void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef *hfdcan);
2040 void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef *hfdcan);
2041 HAL_StatusTypeDef HAL_FDCAN_EnterPowerDownMode(FDCAN_HandleTypeDef *hfdcan);
2042 HAL_StatusTypeDef HAL_FDCAN_ExitPowerDownMode(FDCAN_HandleTypeDef *hfdcan);
2043
2044 #if USE_HAL_FDCAN_REGISTER_CALLBACKS == 1
2045
2046 HAL_StatusTypeDef HAL_FDCAN_RegisterCallback(FDCAN_HandleTypeDef *hfdcan, HAL_FDCAN_CallbackIDTypeDef CallbackID,
2047 pFDCAN_CallbackTypeDef pCallback);
2048 HAL_StatusTypeDef HAL_FDCAN_UnRegisterCallback(FDCAN_HandleTypeDef *hfdcan, HAL_FDCAN_CallbackIDTypeDef CallbackID);
2049 HAL_StatusTypeDef HAL_FDCAN_RegisterClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan,
2050 pFDCAN_ClockCalibrationCallbackTypeDef pCallback);
2051 HAL_StatusTypeDef HAL_FDCAN_UnRegisterClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan);
2052 HAL_StatusTypeDef HAL_FDCAN_RegisterTxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan,
2053 pFDCAN_TxEventFifoCallbackTypeDef pCallback);
2054 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan);
2055 HAL_StatusTypeDef HAL_FDCAN_RegisterRxFifo0Callback(FDCAN_HandleTypeDef *hfdcan,
2056 pFDCAN_RxFifo0CallbackTypeDef pCallback);
2057 HAL_StatusTypeDef HAL_FDCAN_UnRegisterRxFifo0Callback(FDCAN_HandleTypeDef *hfdcan);
2058 HAL_StatusTypeDef HAL_FDCAN_RegisterRxFifo1Callback(FDCAN_HandleTypeDef *hfdcan,
2059 pFDCAN_RxFifo1CallbackTypeDef pCallback);
2060 HAL_StatusTypeDef HAL_FDCAN_UnRegisterRxFifo1Callback(FDCAN_HandleTypeDef *hfdcan);
2061 HAL_StatusTypeDef HAL_FDCAN_RegisterTxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan,
2062 pFDCAN_TxBufferCompleteCallbackTypeDef pCallback);
2063 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan);
2064 HAL_StatusTypeDef HAL_FDCAN_RegisterTxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan,
2065 pFDCAN_TxBufferAbortCallbackTypeDef pCallback);
2066 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan);
2067 HAL_StatusTypeDef HAL_FDCAN_RegisterErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan,
2068 pFDCAN_ErrorStatusCallbackTypeDef pCallback);
2069 HAL_StatusTypeDef HAL_FDCAN_UnRegisterErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan);
2070 HAL_StatusTypeDef HAL_FDCAN_RegisterTTScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan,
2071 pFDCAN_TT_ScheduleSyncCallbackTypeDef pCallback);
2072 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan);
2073 HAL_StatusTypeDef HAL_FDCAN_RegisterTTTimeMarkCallback(FDCAN_HandleTypeDef *hfdcan,
2074 pFDCAN_TT_TimeMarkCallbackTypeDef pCallback);
2075 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTTimeMarkCallback(FDCAN_HandleTypeDef *hfdcan);
2076 HAL_StatusTypeDef HAL_FDCAN_RegisterTTStopWatchCallback(FDCAN_HandleTypeDef *hfdcan,
2077 pFDCAN_TT_StopWatchCallbackTypeDef pCallback);
2078 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTStopWatchCallback(FDCAN_HandleTypeDef *hfdcan);
2079 HAL_StatusTypeDef HAL_FDCAN_RegisterTTGlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan,
2080 pFDCAN_TT_GlobalTimeCallbackTypeDef pCallback);
2081 HAL_StatusTypeDef HAL_FDCAN_UnRegisterTTGlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan);
2082 #endif
2083
2084
2085
2086
2087
2088
2089
2090
2091 HAL_StatusTypeDef HAL_FDCAN_ConfigClockCalibration(FDCAN_HandleTypeDef *hfdcan,
2092 const FDCAN_ClkCalUnitTypeDef *sCcuConfig);
2093 uint32_t HAL_FDCAN_GetClockCalibrationState(const FDCAN_HandleTypeDef *hfdcan);
2094 HAL_StatusTypeDef HAL_FDCAN_ResetClockCalibrationState(FDCAN_HandleTypeDef *hfdcan);
2095 uint32_t HAL_FDCAN_GetClockCalibrationCounter(const FDCAN_HandleTypeDef *hfdcan, uint32_t Counter);
2096 HAL_StatusTypeDef HAL_FDCAN_ConfigFilter(FDCAN_HandleTypeDef *hfdcan, const FDCAN_FilterTypeDef *sFilterConfig);
2097 HAL_StatusTypeDef HAL_FDCAN_ConfigGlobalFilter(FDCAN_HandleTypeDef *hfdcan, uint32_t NonMatchingStd,
2098 uint32_t NonMatchingExt, uint32_t RejectRemoteStd,
2099 uint32_t RejectRemoteExt);
2100 HAL_StatusTypeDef HAL_FDCAN_ConfigExtendedIdMask(FDCAN_HandleTypeDef *hfdcan, uint32_t Mask);
2101 HAL_StatusTypeDef HAL_FDCAN_ConfigRxFifoOverwrite(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo, uint32_t OperationMode);
2102 HAL_StatusTypeDef HAL_FDCAN_ConfigFifoWatermark(FDCAN_HandleTypeDef *hfdcan, uint32_t FIFO, uint32_t Watermark);
2103 HAL_StatusTypeDef HAL_FDCAN_ConfigRamWatchdog(FDCAN_HandleTypeDef *hfdcan, uint32_t CounterStartValue);
2104 HAL_StatusTypeDef HAL_FDCAN_ConfigTimestampCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimestampPrescaler);
2105 HAL_StatusTypeDef HAL_FDCAN_EnableTimestampCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimestampOperation);
2106 HAL_StatusTypeDef HAL_FDCAN_DisableTimestampCounter(FDCAN_HandleTypeDef *hfdcan);
2107 uint16_t HAL_FDCAN_GetTimestampCounter(const FDCAN_HandleTypeDef *hfdcan);
2108 HAL_StatusTypeDef HAL_FDCAN_ResetTimestampCounter(FDCAN_HandleTypeDef *hfdcan);
2109 HAL_StatusTypeDef HAL_FDCAN_ConfigTimeoutCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimeoutOperation,
2110 uint32_t TimeoutPeriod);
2111 HAL_StatusTypeDef HAL_FDCAN_EnableTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
2112 HAL_StatusTypeDef HAL_FDCAN_DisableTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
2113 uint16_t HAL_FDCAN_GetTimeoutCounter(const FDCAN_HandleTypeDef *hfdcan);
2114 HAL_StatusTypeDef HAL_FDCAN_ResetTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
2115 HAL_StatusTypeDef HAL_FDCAN_ConfigTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan, uint32_t TdcOffset,
2116 uint32_t TdcFilter);
2117 HAL_StatusTypeDef HAL_FDCAN_EnableTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan);
2118 HAL_StatusTypeDef HAL_FDCAN_DisableTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan);
2119 HAL_StatusTypeDef HAL_FDCAN_EnableISOMode(FDCAN_HandleTypeDef *hfdcan);
2120 HAL_StatusTypeDef HAL_FDCAN_DisableISOMode(FDCAN_HandleTypeDef *hfdcan);
2121 HAL_StatusTypeDef HAL_FDCAN_EnableEdgeFiltering(FDCAN_HandleTypeDef *hfdcan);
2122 HAL_StatusTypeDef HAL_FDCAN_DisableEdgeFiltering(FDCAN_HandleTypeDef *hfdcan);
2123
2124
2125
2126
2127
2128
2129
2130
2131 HAL_StatusTypeDef HAL_FDCAN_Start(FDCAN_HandleTypeDef *hfdcan);
2132 HAL_StatusTypeDef HAL_FDCAN_Stop(FDCAN_HandleTypeDef *hfdcan);
2133 HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxFifoQ(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
2134 const uint8_t *pTxData);
2135 HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxBuffer(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
2136 const uint8_t *pTxData, uint32_t BufferIndex);
2137 HAL_StatusTypeDef HAL_FDCAN_EnableTxBufferRequest(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndex);
2138 uint32_t HAL_FDCAN_GetLatestTxFifoQRequestBuffer(const FDCAN_HandleTypeDef *hfdcan);
2139 HAL_StatusTypeDef HAL_FDCAN_AbortTxRequest(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndex);
2140 HAL_StatusTypeDef HAL_FDCAN_GetRxMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t RxLocation,
2141 FDCAN_RxHeaderTypeDef *pRxHeader, uint8_t *pRxData);
2142 HAL_StatusTypeDef HAL_FDCAN_GetTxEvent(FDCAN_HandleTypeDef *hfdcan, FDCAN_TxEventFifoTypeDef *pTxEvent);
2143 HAL_StatusTypeDef HAL_FDCAN_GetHighPriorityMessageStatus(const FDCAN_HandleTypeDef *hfdcan,
2144 FDCAN_HpMsgStatusTypeDef *HpMsgStatus);
2145 HAL_StatusTypeDef HAL_FDCAN_GetProtocolStatus(const FDCAN_HandleTypeDef *hfdcan,
2146 FDCAN_ProtocolStatusTypeDef *ProtocolStatus);
2147 HAL_StatusTypeDef HAL_FDCAN_GetErrorCounters(const FDCAN_HandleTypeDef *hfdcan,
2148 FDCAN_ErrorCountersTypeDef *ErrorCounters);
2149 uint32_t HAL_FDCAN_IsRxBufferMessageAvailable(FDCAN_HandleTypeDef *hfdcan, uint32_t RxBufferIndex);
2150 uint32_t HAL_FDCAN_IsTxBufferMessagePending(const FDCAN_HandleTypeDef *hfdcan, uint32_t TxBufferIndex);
2151 uint32_t HAL_FDCAN_GetRxFifoFillLevel(const FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo);
2152 uint32_t HAL_FDCAN_GetTxFifoFreeLevel(const FDCAN_HandleTypeDef *hfdcan);
2153 uint32_t HAL_FDCAN_IsRestrictedOperationMode(const FDCAN_HandleTypeDef *hfdcan);
2154 HAL_StatusTypeDef HAL_FDCAN_ExitRestrictedOperationMode(FDCAN_HandleTypeDef *hfdcan);
2155
2156
2157
2158
2159
2160
2161
2162
2163 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigOperation(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TT_ConfigTypeDef *pTTParams);
2164 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigReferenceMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t IdType, uint32_t Identifier,
2165 uint32_t Payload);
2166 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigTrigger(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TriggerTypeDef *sTriggerConfig);
2167 HAL_StatusTypeDef HAL_FDCAN_TT_SetGlobalTime(FDCAN_HandleTypeDef *hfdcan, uint32_t TimePreset);
2168 HAL_StatusTypeDef HAL_FDCAN_TT_SetClockSynchronization(FDCAN_HandleTypeDef *hfdcan, uint32_t NewTURNumerator);
2169 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigStopWatch(FDCAN_HandleTypeDef *hfdcan, uint32_t Source, uint32_t Polarity);
2170 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigRegisterTimeMark(FDCAN_HandleTypeDef *hfdcan, uint32_t TimeMarkSource,
2171 uint32_t TimeMarkValue, uint32_t RepeatFactor,
2172 uint32_t StartCycle);
2173 HAL_StatusTypeDef HAL_FDCAN_TT_EnableRegisterTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2174 HAL_StatusTypeDef HAL_FDCAN_TT_DisableRegisterTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2175 HAL_StatusTypeDef HAL_FDCAN_TT_EnableTriggerTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2176 HAL_StatusTypeDef HAL_FDCAN_TT_DisableTriggerTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
2177 HAL_StatusTypeDef HAL_FDCAN_TT_EnableHardwareGapControl(FDCAN_HandleTypeDef *hfdcan);
2178 HAL_StatusTypeDef HAL_FDCAN_TT_DisableHardwareGapControl(FDCAN_HandleTypeDef *hfdcan);
2179 HAL_StatusTypeDef HAL_FDCAN_TT_EnableTimeMarkGapControl(FDCAN_HandleTypeDef *hfdcan);
2180 HAL_StatusTypeDef HAL_FDCAN_TT_DisableTimeMarkGapControl(FDCAN_HandleTypeDef *hfdcan);
2181 HAL_StatusTypeDef HAL_FDCAN_TT_SetNextIsGap(FDCAN_HandleTypeDef *hfdcan);
2182 HAL_StatusTypeDef HAL_FDCAN_TT_SetEndOfGap(FDCAN_HandleTypeDef *hfdcan);
2183 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigExternalSyncPhase(FDCAN_HandleTypeDef *hfdcan, uint32_t TargetPhase);
2184 HAL_StatusTypeDef HAL_FDCAN_TT_EnableExternalSynchronization(FDCAN_HandleTypeDef *hfdcan);
2185 HAL_StatusTypeDef HAL_FDCAN_TT_DisableExternalSynchronization(FDCAN_HandleTypeDef *hfdcan);
2186 HAL_StatusTypeDef HAL_FDCAN_TT_GetOperationStatus(const FDCAN_HandleTypeDef *hfdcan,
2187 FDCAN_TTOperationStatusTypeDef *TTOpStatus);
2188
2189
2190
2191
2192
2193
2194
2195
2196 HAL_StatusTypeDef HAL_FDCAN_ConfigInterruptLines(FDCAN_HandleTypeDef *hfdcan, uint32_t ITList, uint32_t InterruptLine);
2197 HAL_StatusTypeDef HAL_FDCAN_TT_ConfigInterruptLines(FDCAN_HandleTypeDef *hfdcan, uint32_t TTITList,
2198 uint32_t InterruptLine);
2199 HAL_StatusTypeDef HAL_FDCAN_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveITs,
2200 uint32_t BufferIndexes);
2201 HAL_StatusTypeDef HAL_FDCAN_DeactivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t InactiveITs);
2202 HAL_StatusTypeDef HAL_FDCAN_TT_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveTTITs);
2203 HAL_StatusTypeDef HAL_FDCAN_TT_DeactivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t InactiveTTITs);
2204 void HAL_FDCAN_IRQHandler(FDCAN_HandleTypeDef *hfdcan);
2205
2206
2207
2208
2209
2210
2211
2212
2213 void HAL_FDCAN_ClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
2214 void HAL_FDCAN_TxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
2215 void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
2216 void HAL_FDCAN_RxFifo1Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
2217 void HAL_FDCAN_TxFifoEmptyCallback(FDCAN_HandleTypeDef *hfdcan);
2218 void HAL_FDCAN_TxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
2219 void HAL_FDCAN_TxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
2220 void HAL_FDCAN_RxBufferNewMessageCallback(FDCAN_HandleTypeDef *hfdcan);
2221 void HAL_FDCAN_HighPriorityMessageCallback(FDCAN_HandleTypeDef *hfdcan);
2222 void HAL_FDCAN_TimestampWraparoundCallback(FDCAN_HandleTypeDef *hfdcan);
2223 void HAL_FDCAN_TimeoutOccurredCallback(FDCAN_HandleTypeDef *hfdcan);
2224 void HAL_FDCAN_ErrorCallback(FDCAN_HandleTypeDef *hfdcan);
2225 void HAL_FDCAN_ErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
2226 void HAL_FDCAN_TT_ScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
2227 void HAL_FDCAN_TT_TimeMarkCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
2228 void HAL_FDCAN_TT_StopWatchCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
2229 void HAL_FDCAN_TT_GlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
2230
2231
2232
2233
2234
2235
2236
2237
2238 uint32_t HAL_FDCAN_GetError(const FDCAN_HandleTypeDef *hfdcan);
2239 HAL_FDCAN_StateTypeDef HAL_FDCAN_GetState(const FDCAN_HandleTypeDef *hfdcan);
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
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)
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540 #endif
2541
2542 #ifdef __cplusplus
2543 }
2544 #endif
2545
2546 #endif
2547
2548