Skip to content

Commit 766b5c2

Browse files
committed
[DISCO_F429ZI] Added CAN support
Added CAN API support for DISCO_F429ZI target. Change-Id: I54b7d0ed25baf179fd899087297f4b8e76fc040a
1 parent ce78144 commit 766b5c2

File tree

8 files changed

+46
-8
lines changed

8 files changed

+46
-8
lines changed

hal/targets/hal/TARGET_STM/TARGET_STM32F4/TARGET_DISCO_F429ZI/PeripheralNames.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ typedef enum {
9090
PWM_14 = (int)TIM14_BASE
9191
} PWMName;
9292

93+
typedef enum {
94+
CAN_1 = (int)CAN1_BASE,
95+
CAN_2 = (int)CAN2_BASE
96+
} CANName;
97+
9398
#ifdef __cplusplus
9499
}
95100
#endif

hal/targets/hal/TARGET_STM/TARGET_STM32F4/TARGET_DISCO_F429ZI/PeripheralPins.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,3 +280,21 @@ const PinMap PinMap_SPI_SSEL[] = {
280280
{PG_8, SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI6)},
281281
{NC, NC, 0}
282282
};
283+
284+
const PinMap PinMap_CAN_RD[] = {
285+
{PB_8, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
286+
{PB_12, CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
287+
{PD_0, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
288+
{PB_5 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
289+
{PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
290+
{NC, NC, 0}
291+
};
292+
293+
const PinMap PinMap_CAN_TD[] = {
294+
{PB_9, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
295+
{PB_13, CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
296+
{PD_1, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
297+
{PB_6 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
298+
{PA_12, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
299+
{NC, NC, 0}
300+
};

hal/targets/hal/TARGET_STM/TARGET_STM32F4/TARGET_DISCO_F429ZI/device.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454

5555
#define DEVICE_SLEEP 1
5656

57+
#define DEVICE_CAN 1
58+
5759
//=======================================
5860

5961
#define DEVICE_SEMIHOST 0

hal/targets/hal/TARGET_STM/TARGET_STM32F4/TARGET_DISCO_F429ZI/objects.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ struct pwmout_s {
104104
uint8_t inverted;
105105
};
106106

107+
struct can_s {
108+
CANName can;
109+
int index;
110+
};
111+
107112
#include "gpio_object.h"
108113

109114
#ifdef __cplusplus

libraries/tests/mbed/can/main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ CAN can1(PD_0, PD_1);
1717
#elif defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F072RB) || \
1818
defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F334R8) || \
1919
defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \
20-
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE)
20+
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
21+
defined(TARGET_DISCO_F429ZI)
2122
CAN can1(PA_11, PA_12);
2223
#elif defined(TARGET_DISCO_F469NI)
2324
CAN can1(PB_8, PB_9);
@@ -29,7 +30,8 @@ CAN can1(p9, p10);
2930
CAN can2(p34, p33);
3031
#elif defined (TARGET_LPC1768)
3132
CAN can2(p30, p29);
32-
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI)
33+
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \
34+
defined(TARGET_DISCO_F429ZI)
3335
CAN can2(PB_5, PB_6);
3436
#endif
3537
char counter = 0;

libraries/tests/mbed/can_interrupt/main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ CAN can1(PD_0, PD_1);
1717
#elif defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F072RB) || \
1818
defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F334R8) || \
1919
defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \
20-
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE)
20+
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
21+
defined(TARGET_DISCO_F429ZI)
2122
CAN can1(PA_11, PA_12);
2223
#elif defined(TARGET_DISCO_F469NI)
2324
CAN can1(PB_8, PB_9);
@@ -29,7 +30,8 @@ CAN can1(p9, p10);
2930
CAN can2(p34, p33);
3031
#elif defined (TARGET_LPC1768)
3132
CAN can2(p30, p29);
32-
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI)
33+
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \
34+
defined(TARGET_DISCO_F429ZI)
3335
CAN can2(PB_5, PB_6);
3436
#endif
3537
char counter = 0;

libraries/tests/mbed/can_loopback/main.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ CAN can1(P5_9, P5_10);
1616
#elif defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F072RB) || \
1717
defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F334R8) || \
1818
defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \
19-
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE)
19+
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
20+
defined(TARGET_DISCO_F429ZI)
2021
CAN can1(PA_11, PA_12);
2122
#elif defined(TARGET_DISCO_F469NI)
2223
CAN can1(PB_8, PB_9);

workspace_tools/tests.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
* NUCLEO_F302R8: (RX=PA_11, TX=PA_12)
101101
* NUCLEO_F446RE: (RX=PA_11, TX=PA_12)
102102
* DISCO_F469NI: (RX=PB_8, TX=PB_9)
103+
* DISCO_F4269ZI: (RX=PA_11, TX=PA_12)
103104
104105
"""
105106
TESTS = [
@@ -308,7 +309,7 @@
308309
"mcu": ["LPC1549", "LPC1768","B96B_F446VE", "VK_RZ_A1H",
309310
"NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8",
310311
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE",
311-
"DISCO_F469NI"],
312+
"DISCO_F469NI", "DISCO_F429ZI"],
312313
},
313314
{
314315
"id": "MBED_BLINKY", "description": "Blinky",
@@ -581,15 +582,17 @@
581582
"dependencies": [MBED_LIBRARIES],
582583
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC",
583584
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
584-
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI"]
585+
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI",
586+
"DISCO_F429ZI"]
585587
},
586588
{
587589
"id": "MBED_30", "description": "CAN network test using interrupts",
588590
"source_dir": join(TEST_DIR, "mbed", "can_interrupt"),
589591
"dependencies": [MBED_LIBRARIES],
590592
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC",
591593
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
592-
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI"]
594+
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI",
595+
"DISCO_F429ZI"]
593596
},
594597
{
595598
"id": "MBED_31", "description": "PWM LED test",

0 commit comments

Comments
 (0)