Skip to content

Commit 3c6776f

Browse files
authored
Merge pull request #2753 from jeromecoutant/PR_NUCLEO_F767ZI_CAN
[NUCLEO_F767ZI] Add CAN capability
2 parents 6d628f6 + 012f2c3 commit 3c6776f

File tree

6 files changed

+40
-4
lines changed

6 files changed

+40
-4
lines changed

hal/targets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,7 @@
906906
"macros": ["MBEDTLS_ENTROPY_HARDWARE_ALT"],
907907
"progen": {"target": "nucleo-f767zi"},
908908
"detect_code": ["0818"],
909-
"device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
909+
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
910910
"features": ["IPV4"],
911911
"release_versions": ["2", "5"]
912912
},

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ 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+
CAN_3 = (int)CAN3_BASE
99+
} CANName;
100+
95101
#ifdef __cplusplus
96102
}
97103
#endif

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,3 +326,27 @@ 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+
//*** CAN ***
331+
332+
const PinMap PinMap_CAN_RD[] = {
333+
{PA_8, CAN_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF11_CAN3)},
334+
{PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
335+
{PB_3, CAN_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF11_CAN3)},
336+
{PB_5, CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
337+
{PB_8, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
338+
{PB_12, CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
339+
{PD_0, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
340+
{NC, NC, 0}
341+
};
342+
343+
const PinMap PinMap_CAN_TD[] = {
344+
{PA_12, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
345+
{PA_15, CAN_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF11_CAN3)},
346+
{PB_4, CAN_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF11_CAN3)},
347+
{PB_6, CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
348+
{PB_9, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
349+
{PB_13, CAN_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
350+
{PD_1, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
351+
{NC, NC, 0}
352+
};

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ struct i2c_s {
8585
uint32_t slave;
8686
};
8787

88+
struct can_s {
89+
CANName can;
90+
int index;
91+
};
92+
93+
8894
#include "gpio_object.h"
8995
#include "common_objects.h"
9096

libraries/tests/mbed/can_loopback/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ CAN can1(PA_11, PA_12);
2424
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) || \
2525
defined(TARGET_NUCLEO_F446ZE) || defined(TARGET_NUCLEO_F103RB) || \
2626
defined(TARGET_NUCLEO_F207ZG) || defined(TARGET_NUCLEO_F303ZE) || \
27-
defined(TARGET_DISCO_F769NI)
27+
defined(TARGET_DISCO_F769NI) || defined(TARGET_NUCLEO_F767ZI)
2828
CAN can1(PB_8, PB_9);
2929
#endif
3030

tools/tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@
333333
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
334334
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
335335
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
336-
"DISCO_F769NI"]
336+
"DISCO_F769NI", "NUCLEO_F767ZI"]
337337
},
338338
{
339339
"id": "MBED_A28", "description": "CAN loopback test",
@@ -346,7 +346,7 @@
346346
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE",
347347
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
348348
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
349-
"DISCO_F769NI"]
349+
"DISCO_F769NI", "NUCLEO_F767ZI"]
350350
},
351351
{
352352
"id": "MBED_A29", "description": "i2c_master_slave_asynch",

0 commit comments

Comments
 (0)