Skip to content
This repository was archived by the owner on Jan 29, 2023. It is now read-only.

Commit 3495515

Browse files
authored
v1.3.2 to use Ethernet_Generic library
### Releases v1.3.2 1. Use new [Ethernet_Generic library](https://github.com/khoih-prog/Ethernet_Generic) as default for W5x00. 2. Add example [multiFileProject](examples/multiFileProject) to demo how to avoid `multiple-definitions` linker error for multiple-file project 3. Rewrite all the examples to support new features
1 parent 61683a4 commit 3495515

File tree

19 files changed

+468
-421
lines changed

19 files changed

+468
-421
lines changed

examples/AM2315_Ethernet_STM32/AM2315_Ethernet_STM32.ino

+72-89
Original file line numberDiff line numberDiff line change
@@ -64,26 +64,26 @@ void heartBeatPrint()
6464

6565
localEthernetIP = Ethernet.localIP();
6666

67-
#if (USE_ETHERNET2 || USE_ETHERNET3)
67+
#if (USE_ETHERNET_GENERIC)
6868
// To modify Ethernet2 library
6969
linkStatus = Ethernet.link();
70-
ET_LOGINFO3(F("localEthernetIP = "), localEthernetIP, F(", linkStatus = "), (linkStatus == 1) ? F("LinkON") : F("LinkOFF") );
70+
ETM_LOGINFO3(F("localEthernetIP = "), localEthernetIP, F(", linkStatus = "), (linkStatus == 1) ? F("LinkON") : F("LinkOFF") );
7171

7272
if ( ( linkStatus == 1 ) && ((uint32_t) localEthernetIP != 0) )
7373
#else
7474

7575
// The linkStatus() is not working with W5100. Just using IP != 0.0.0.0
7676
// Better to use ping for W5100
7777
linkStatus = (int) Ethernet.linkStatus();
78-
ET_LOGINFO3(F("localEthernetIP = "), localEthernetIP, F(", linkStatus = "), (linkStatus == LinkON) ? F("LinkON") : F("LinkOFF") );
78+
ETM_LOGINFO3(F("localEthernetIP = "), localEthernetIP, F(", linkStatus = "), (linkStatus == LinkON) ? F("LinkON") : F("LinkOFF") );
7979

8080
if ( ( (linkStatus == LinkON) || !isW5500 ) && ((uint32_t) localEthernetIP != 0) )
8181
#endif
8282
{
8383
Serial.print(F("H"));
8484
}
8585
else
86-
Serial.print(F("F"));
86+
Serial.print(F("F"));
8787

8888
if (num == 80)
8989
{
@@ -118,112 +118,100 @@ void check_status()
118118
}
119119
}
120120

