Skip to content

Commit 012f2c3

Browse files
committed
[NUCLEO_F767ZI] Add CAN capability
1 parent e4a40cd commit 012f2c3

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
@@ -900,7 +900,7 @@
900900
"macros": ["MBEDTLS_ENTROPY_HARDWARE_ALT"],
901901
"progen": {"target": "nucleo-f767zi"},
902902
"detect_code": ["0818"],
903-
"device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
903+
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
904904
"features": ["IPV4"],
905905
"release_versions": ["2", "5"]
906906
},

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
@@ -326,7 +326,7 @@
326326
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
327327
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
328328
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
329-
"DISCO_F769NI"]
329+
"DISCO_F769NI", "NUCLEO_F767ZI"]
330330
},
331331
{
332332
"id": "MBED_A28", "description": "CAN loopback test",
@@ -339,7 +339,7 @@
339339
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE",
340340
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
341341
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
342-
"DISCO_F769NI"]
342+
"DISCO_F769NI", "NUCLEO_F767ZI"]
343343
},
344344
{
345345
"id": "MBED_BLINKY", "description": "Blinky",

0 commit comments

Comments
 (0)