Skip to content

Commit bafd20f

Browse files
committed
[DISCO_F746NG] Added CAN support
Added CAN API support for DISCO_F746NG target. Change-Id: I3b475309ab9b08c2e0ca1e8fe7e10489b8256321
1 parent 4d22e94 commit bafd20f

File tree

8 files changed

+42
-8
lines changed

8 files changed

+42
-8
lines changed

hal/targets/hal/TARGET_STM/TARGET_STM32F7/TARGET_DISCO_F746NG/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_DISCO_F746NG/PeripheralPins.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,21 @@ const PinMap PinMap_SPI_SSEL[] = {
149149
{PI_0, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // ARDUINO D10
150150
{NC, NC, 0}
151151
};
152+
153+
const PinMap PinMap_CAN_RD[] = {
154+
// {PB_12 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
155+
// {PD_0 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
156+
// {PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
157+
// {PB_5 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
158+
{PB_8 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
159+
{NC, NC, 0}
160+
};
161+
162+
const PinMap PinMap_CAN_TD[] = {
163+
// {PB_13 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
164+
// {PD_1 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
165+
// {PA_12, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
166+
// {PB_6 , CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
167+
{PB_9 , CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
168+
{NC, NC, 0}
169+
};

hal/targets/hal/TARGET_STM/TARGET_STM32F7/TARGET_DISCO_F746NG/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_DISCO_F746NG/objects.h

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

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

110115
#ifdef __cplusplus

libraries/tests/mbed/can/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ CAN can1(PD_0, PD_1);
2121
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
2222
defined(TARGET_NUCLEO_F746ZG)
2323
CAN can1(PA_11, PA_12);
24-
#elif defined(TARGET_DISCO_F469NI)
24+
#elif defined(TARGET_DISCO_F469NI) ||defined(TARGET_DISCO_F746NG)
2525
CAN can1(PB_8, PB_9);
2626
#else
2727
CAN can1(p9, p10);
@@ -32,7 +32,8 @@ CAN can2(p34, p33);
3232
#elif defined (TARGET_LPC1768)
3333
CAN can2(p30, p29);
3434
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \
35-
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG)
35+
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG) || \
36+
defined(TARGET_DISCO_F746NG)
3637
CAN can2(PB_5, PB_6);
3738
#endif
3839
char counter = 0;

libraries/tests/mbed/can_interrupt/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ CAN can1(PD_0, PD_1);
2121
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
2222
defined(TARGET_NUCLEO_F746ZG)
2323
CAN can1(PA_11, PA_12);
24-
#elif defined(TARGET_DISCO_F469NI)
24+
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG)
2525
CAN can1(PB_8, PB_9);
2626
#else
2727
CAN can1(p9, p10);
@@ -32,7 +32,8 @@ CAN can2(p34, p33);
3232
#elif defined (TARGET_LPC1768)
3333
CAN can2(p30, p29);
3434
#elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \
35-
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG)
35+
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG) || \
36+
defined(TARGET_DISCO_F746NG)
3637
CAN can2(PB_5, PB_6);
3738
#endif
3839
char counter = 0;

libraries/tests/mbed/can_loopback/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ CAN can1(P5_9, P5_10);
2020
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
2121
defined(TARGET_NUCLEO_F746ZG)
2222
CAN can1(PA_11, PA_12);
23-
#elif defined(TARGET_DISCO_F469NI)
23+
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG)
2424
CAN can1(PB_8, PB_9);
2525
#endif
2626

workspace_tools/tests.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@
103103
* DISCO_F4269ZI: (RX=PA_11, TX=PA_12)
104104
* NUCLEO_F103RB: (RX=PA_11, TX=PA_12)
105105
* NUCLEO_F746ZG: (RX=PA_11, TX=PA_12)
106+
* DISCO_F746NG: (RX=PB_8, TX=PB_9)
106107
107108
"""
108109
TESTS = [
@@ -311,7 +312,8 @@
311312
"mcu": ["LPC1549", "LPC1768","B96B_F446VE", "VK_RZ_A1H",
312313
"NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8",
313314
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE",
314-
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG"],
315+
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
316+
"DISCO_F746NG"]
315317
},
316318
{
317319
"id": "MBED_BLINKY", "description": "Blinky",
@@ -585,7 +587,7 @@
585587
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC",
586588
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
587589
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI",
588-
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG"]
590+
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG"]
589591
},
590592
{
591593
"id": "MBED_30", "description": "CAN network test using interrupts",
@@ -594,7 +596,7 @@
594596
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC",
595597
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
596598
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "DISCO_F469NI",
597-
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG"]
599+
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG"]
598600
},
599601
{
600602
"id": "MBED_31", "description": "PWM LED test",

0 commit comments

Comments
 (0)