121-
#if USING_CUSTOMS_STYLE
122-
const char NewCustomsStyle[] /*PROGMEM*/ = "<style>div,input{padding:5px;font-size:1em;}input{width:95%;}body{text-align: center;}\
123-
button{background-color:blue;color:white;line-height:2.4rem;font-size:1.2rem;width:100%;}fieldset{border-radius:0.3rem;margin:0px;}</style>";
124-
#endif
125-
126-
void setup()
121+
void initEthernet()
127122
{
128-
// Debug console
129-
Serial.begin(115200);
130-
while (!Serial);
131-
132-
Serial.print(F("\nStart AM2315_Ethernet_STM32 on "));
133-
Serial.println(BOARD_NAME);
134-
Serial.print(F("Ethernet Shield type : "));
135-
Serial.println(SHIELD_TYPE);
136-
Serial.println(ETHERNET_MANAGER_STM32_VERSION);
137-
Serial.println(DOUBLERESETDETECTOR_GENERIC_VERSION);
138-
139123
#if ( defined(USE_BUILTIN_ETHERNET) && USE_BUILTIN_ETHERNET )
140-
ET_LOGWARN(F("======== USE_BUILTIN_ETHERNET ========"));
124+
ETM_LOGWARN(F("======== USE_BUILTIN_ETHERNET ========"));
141125
#elif ( defined(USE_UIP_ETHERNET) && USE_UIP_ETHERNET )
142-
ET_LOGWARN(F("======== USE_UIP_ETHERNET ========"));
143-
#elif USE_NATIVE_ETHERNET
144-
ET_LOGWARN(F("======== USE_NATIVE_ETHERNET ========"));
145-
#elif USE_ETHERNET
146-
ET_LOGWARN(F("=========== USE_ETHERNET ==========="));
147-
#elif USE_ETHERNET2
148-
ET_LOGWARN(F("=========== USE_ETHERNET2 ==========="));
149-
#elif USE_ETHERNET3
150-
ET_LOGWARN(F("=========== USE_ETHERNET3 ==========="));
151-
#elif USE_ETHERNET_LARGE
152-
ET_LOGWARN(F("=========== USE_ETHERNET_LARGE ==========="));
126+
ETM_LOGWARN(F("======== USE_UIP_ETHERNET ========"));
127+
#elif USE_ETHERNET_GENERIC
128+
ETM_LOGWARN(F("=========== USE_ETHERNET_GENERIC ==========="));
153129
#elif USE_ETHERNET_ENC
154-
ET_LOGWARN(F("=========== USE_ETHERNET_ENC ==========="));
130+
ETM_LOGWARN(F("=========== USE_ETHERNET_ENC ==========="));
155131
#else
156-
ET_LOGWARN(F("========================="));
132+
ETM_LOGWARN(F("========================="));
157133
#endif
158-
159-
ET_LOGWARN(F("Default SPI pinout:"));
160-
ET_LOGWARN1(F("MOSI:"), MOSI);
161-
ET_LOGWARN1(F("MISO:"), MISO);
162-
ET_LOGWARN1(F("SCK:"), SCK);
163-
ET_LOGWARN1(F("SS:"), SS);
164-
ET_LOGWARN(F("========================="));
134+
135+
#if !(USE_BUILTIN_ETHERNET )
136+
ETM_LOGWARN(F("Default SPI pinout:"));
137+
ETM_LOGWARN1(F("MOSI:"), MOSI);
138+
ETM_LOGWARN1(F("MISO:"), MISO);
139+
ETM_LOGWARN1(F("SCK:"), SCK);
140+
ETM_LOGWARN1(F("SS:"), SS);
141+
ETM_LOGWARN(F("========================="));
165142

166143
// unknown board, do nothing, use default SS = 10
167144
#ifndef USE_THIS_SS_PIN
168145
#define USE_THIS_SS_PIN 10 // For other boards
169146
#endif
170147

171148
#if defined(BOARD_NAME)
172-
ET_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
149+
ETM_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
173150
#else
174-
ET_LOGWARN1(F("Unknown board setCsPin:"), USE_THIS_SS_PIN);
151+
ETM_LOGWARN1(F("Unknown board setCsPin:"), USE_THIS_SS_PIN);
175152
#endif
153+
#endif
176154

177155
#if !(USE_BUILTIN_ETHERNET || USE_UIP_ETHERNET)
178-
pinMode(SDCARD_CS, OUTPUT);
179-
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
180-
181-
#if USE_ETHERNET_WRAPPER
156+
#if (defined(ETHERNET_WITH_SD_CARD) && ETHERNET_WITH_SD_CARD)
157+
pinMode(SDCARD_CS, OUTPUT);
158+
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
159+
#endif
182160

183-
EthernetInit();
161+
// For other boards, to change if necessary
162+
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
163+
// Must use library patch for Ethernet, Ethernet2, EthernetLarge libraries
184164

185-
#else
165+
Ethernet.init (USE_THIS_SS_PIN);
166+
167+
#elif USE_CUSTOM_ETHERNET
186168

187-
// For other boards, to change if necessary
188-
#if ( USE_ETHERNET || USE_ETHERNET_LARGE || USE_ETHERNET2 || USE_ETHERNET_ENC )
189-
// Must use library patch for Ethernet, Ethernet2, EthernetLarge libraries
190-
191-
Ethernet.init (USE_THIS_SS_PIN);
192-
193-
#elif USE_ETHERNET3
194-
// Use MAX_SOCK_NUM = 4 for 4K, 2 for 8K, 1 for 16K RX/TX buffer
195-
#ifndef ETHERNET3_MAX_SOCK_NUM
196-
#define ETHERNET3_MAX_SOCK_NUM 4
197-
#endif
198-
199-
Ethernet.setCsPin (USE_THIS_SS_PIN);
200-
Ethernet.init (ETHERNET3_MAX_SOCK_NUM);
201-
202-
#elif USE_CUSTOM_ETHERNET
203-
204-
// You have to add initialization for your Custom Ethernet here
205-
// This is just an example to setCSPin to USE_THIS_SS_PIN, and can be not correct and enough
206-
Ethernet.init(USE_THIS_SS_PIN);
207-
208-
#endif //( USE_ETHERNET || USE_ETHERNET2 || USE_ETHERNET3 || USE_ETHERNET_LARGE )
169+
// You have to add initialization for your Custom Ethernet here
170+
// This is just an example to setCSPin to USE_THIS_SS_PIN, and can be not correct and enough
171+
Ethernet.init(USE_THIS_SS_PIN);
209172

210-
#endif //USE_ETHERNET_WRAPPER
173+
#endif // ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
211174

212175
#endif
213176

177+
#if !(USE_BUILTIN_ETHERNET )
214178
// Just info to know how to connect correctly
215-
ET_LOGWARN(F("========================="));
216-
ET_LOGWARN(F("Currently Used SPI pinout:"));
217-
ET_LOGWARN1(F("MOSI:"), MOSI);
218-
ET_LOGWARN1(F("MISO:"), MISO);
219-
ET_LOGWARN1(F("SCK:"), SCK);
220-
ET_LOGWARN1(F("SS:"), SS);
179+
#if defined(CUR_PIN_MISO)
180+
ETM_LOGWARN(F("Currently Used SPI pinout:"));
181+
ETM_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
182+
ETM_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
183+
ETM_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
184+
ETM_LOGWARN1(F("SS:"), CUR_PIN_SS);
185+
#else
186+
ETM_LOGWARN(F("Currently Used SPI pinout:"));
187+
ETM_LOGWARN1(F("MOSI:"), MOSI);
188+
ETM_LOGWARN1(F("MISO:"), MISO);
189+
ETM_LOGWARN1(F("SCK:"), SCK);
190+
ETM_LOGWARN1(F("SS:"), SS);
191+
#endif
221192

222-
#if USE_ETHERNET3
223-
ET_LOGWARN1(F("SPI_CS:"), SPI_CS);
193+
ETM_LOGWARN(F("========================="));
224194
#endif
225-
ET_LOGWARN(F("========================="));
226-
195+
}
196+
197+
#if USING_CUSTOMS_STYLE
198+
const char NewCustomsStyle[] /*PROGMEM*/ = "<style>div,input{padding:5px;font-size:1em;}input{width:95%;}body{text-align: center;}\
199+
button{background-color:blue;color:white;line-height:2.4rem;font-size:1.2rem;width:100%;}fieldset{border-radius:0.3rem;margin:0px;}</style>";
200+
#endif
201+
202+
void setup()
203+
{
204+
// Debug console
205+
Serial.begin(115200);
206+
while (!Serial);
207+
208+
Serial.print(F("\nStart AM2315_Ethernet_STM32 on ")); Serial.println(BOARD_NAME);
209+
Serial.print(F("Ethernet Shield type : ")); Serial.println(SHIELD_TYPE);
210+
Serial.println(ETHERNET_MANAGER_STM32_VERSION);
211+
Serial.println(DOUBLERESETDETECTOR_GENERIC_VERSION);
212+
213+
initEthernet();
214+
227215
//////////////////////////////////////////////
228216

229217
#if USING_CUSTOMS_STYLE
@@ -244,12 +232,7 @@ void setup()
244232

245233
localEthernetIP = Ethernet.localIP();
246234

247-
#if (USE_ETHERNET2 || USE_ETHERNET3)
248-
// To modify Ethernet2 library
249235
if ( (uint32_t) localEthernetIP != 0 )
250-
#else
251-
if ( (uint32_t) localEthernetIP != 0 )
252-
#endif
253236
{
254237
Serial.print(F("Connected! IP address: "));
255238
Serial.println(localEthernetIP);
@@ -260,7 +243,7 @@ void setup()
260243
}
261244

262245
// Detect W5100 only in Ethernet and EthernetLarge libraries
263-
#if ( USE_ETHERNET || USE_ETHERNET_LARGE)
246+
#if (USE_ETHERNET_GENERIC)
264247
isW5500 = (Ethernet.hardwareStatus() == EthernetW5500);
265248
Serial.print(F("Ethernet type is "));
266249
Serial.println(isW5500 ? F("W5500") : F("W5100"));

examples/AM2315_Ethernet_STM32/defines.h

+11-7
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,8 @@
4343
#define USE_THIS_SS_PIN 10
4444

4545
// Only one if the following to be true
46-
#define USE_BUILTIN_ETHERNET false
47-
#define USE_ETHERNET false
48-
#define USE_ETHERNET2 false
49-
#define USE_ETHERNET3 false
50-
#define USE_ETHERNET_LARGE true
46+
#define USE_BUILTIN_ETHERNET true
47+
#define USE_ETHERNET_GENERIC false
5148
#define USE_ETHERNET_ENC false
5249
#define USE_UIP_ETHERNET false
5350
#define USE_CUSTOM_ETHERNET false
@@ -129,8 +126,15 @@
129126
#define SHIELD_TYPE "Unknown Ethernet shield/library"
130127
#endif
131128

132-
#define W5100_CS 10
133-
#define SDCARD_CS 4
129+
#if USE_ETHERNET_GENERIC
130+
// Change to true if using old Ethernet card with built-in SD
131+
#define ETHERNET_WITH_SD_CARD false
132+
#endif
133+
134+
#if (defined(ETHERNET_WITH_SD_CARD) && ETHERNET_WITH_SD_CARD)
135+
#define W5100_CS 10
136+
#define SDCARD_CS 4
137+
#endif
134138

135139
#define ETHERNET_HOST_NAME "STM32-Ethernet"
136140

examples/AM2315_Ethernet_STM32_LAN8720/AM2315_Ethernet_STM32_LAN8720.ino

+2-4
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,8 @@ void setup()
116116
Serial.begin(115200);
117117
delay(2000);
118118

119-
Serial.print(F("\nStart AM2315_Ethernet_STM32_LAN8720 on "));
120-
Serial.println(BOARD_NAME);
121-
Serial.print(F("Ethernet Shield type : "));
122-
Serial.println(SHIELD_TYPE);
119+
Serial.print(F("\nStart AM2315_Ethernet_STM32_LAN8720 on ")); Serial.println(BOARD_NAME);
120+
Serial.print(F("Ethernet Shield type : ")); Serial.println(SHIELD_TYPE);
123121
Serial.println(ETHERNET_MANAGER_STM32_VERSION);
124122
Serial.println(DOUBLERESETDETECTOR_GENERIC_VERSION);
125123

examples/AM2315_Ethernet_STM32_LAN8720/defines.h

+11-7
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@
4646

4747
// Only one if the following to be true
4848
#define USE_BUILTIN_ETHERNET true
49-
#define USE_ETHERNET false
50-
#define USE_ETHERNET2 false
51-
#define USE_ETHERNET3 false
52-
#define USE_ETHERNET_LARGE false
49+
#define USE_ETHERNET_GENERIC false
5350
#define USE_ETHERNET_ENC false
5451
#define USE_UIP_ETHERNET false
5552
#define USE_CUSTOM_ETHERNET false
@@ -131,9 +128,16 @@
131128
#define SHIELD_TYPE "LAN8720 Ethernet"
132129
#endif
133130

134-
#define W5100_CS 10
135-
#define SDCARD_CS 4
131+
#if USE_ETHERNET_GENERIC
132+
// Change to true if using old Ethernet card with built-in SD
133+
#define ETHERNET_WITH_SD_CARD false
134+
#endif
135+
136+
#if (defined(ETHERNET_WITH_SD_CARD) && ETHERNET_WITH_SD_CARD)
137+
#define W5100_CS 10
138+
#define SDCARD_CS 4
139+
#endif
136140

137-
#define ETHERNET_HOST_NAME "STM32-LAN8720"
141+
#define ETHERNET_HOST_NAME "STM32-Ethernet"
138142

139143
#endif //defines_h

0 commit comments

Comments
 (0)