Skip to content

Commit 2934ae4

Browse files
committed
disco_f769ni adding ethernet init
the IPV4 feature was already enabled in an earlier commit but the mbed 5 ethernet initialisation was missing
1 parent 53677de commit 2934ae4

File tree

1 file changed

+87
-0
lines changed
  • features/net/FEATURE_IPV4/lwip-interface/lwip-eth/arch/TARGET_STM/TARGET_STM32F7/TARGET_DISCO_F769NI

1 file changed

+87
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#include "stm32f7xx_hal.h"
2+
3+
/**
4+
* Override HAL Eth Init function
5+
*/
6+
void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
7+
{
8+
GPIO_InitTypeDef GPIO_InitStructure;
9+
if (heth->Instance == ETH) {
10+
11+
/* Enable GPIOs clocks */
12+
__HAL_RCC_GPIOA_CLK_ENABLE();
13+
__HAL_RCC_GPIOC_CLK_ENABLE();
14+
__HAL_RCC_GPIOD_CLK_ENABLE();
15+
__HAL_RCC_GPIOG_CLK_ENABLE();
16+
17+
/** ETH GPIO Configuration
18+
RMII_REF_CLK ----------------------> PA1
19+
RMII_MDIO -------------------------> PA2
20+
RMII_MDC --------------------------> PC1
21+
RMII_MII_CRS_DV -------------------> PA7
22+
RMII_MII_RXD0 ---------------------> PC4
23+
RMII_MII_RXD1 ---------------------> PC5
24+
RMII_MII_RXER ---------------------> PD5
25+
RMII_MII_TX_EN --------------------> PG11
26+
RMII_MII_TXD0 ---------------------> PG13
27+
RMII_MII_TXD1 ---------------------> PG14
28+
*/
29+
/* Configure PA1, PA2 and PA7 */
30+
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
31+
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
32+
GPIO_InitStructure.Pull = GPIO_NOPULL;
33+
GPIO_InitStructure.Alternate = GPIO_AF11_ETH;
34+
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;
35+
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
36+
37+
/* Configure PC1, PC4 and PC5 */
38+
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
39+
HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
40+
41+
/* Configure PD5 */
42+
GPIO_InitStructure.Pin = GPIO_PIN_5;
43+
HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);
44+
45+
/* Configure PG11, PG13 and PG14 */
46+
GPIO_InitStructure.Pin = GPIO_PIN_11 | GPIO_PIN_13 | GPIO_PIN_14;
47+
HAL_GPIO_Init(GPIOG, &GPIO_InitStructure);
48+
49+
/* Enable the Ethernet global Interrupt */
50+
HAL_NVIC_SetPriority(ETH_IRQn, 0x7, 0);
51+
HAL_NVIC_EnableIRQ(ETH_IRQn);
52+
53+
/* Enable ETHERNET clock */
54+
__HAL_RCC_ETH_CLK_ENABLE();
55+
}
56+
}
57+
58+
/**
59+
* Override HAL Eth DeInit function
60+
*/
61+
void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
62+
{
63+
if (heth->Instance == ETH) {
64+
/* Peripheral clock disable */
65+
__HAL_RCC_ETH_CLK_DISABLE();
66+
67+
/** ETH GPIO Configuration
68+
RMII_REF_CLK ----------------------> PA1
69+
RMII_MDIO -------------------------> PA2
70+
RMII_MDC --------------------------> PC1
71+
RMII_MII_CRS_DV -------------------> PA7
72+
RMII_MII_RXD0 ---------------------> PC4
73+
RMII_MII_RXD1 ---------------------> PC5
74+
RMII_MII_RXER ---------------------> PD5
75+
RMII_MII_TX_EN --------------------> PG11
76+
RMII_MII_TXD0 ---------------------> PG13
77+
RMII_MII_TXD1 ---------------------> PG14
78+
*/
79+
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7);
80+
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5);
81+
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5);
82+
HAL_GPIO_DeInit(GPIOG, GPIO_PIN_11 | GPIO_PIN_13 | GPIO_PIN_14);
83+
84+
/* Disable the Ethernet global Interrupt */
85+
NVIC_DisableIRQ(ETH_IRQn);
86+
}
87+
}

0 commit comments

Comments
 (0)