Skip to content

Commit 4d22e94

Browse files
committed
[NUCLEO_F746ZG] Added CAN support
Added CAN API support for NUCLEO_F746ZG target. Change-Id: Ib9d416125671e3e1f1ef89e88e6da66f4c457f02
1 parent 19f0c58 commit 4d22e94

File tree

8 files changed

+42
-8
lines changed

8 files changed

+42
-8
lines changed

hal/targets/hal/TARGET_STM/TARGET_STM32F7/TARGET_NUCLEO_F746ZG/PeripheralNames.h

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

95+
typedef enum {
96+
CAN_1 = (int)CAN1_BASE,
97+
CAN_2 = (int)CAN2_BASE
98+
} CANName;
99+
95100
#ifdef __cplusplus
96101
}
97102
#endif

hal/targets/hal/TARGET_STM/TARGET_STM32F7/TARGET_NUCLEO_F746ZG/PeripheralPins.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,3 +326,21 @@ const PinMap PinMap_SPI_SSEL[] = {
326326
{PF_6, SPI_5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI5)},
327327
{NC, NC, 0}
328328
};
329+
330+
const PinMap PinMap_CAN_RD[] = {
331+
{PB_8 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
332+
{PB_12 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
333+
{PD_0 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
334+
{PB_5 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
335+
{PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
336+
{NC, NC, 0}
337+
};
338+
339+
const PinMap PinMap_CAN_TD[] = {
340+
{PB_9 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
341+
{PB_13 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
342+
{PD_1 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
343+
{PB_6 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
344+
{PA_12, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
345+
{NC, NC, 0}
346+
};

hal/targets/hal/TARGET_STM/TARGET_STM32F7/TARGET_NUCLEO_F746ZG/device.h

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

4242

4343

44+
#define DEVICE_CAN 1
45+
4446
//=======================================
4547

4648
#define DEVICE_ID_LENGTH 24

hal/targets/hal/TARGET_STM/TARGET_STM32F7/TARGET_NUCLEO_F746ZG/objects.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@ struct pwmout_s {
110110
uint8_t inverted;
111111
};
112112

113+
struct can_s {
114+
CANName can;
115+
int index;
116+
};
117+
113118
#include "gpio_object.h"
114119

115120
#ifdef __cplusplus

libraries/tests/mbed/can/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ CAN can1(PD_0, PD_1);
1818
defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F334R8) || \
1919
defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \
2020
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
21-
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB)
21+
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
22+
defined(TARGET_NUCLEO_F746ZG)
2223
CAN can1(PA_11, PA_12);
2324
#elif defined(TARGET_DISCO_F469NI)
2425
CAN can1(PB_8, PB_9);
@@ -31,7 +32,7 @@ CAN can2(p34, p33);
3132
#elif defined (TARGET_LPC1768)
3233
CAN can2(p30, p29);
3334
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \
34-
defined(TARGET_DISCO_F429ZI)
35+
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG)
3536
CAN can2(PB_5, PB_6);
3637
#endif
3738
char counter = 0;

libraries/tests/mbed/can_interrupt/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ CAN can1(PD_0, PD_1);
1818
defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F334R8) || \
1919
defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \
2020
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
21-
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB)
21+
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
22+
defined(TARGET_NUCLEO_F746ZG)
2223
CAN can1(PA_11, PA_12);
2324
#elif defined(TARGET_DISCO_F469NI)
2425
CAN can1(PB_8, PB_9);
@@ -31,7 +32,7 @@ CAN can2(p34, p33);
3132
#elif defined (TARGET_LPC1768)
3233
CAN can2(p30, p29);
3334
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \
34-
defined(TARGET_DISCO_F429ZI)
35+
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG)
3536
CAN can2(PB_5, PB_6);
3637
#endif
3738
char counter = 0;

libraries/tests/mbed/can_loopback/main.cpp

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

workspace_tools/tests.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
* DISCO_F469NI: (RX=PB_8, TX=PB_9)
103103
* DISCO_F4269ZI: (RX=PA_11, TX=PA_12)
104104
* NUCLEO_F103RB: (RX=PA_11, TX=PA_12)
105+
* NUCLEO_F746ZG: (RX=PA_11, TX=PA_12)
105106
106107
"""
107108
TESTS = [
@@ -310,7 +311,7 @@
310311
"mcu": ["LPC1549", "LPC1768","B96B_F446VE", "VK_RZ_A1H",
311312
"NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8",
312313
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE",
313-
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB"],
314+
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG"],
314315
},
315316
{
316317
"id": "MBED_BLINKY", "description": "Blinky",
@@ -584,7 +585,7 @@
584585
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC",
585586
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
586587
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI",
587-
"DISCO_F429ZI", "NUCLEO_F103RB"]
588+
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG"]
588589
},
589590
{
590591
"id": "MBED_30", "description": "CAN network test using interrupts",
@@ -593,7 +594,7 @@
593594
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC",
594595
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
595596
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI",
596-
"DISCO_F429ZI", "NUCLEO_F103RB"]
597+
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG"]
597598
},
598599
{
599600
"id": "MBED_31", "description": "PWM LED test",

0 commit comments

Comments
 (0)