Skip to content

Commit a2e6ec2

Browse files
andreas.larssonadbridge
authored andcommitted
Enabled feature IPV4 for C029
1 parent cb54c48 commit a2e6ec2

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#include "stm32f4xx_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_GPIOB_CLK_ENABLE();
14+
__HAL_RCC_GPIOC_CLK_ENABLE();
15+
16+
/** ETH GPIO Configuration
17+
RMII_REF_CLK ----------------------> PA1
18+
RMII_MDIO -------------------------> PA2
19+
RMII_MDC --------------------------> PC1
20+
RMII_MII_CRS_DV -------------------> PA7
21+
RMII_MII_RXD0 ---------------------> PC4
22+
RMII_MII_RXD1 ---------------------> PC5
23+
RMII_MII_RXER ---------------------> PG2
24+
RMII_MII_TX_EN --------------------> PB11
25+
RMII_MII_TXD0 ---------------------> PB12
26+
RMII_MII_TXD1 ---------------------> PB13
27+
*/
28+
/* Configure PA1, PA2 and PA7 */
29+
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
30+
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
31+
GPIO_InitStructure.Pull = GPIO_PULLUP;
32+
GPIO_InitStructure.Pin = GPIO_PIN_2 | GPIO_PIN_7;
33+
GPIO_InitStructure.Alternate = GPIO_AF11_ETH;
34+
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
35+
36+
GPIO_InitStructure.Pull = GPIO_NOPULL;
37+
GPIO_InitStructure.Pin = GPIO_PIN_1;
38+
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
39+
40+
/* Configure PB13 */
41+
GPIO_InitStructure.Pin = GPIO_PIN_13 | GPIO_PIN_11 | GPIO_PIN_12;
42+
HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
43+
44+
/* Configure PC1, PC4 and PC5 */
45+
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
46+
HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
47+
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 ---------------------> PG2
75+
RMII_MII_TX_EN --------------------> PB11
76+
RMII_MII_TXD0 ---------------------> PB12
77+
RMII_MII_TXD1 ---------------------> PB13
78+
*/
79+
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7);
80+
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13 | GPIO_PIN_11 | GPIO_PIN_12);
81+
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5);
82+
83+
/* Disable the Ethernet global Interrupt */
84+
NVIC_DisableIRQ(ETH_IRQn);
85+
}
86+
}

hal/targets.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@
12111211
"macros": ["HSE_VALUE=24000000", "HSE_STARTUP_TIMEOUT=5000", "CB_INTERFACE_SDIO","CB_CHIP_WL18XX","SUPPORT_80211D_ALWAYS","WLAN_ENABLED"],
12121212
"inherits": ["Target"],
12131213
"device_has": ["ANALOGIN", "CAN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
1214+
"features": ["IPV4"],
12141215
"release_versions": ["5"]
12151216
},
12161217
"NZ32_SC151": {

0 commit comments

Comments
 (0)