rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
at32_can.cpp File Reference

Detailed Description

Low level common AT32 code.

Date
Nov 19, 2023
Author
Andrey Gusakov, (c) 2023

Definition in file at32_can.cpp.

Functions

static bool isValidCan1RxPin (brain_pin_e pin)
 
static bool isValidCan1TxPin (brain_pin_e pin)
 
static bool isValidCan2RxPin (brain_pin_e pin)
 
static bool isValidCan2TxPin (brain_pin_e pin)
 
bool isValidCanTxPin (brain_pin_e pin)
 
bool isValidCanRxPin (brain_pin_e pin)
 
CANDriver * detectCanDevice (brain_pin_e pinRx, brain_pin_e pinTx)
 
const CANConfig * findCanConfig (can_baudrate_e rate)
 
void canHwInfo (CANDriver *cand)
 

Variables

static const CANConfig canConfig50
 
static const CANConfig canConfig83
 
static const CANConfig canConfig100
 
static const CANConfig canConfig125
 
static const CANConfig canConfig250
 
static const CANConfig canConfig500
 
static const CANConfig canConfig1000
 

Function Documentation

◆ canHwInfo()

void canHwInfo ( CANDriver *  cand)

Definition at line 129 of file at32_can.cpp.

130{
131 /* TODO: */
132 (void)cand;
133}

Referenced by canInfo().

Here is the caller graph for this function:

◆ detectCanDevice()

CANDriver * detectCanDevice ( brain_pin_e  pinRx,
brain_pin_e  pinTx 
)

Definition at line 93 of file at32_can.cpp.

93 {
94 if (pinRx == Gpio::Unassigned || pinTx == Gpio::Unassigned) {
95 return nullptr;
96 }
97#if STM32_CAN_USE_CAN1 || STM32_CAN_USE_FDCAN1
98 if (isValidCan1RxPin(pinRx) && isValidCan1TxPin(pinTx))
99 return &CAND1;
100#endif
101#if STM32_CAN_USE_CAN2 || STM32_CAN_USE_FDCAN2
102 if (isValidCan2RxPin(pinRx) && isValidCan2TxPin(pinTx))
103 return &CAND2;
104#endif
105 criticalError("invalid CAN pins tx %s and rx %s", hwPortname(pinTx), hwPortname(pinRx));
106 return nullptr;
107}
static bool isValidCan2RxPin(brain_pin_e pin)
Definition at32_can.cpp:77
static bool isValidCan1RxPin(brain_pin_e pin)
Definition at32_can.cpp:69
static bool isValidCan2TxPin(brain_pin_e pin)
Definition at32_can.cpp:81
static bool isValidCan1TxPin(brain_pin_e pin)
Definition at32_can.cpp:73
@ Unassigned
const char * hwPortname(brain_pin_e brainPin)

Referenced by canInfo(), and initCan().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findCanConfig()

const CANConfig * findCanConfig ( can_baudrate_e  rate)

Definition at line 109 of file at32_can.cpp.

109 {
110 switch (rate) {
111 case B50KBPS:
112 return &canConfig50;
113 case B83KBPS:
114 return &canConfig83;
115 case B100KBPS:
116 return &canConfig100;
117 case B125KBPS:
118 return &canConfig125;
119 case B250KBPS:
120 return &canConfig250;
121 case B1MBPS:
122 return &canConfig1000;
123 case B500KBPS:
124 default:
125 return &canConfig500;
126 }
127}
static const CANConfig canConfig125
Definition at32_can.cpp:49
static const CANConfig canConfig250
Definition at32_can.cpp:54
static const CANConfig canConfig50
Definition at32_can.cpp:34
static const CANConfig canConfig1000
Definition at32_can.cpp:64
static const CANConfig canConfig500
Definition at32_can.cpp:59
static const CANConfig canConfig83
Definition at32_can.cpp:39
static const CANConfig canConfig100
Definition at32_can.cpp:44
uint32_t rate
Definition bluetooth.cpp:39

