Core
Loading...
Searching...
No Matches
core_config.h
Go to the documentation of this file.
1
6#ifndef CORE_CORE_CONFIG_H
7#define CORE_CORE_CONFIG_H
8
13#define PROGRAM_NAME_STRING "Bootloader test"
14
15/***************** CLOCK PARAMETERS ****************************/
16/***************************************************************/
21#define CORE_CLOCK_USE_HSE 0
25#define CORE_CLOCK_HSE_FREQ 24000
29#define CORE_CLOCK_SYSCLK_FREQ 160000
33#define CORE_CLOCK_HSI_FREQ 16000
37#define CORE_CLOCK_PLLP_DIV 12
38
39/***************** ERROR HANDLER PARAMETERS ********************/
40/***************************************************************/
44#define CORE_ERROR_HANDLER_BLINK_DELAY 200000
45
46
47/********************** CAN PARAMETERS *************************/
48/***************************************************************/
52#define CORE_CAN_QUEUE_LENGTH 15
56#define CORE_CAN_RX_TIMEOUT 100
60#define CORE_CAN_DISABLE_TX_QUEUE 0
64#define CORE_CAN_DISABLE_RX_QUEUE 0
68#define CORE_CAN_DISABLE_SEMAPHORE 0
69
74#define CORE_CAN_BUS_OFF_BLOCK 1
75
79#define CORE_CAN_USE_MSGBUF 0
84#define CORE_CAN_TIMESTAMP 1
88#define CORE_CAN_HW_TIMESTAMP 1
92#define CORE_CAN_TIMER TIM2
93
94#define CORE_CAN_MSGBUF1_SIZE 1024
95#define CORE_CAN_MSGBUF2_SIZE 0
96#define CORE_CAN_MSGBUF3_SIZE 0
97#define CORE_FDCAN1_MSGBUF 1
98#define CORE_FDCAN2_MSGBUF 1
99#define CORE_FDCAN3_MSGBUF 1
100
101// Ports and pins for CAN communication
102#define CORE_FDCAN1_TX_PORT GPIOA
103#define CORE_FDCAN1_TX_PIN GPIO_PIN_12
104#define CORE_FDCAN1_TX_AF 9
105#define CORE_FDCAN1_RX_PORT GPIOA
106#define CORE_FDCAN1_RX_PIN GPIO_PIN_11
107#define CORE_FDCAN1_RX_AF 9
108
109#define CORE_FDCAN2_TX_PORT GPIOB
110#define CORE_FDCAN2_TX_PIN GPIO_PIN_13
111#define CORE_FDCAN2_TX_AF 9
112#define CORE_FDCAN2_RX_PORT GPIOB
113#define CORE_FDCAN2_RX_PIN GPIO_PIN_12
114#define CORE_FDCAN2_RX_AF 9
115
116#define CORE_FDCAN3_TX_PORT GPIOA
117#define CORE_FDCAN3_TX_PIN GPIO_PIN_15
118#define CORE_FDCAN3_TX_AF 11
119#define CORE_FDCAN3_RX_PORT GPIOB
120#define CORE_FDCAN3_RX_PIN GPIO_PIN_3
121#define CORE_FDCAN3_RX_AF 11
122
123// Filters
124#define CORE_FDCAN1_MAX_STANDARD_FILTER_NUM 28
125#define CORE_FDCAN1_MAX_EXTENDED_FILTER_NUM 8
126#define CORE_FDCAN2_MAX_STANDARD_FILTER_NUM 28
127#define CORE_FDCAN2_MAX_EXTENDED_FILTER_NUM 8
128#define CORE_FDCAN3_MAX_STANDARD_FILTER_NUM 28
129#define CORE_FDCAN3_MAX_EXTENDED_FILTER_NUM 8
130
131// Auto-retransmission config
132#define CORE_FDCAN1_AUTO_RETRANSMISSION 1
133#define CORE_FDCAN2_AUTO_RETRANSMISSION 1
134#define CORE_FDCAN3_AUTO_RETRANSMISSION 1
135
136// CAN FD config
137#define CORE_FDCAN1_USE_FD 1
138#define CORE_FDCAN2_USE_FD 1
139#define CORE_FDCAN3_USE_FD 0
140
141/********************* SPI PARAMETERS **************************/
142/***************************************************************/
143#define CORE_SPI1_SCK_PORT GPIOA
144#define CORE_SPI1_SCK_PIN GPIO_PIN_5
145#define CORE_SPI1_SCK_AF 5
146#define CORE_SPI1_MISO_PORT GPIOA
147#define CORE_SPI1_MISO_PIN GPIO_PIN_6
148#define CORE_SPI1_MISO_AF 5
149#define CORE_SPI1_MOSI_PORT GPIOA
150#define CORE_SPI1_MOSI_PIN GPIO_PIN_7
151#define CORE_SPI1_MOSI_AF 5
155#define CORE_SPI1_DIVIDER 7
159#define CORE_SPI1_DATA_SIZE 8
160#define CORE_SPI1_MASTER 1
161
162#define CORE_SPI2_SCK_PORT GPIOB
163#define CORE_SPI2_SCK_PIN GPIO_PIN_13
164#define CORE_SPI2_SCK_AF 5
165#define CORE_SPI2_MISO_PORT GPIOB
166#define CORE_SPI2_MISO_PIN GPIO_PIN_14
167#define CORE_SPI2_MISO_AF 5
168#define CORE_SPI2_MOSI_PORT GPIOB
169#define CORE_SPI2_MOSI_PIN GPIO_PIN_15
170#define CORE_SPI2_MOSI_AF 5
174#define CORE_SPI2_DIVIDER 7
178#define CORE_SPI2_DATA_SIZE 8
179#define CORE_SPI2_MASTER 1
180
181#define CORE_SPI3_SCK_PORT GPIOC
182#define CORE_SPI3_SCK_PIN GPIO_PIN_10
183#define CORE_SPI3_SCK_AF 6
184#define CORE_SPI3_MISO_PORT GPIOC
185#define CORE_SPI3_MISO_PIN GPIO_PIN_11
186#define CORE_SPI3_MISO_AF 6
187#define CORE_SPI3_MOSI_PORT GPIOC
188#define CORE_SPI3_MOSI_PIN GPIO_PIN_12
189#define CORE_SPI3_MOSI_AF 6
193#define CORE_SPI3_DIVIDER 7
197#define CORE_SPI3_DATA_SIZE 8
198#define CORE_SPI3_MASTER 1
199
200#define CORE_SPI4_SCK_PORT GPIOE
201#define CORE_SPI4_SCK_PIN GPIO_PIN_12
202#define CORE_SPI4_SCK_AF 5
203#define CORE_SPI4_MISO_PORT GPIOE
204#define CORE_SPI4_MISO_PIN GPIO_PIN_13
205#define CORE_SPI4_MISO_AF 5
206#define CORE_SPI4_MOSI_PORT GPIOE
207#define CORE_SPI4_MOSI_PIN GPIO_PIN_14
208#define CORE_SPI4_MOSI_AF 5
212#define CORE_SPI4_DIVIDER 7
216#define CORE_SPI4_DATA_SIZE 8
217#define CORE_SPI4_MASTER 1
218
219
220/******************** USART PARAMETERS *************************/
221/***************************************************************/
226#define CORE_USART_RXBUFLEN 512
231#define CORE_USART_RX_TIMEOUT 64
232
236#define CORE_USART_UPRINTF 1
242#define CORE_USART_TXBUFLEN 512
243
244#define CORE_USART1_TX_PORT GPIOC
245#define CORE_USART1_TX_PIN GPIO_PIN_4
246#define CORE_USART1_TX_AF 7
247#define CORE_USART1_RX_PORT GPIOC
248#define CORE_USART1_RX_PIN GPIO_PIN_5
249#define CORE_USART1_RX_AF 7
250
251#define CORE_USART2_TX_PORT GPIOA
252#define CORE_USART2_TX_PIN GPIO_PIN_2
253#define CORE_USART2_TX_AF 7
254#define CORE_USART2_RX_PORT GPIOA
255#define CORE_USART2_RX_PIN GPIO_PIN_3
256#define CORE_USART2_RX_AF 7
257
258#define CORE_USART3_TX_PORT GPIOB
259#define CORE_USART3_TX_PIN GPIO_PIN_10
260#define CORE_USART3_TX_AF 7
261#define CORE_USART3_RX_PORT GPIOB
262#define CORE_USART3_RX_PIN GPIO_PIN_11
263#define CORE_USART3_RX_AF 7
264
265#define CORE_UART4_TX_PORT GPIOC
266#define CORE_UART4_TX_PIN GPIO_PIN_10
267#define CORE_UART4_TX_AF 5
268#define CORE_UART4_RX_PORT GPIOC
269#define CORE_UART4_RX_PIN GPIO_PIN_11
270#define CORE_UART4_RX_AF 5
271#define CORE_UART4_IRQ_PRIO 5
272
273#define CORE_UART5_TX_PORT GPIOC
274#define CORE_UART5_TX_PIN GPIO_PIN_12
275#define CORE_UART5_TX_AF 5
276#define CORE_UART5_RX_PORT GPIOD
277#define CORE_UART5_RX_PIN GPIO_PIN_2
278#define CORE_UART5_RX_AF 5
279
280
281/*********************** RTC PARAMETERS ************************/
282/***************************************************************/
283#define CORE_RTC_CENTURY 2000
284
285/******************** BOOTLOADER PARAMETERS ********************/
286/***************************************************************/
290#define CORE_BOOT_FDCAN FDCAN2
294#define CORE_BOOT_FDCAN_ID 0x004
299#define CORE_BOOT_FDCAN_MASTER_ID 0x084
304#define CORE_BOOT_FDCAN_BROADCAST_ID 0x7ff
305
309#define CORE_BOOT_EXTERNAL 0
310
311/********************* TIMEOUT PARAMETERS **********************/
312/***************************************************************/
316#define CORE_TIMEOUT_NUM 5
317
318/********************* WATCHDOG PARAMETERS *********************/
319/***************************************************************/
320
321// Timeout formula: timeout = (APB_clock_period(ms)) * 4096 * (2^(CORE_WATCHDOG_PRESCALER)) * (CORE_WATCHDOG_RELOAD_VAL + 1) ms
322// APB clock set to system clock = 160MHz by default. APB_clock_period = 6.25ns = 6.25*10^(-6) ms
323// Downcounter is 7 bits. When the lower 6 bits go to 0 (timer = 0x40), the interrupt is triggered if it is set.
324// When the counter goes to 0x3F, the system reset is triggered.
325
326
327// /**
328// * @brief Timebase of prescaler. 3 bits (max 7)
329// */
330// #define CORE_WATCHDOG_PRESCALER 6
331//
332// /**
333// * @brief Lower 6 bits to reload into the downcounter. 6 bits (max 63)
334// */
335// #define CORE_WATCHDOG_RELOAD_VAL 63
336//
337// /**
338// * @brief Watchdog window. Must refresh when downcounter has counted lower than this number
339// * for the refresh to be valid. If not, it will be reset. Must be greater than 0x40 to matter. 7 bits (max 63)
340// */
341// #define CORE_WATCHDOG_WINDOW_VAL 3
342
347#define CORE_WATCHDOG_PRESCALER 6
351#define CORE_WATCHDOG_RELOAD_VAL 500
356#define CORE_WATCHDOG_WINDOW_VAL 250
357
358#endif //CORE_CORE_CONFIG_H