◆ isValidCan1RxPin()

static bool isValidCan1RxPin ( brain_pin_e  pin)
static

Definition at line 69 of file at32_can.cpp.

69 {
70 return pin == Gpio::A11 || pin == Gpio::B8 || pin == Gpio::D0 || pin == Gpio::G0;
71}
brain_pin_e pin
Definition stm32_adc.cpp:15

Referenced by detectCanDevice(), and isValidCanRxPin().

Here is the caller graph for this function:

◆ isValidCan1TxPin()

static bool isValidCan1TxPin ( brain_pin_e  pin)
static

Definition at line 73 of file at32_can.cpp.

73 {
74 return pin == Gpio::A12 || pin == Gpio::B9 || pin == Gpio::D1 || pin == Gpio::G1;
75}

Referenced by detectCanDevice(), and isValidCanTxPin().

Here is the caller graph for this function:

◆ isValidCan2RxPin()

static bool isValidCan2RxPin ( brain_pin_e  pin)
static

Definition at line 77 of file at32_can.cpp.

77 {
78 return pin == Gpio::B5 || pin == Gpio::B12 || pin == Gpio::G11;
79}

Referenced by detectCanDevice(), and isValidCanRxPin().

Here is the caller graph for this function:

◆ isValidCan2TxPin()

static bool isValidCan2TxPin ( brain_pin_e  pin)
static

Definition at line 81 of file at32_can.cpp.

81 {
82 return pin == Gpio::B6 || pin == Gpio::B13 || pin == Gpio::G12;
83}

Referenced by detectCanDevice(), and isValidCanTxPin().

Here is the caller graph for this function:

◆ isValidCanRxPin()

bool isValidCanRxPin ( brain_pin_e  pin)

Definition at line 89 of file at32_can.cpp.

89 {
91}

Referenced by startCanPins().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isValidCanTxPin()

bool isValidCanTxPin ( brain_pin_e  pin)

Definition at line 85 of file at32_can.cpp.

85 {
87}

Referenced by startCanPins().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ canConfig100

const CANConfig canConfig100
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_100
}

Definition at line 44 of file at32_can.cpp.

44 {
45 .mcr = STM32FxMCR,
46 .btr = CAN_BTR_100
47};

Referenced by findCanConfig().

◆ canConfig1000

const CANConfig canConfig1000
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_1k0
}

Definition at line 64 of file at32_can.cpp.

64 {
65 .mcr = STM32FxMCR,
66 .btr = CAN_BTR_1k0
67};

Referenced by findCanConfig().

◆ canConfig125

const CANConfig canConfig125
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_125
}

Definition at line 49 of file at32_can.cpp.

49 {
50 .mcr = STM32FxMCR,
51 .btr = CAN_BTR_125
52};

Referenced by findCanConfig().

◆ canConfig250

const CANConfig canConfig250
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_250
}

Definition at line 54 of file at32_can.cpp.

54 {
55 .mcr = STM32FxMCR,
56 .btr = CAN_BTR_250
57};

Referenced by findCanConfig().

◆ canConfig50

const CANConfig canConfig50
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_50
}

Definition at line 34 of file at32_can.cpp.

34 {
35 .mcr = STM32FxMCR,
36 .btr = CAN_BTR_50
37};

Referenced by findCanConfig().

◆ canConfig500

const CANConfig canConfig500
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_500
}

Definition at line 59 of file at32_can.cpp.

59 {
60 .mcr = STM32FxMCR,
61 .btr = CAN_BTR_500
62};

Referenced by findCanConfig().

◆ canConfig83

const CANConfig canConfig83
static
Initial value:
= {
.mcr = STM32FxMCR,
.btr = CAN_BTR_83
}

Definition at line 39 of file at32_can.cpp.

39 {
40 .mcr = STM32FxMCR,
41 .btr = CAN_BTR_83
42};

Referenced by findCanConfig().

Go to the source code of this file.