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

Commit addaff0

Browse files
authored
v1.5.0 to add custom SPI support
### Releases v1.5.0 1. Add support to any custom hardware / software `SPI` for W5x00 using [Ethernet_Generic Library](https://github.com/khoih-prog/Ethernet_Generic) 2. Add support to STM32L5 boards, such as `Nucleo-L552ZE-Q`
1 parent e29e2e9 commit addaff0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+2281
-591
lines changed

examples/AdvancedWebServer/AdvancedWebServer.ino

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -164,18 +164,34 @@ void setup()
164164
digitalWrite(led, 0);
165165

166166
Serial.begin(115200);
167-
Serial.println("\nStart AdvancedWebServer on " + String(BOARD_NAME) + ", using " + String(SHIELD_TYPE));
167+
while (!Serial && millis() < 5000);
168+
169+
Serial.println("\nStart AdvancedWebServer on " + String(BOARD_NAME) + ", with " + String(SHIELD_TYPE));
170+
171+
#if USE_ETHERNET_GENERIC
172+
Serial.println(ETHERNET_GENERIC_VERSION);
173+
#endif
174+
168175
Serial.println(ETHERNET_WEBSERVER_STM32_VERSION);
169176

170177
#if !(USE_BUILTIN_ETHERNET)
171-
ET_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
172-
173-
ET_LOGWARN(F("Default SPI pinout:"));
174-
ET_LOGWARN1(F("MOSI:"), MOSI);
175-
ET_LOGWARN1(F("MISO:"), MISO);
176-
ET_LOGWARN1(F("SCK:"), SCK);
177-
ET_LOGWARN1(F("SS:"), SS);
178-
ET_LOGWARN(F("========================="));
178+
#if (USING_SPI2)
179+
#if defined(CUR_PIN_MISO)
180+
ET_LOGWARN(F("Default SPI pinout:"));
181+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
182+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
183+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
184+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
185+
ET_LOGWARN(F("========================="));
186+
#endif
187+
#else
188+
ET_LOGWARN(F("Default SPI pinout:"));
189+
ET_LOGWARN1(F("MOSI:"), MOSI);
190+
ET_LOGWARN1(F("MISO:"), MISO);
191+
ET_LOGWARN1(F("SCK:"), SCK);
192+
ET_LOGWARN1(F("SS:"), SS);
193+
ET_LOGWARN(F("========================="));
194+
#endif
179195
#endif
180196

181197
#if !(USE_BUILTIN_ETHERNET || USE_UIP_ETHERNET)

examples/AdvancedWebServer/defines.h

Lines changed: 64 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
#if !( defined(STM32F0) || defined(STM32F1) || defined(STM32F2) || defined(STM32F3) ||defined(STM32F4) || defined(STM32F7) || \
1717
defined(STM32L0) || defined(STM32L1) || defined(STM32L4) || defined(STM32H7) ||defined(STM32G0) || defined(STM32G4) || \
18-
defined(STM32WB) || defined(STM32MP1) )
18+
defined(STM32WB) || defined(STM32MP1) || defined(STM32L5) )
1919
#error This code is designed to run on STM32F/L/H/G/WB/MP1 platform! Please check your Tools->Board setting.
2020
#endif
2121

@@ -27,8 +27,8 @@
2727
// If USE_BUILTIN_ETHERNET == false and USE_UIP_ETHERNET == false =>
2828
// either use W5x00 with EthernetXYZ library
2929
// or ENC28J60 with EthernetENC library
30-
#define USE_BUILTIN_ETHERNET true
31-
//#define USE_BUILTIN_ETHERNET false
30+
//#define USE_BUILTIN_ETHERNET true
31+
#define USE_BUILTIN_ETHERNET false
3232

3333
//#define USE_UIP_ETHERNET true
3434
#define USE_UIP_ETHERNET false
@@ -60,15 +60,9 @@
6060
#elif (USE_UIP_ETHERNET)
6161
#warning Using ENC28J60 & UIPEthernet lib
6262
#define SHIELD_TYPE "ENC28J60 & UIPEthernet Library"
63-
#elif USE_ETHERNET_GENERIC
64-
#include "Ethernet_Generic.h"
65-
66-
#define ETHERNET_LARGE_BUFFERS
67-
68-
#define _ETG_LOGLEVEL_ 1
69-
63+
#elif USE_ETHERNET_GENERIC
7064
#warning Using W5x00 & Ethernet_Generic lib
71-
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
65+
//#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
7266
#elif USE_ETHERNET_ESP8266
7367
#include "Ethernet_ESP8266.h"
7468
#warning Using W5x00 & Ethernet_ESP8266 lib
@@ -83,12 +77,65 @@
8377
#warning Using Custom Ethernet library. You must include a library and initialize.
8478
#define SHIELD_TYPE "Custom Ethernet & Ethernet_XYZ Library"
8579
#else
86-
#define USE_ETHERNET_GENERIC true
87-
#include "Ethernet_Generic.h"
80+
#define USE_ETHERNET_GENERIC true
8881
#warning Using default Ethernet_Generic lib
89-
#define SHIELD_TYPE "W5x00 using default Ethernet_Generic Library"
82+
//#define SHIELD_TYPE "W5x00 using default Ethernet_Generic Library"
83+
#endif
84+
85+
//////////////////////////////////////////////////////////////////////////
86+
87+
#if USE_ETHERNET_GENERIC
88+
89+
#include <SPI.h>
90+
91+
// Be sure to use true only if necessary for your board, or compile error
92+
#define USING_CUSTOM_SPI true
93+
94+
#if ( USING_CUSTOM_SPI )
95+
// Currently test OK for F767ZI and L552ZE_Q
96+
#define USING_SPI2 true
97+
98+
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library and custom SPI"
99+
100+
#if (USING_SPI2)
101+
// For L552ZE-Q, F767ZI, but you can change the pins for any other boards
102+
// SCK: 23, MOSI: 22, MISO: 25, SS/CS: 24 for SPI1
103+
#define CUR_PIN_MISO 25
104+
#define CUR_PIN_MOSI 22
105+
#define CUR_PIN_SCK 23
106+
#define CUR_PIN_SS 24
107+
108+
#define SPI_NEW_INITIALIZED true
109+
110+
// Don't create the instance with CUR_PIN_SS, or Ethernet not working
111+
// To change for other boards' SPI libraries
112+
SPIClass SPI_New(CUR_PIN_MOSI, CUR_PIN_MISO, CUR_PIN_SCK);
113+
114+
//#warning Using USE_THIS_SS_PIN = CUR_PIN_SS = 24
115+
116+
#if defined(USE_THIS_SS_PIN)
117+
#undef USE_THIS_SS_PIN
118+
#endif
119+
#define USE_THIS_SS_PIN CUR_PIN_SS //24
120+
121+
#endif
122+
123+
#else
124+
125+
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
126+
127+
#endif
128+
129+
#include "Ethernet_Generic.h"
130+
131+
#define ETHERNET_LARGE_BUFFERS
132+
133+
#define _ETG_LOGLEVEL_ 1
134+
90135
#endif
91136

137+
//////////////////////////////////////////////////////////////////////////
138+
92139
#if defined(STM32F0)
93140
#warning STM32F0 board selected
94141
#define BOARD_TYPE "STM32F0"
@@ -116,6 +163,9 @@
116163
#elif defined(STM32L4)
117164
#warning STM32L4 board selected
118165
#define BOARD_TYPE "STM32L4"
166+
#elif defined(STM32L5)
167+
#warning STM32L5 board selected
168+
#define BOARD_TYPE "STM32L5"
119169
#elif defined(STM32H7)
120170
#warning STM32H7 board selected
121171
#define BOARD_TYPE "STM32H7"

examples/HTTPClient/BasicAuthGet/BasicAuthGet.ino

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,36 @@ EthernetHttpClient httpClient(client, serverAddress, port);
3131
void setup()
3232
{
3333
Serial.begin(115200);
34-
while (!Serial);
34+
while (!Serial && millis() < 5000);
3535

3636
Serial.print("\nStarting BasicAuthGet on " + String(BOARD_NAME));
3737
Serial.println(" with " + String(SHIELD_TYPE));
38-
Serial.println(ETHERNET_WEBSERVER_STM32_VERSION);
3938

40-
ET_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
39+
#if USE_ETHERNET_GENERIC
40+
Serial.println(ETHERNET_GENERIC_VERSION);
41+
#endif
42+
43+
Serial.println(ETHERNET_WEBSERVER_STM32_VERSION);
4144

42-
ET_LOGWARN(F("Default SPI pinout:"));
43-
ET_LOGWARN1(F("MOSI:"), MOSI);
44-
ET_LOGWARN1(F("MISO:"), MISO);
45-
ET_LOGWARN1(F("SCK:"), SCK);
46-
ET_LOGWARN1(F("SS:"), SS);
47-
ET_LOGWARN(F("========================="));
45+
#if !(USE_BUILTIN_ETHERNET)
46+
#if (USING_SPI2)
47+
#if defined(CUR_PIN_MISO)
48+
ET_LOGWARN(F("Default SPI pinout:"));
49+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
50+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
51+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
52+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
53+
ET_LOGWARN(F("========================="));
54+
#endif
55+
#else
56+
ET_LOGWARN(F("Default SPI pinout:"));
57+
ET_LOGWARN1(F("MOSI:"), MOSI);
58+
ET_LOGWARN1(F("MISO:"), MISO);
59+
ET_LOGWARN1(F("SCK:"), SCK);
60+
ET_LOGWARN1(F("SS:"), SS);
61+
ET_LOGWARN(F("========================="));
62+
#endif
63+
#endif
4864

4965
#if !(USE_BUILTIN_ETHERNET || USE_UIP_ETHERNET)
5066
// For other boards, to change if necessary

examples/HTTPClient/BasicAuthGet/defines.h

Lines changed: 63 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
#if !( defined(STM32F0) || defined(STM32F1) || defined(STM32F2) || defined(STM32F3) ||defined(STM32F4) || defined(STM32F7) || \
1717
defined(STM32L0) || defined(STM32L1) || defined(STM32L4) || defined(STM32H7) ||defined(STM32G0) || defined(STM32G4) || \
18-
defined(STM32WB) || defined(STM32MP1) )
18+
defined(STM32WB) || defined(STM32MP1) || defined(STM32L5) )
1919
#error This code is designed to run on STM32F/L/H/G/WB/MP1 platform! Please check your Tools->Board setting.
2020
#endif
2121

@@ -60,15 +60,9 @@
6060
#elif (USE_UIP_ETHERNET)
6161
#warning Using ENC28J60 & UIPEthernet lib
6262
#define SHIELD_TYPE "ENC28J60 & UIPEthernet Library"
63-
#elif USE_ETHERNET_GENERIC
64-
#include "Ethernet_Generic.h"
65-
66-
#define ETHERNET_LARGE_BUFFERS
67-
68-
#define _ETG_LOGLEVEL_ 1
69-
63+
#elif USE_ETHERNET_GENERIC
7064
#warning Using W5x00 & Ethernet_Generic lib
71-
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
65+
//#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
7266
#elif USE_ETHERNET_ESP8266
7367
#include "Ethernet_ESP8266.h"
7468
#warning Using W5x00 & Ethernet_ESP8266 lib
@@ -79,16 +73,69 @@
7973
#define SHIELD_TYPE "ENC28J60 & EthernetENC Library"
8074
#elif USE_CUSTOM_ETHERNET
8175
//#include "Ethernet_XYZ.h"
82-
#include "EthernetENC.h"
76+
#include "Ethernet.h"
8377
#warning Using Custom Ethernet library. You must include a library and initialize.
8478
#define SHIELD_TYPE "Custom Ethernet & Ethernet_XYZ Library"
8579
#else
86-
#define USE_ETHERNET_GENERIC true
87-
#include "Ethernet_Generic.h"
80+
#define USE_ETHERNET_GENERIC true
8881
#warning Using default Ethernet_Generic lib
89-
#define SHIELD_TYPE "W5x00 using default Ethernet_Generic Library"
82+
//#define SHIELD_TYPE "W5x00 using default Ethernet_Generic Library"
9083
#endif
9184

85+
//////////////////////////////////////////////////////////////////////////
86+
87+
#if USE_ETHERNET_GENERIC
88+
89+
#include <SPI.h>
90+
91+
// Be sure to use true only if necessary for your board, or compile error
92+
#define USING_CUSTOM_SPI true
93+
94+
#if ( USING_CUSTOM_SPI )
95+
// Currently test OK for F767ZI and L552ZE_Q
96+
#define USING_SPI2 true
97+
98+
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library and custom SPI"
99+
100+
#if (USING_SPI2)
101+
// For L552ZE-Q, F767ZI, but you can change the pins for any other boards
102+
// SCK: 23, MOSI: 22, MISO: 25, SS/CS: 24 for SPI1
103+
#define CUR_PIN_MISO 25
104+
#define CUR_PIN_MOSI 22
105+
#define CUR_PIN_SCK 23
106+
#define CUR_PIN_SS 24
107+
108+
#define SPI_NEW_INITIALIZED true
109+
110+
// Don't create the instance with CUR_PIN_SS, or Ethernet not working
111+
// To change for other boards' SPI libraries
112+
SPIClass SPI_New(CUR_PIN_MOSI, CUR_PIN_MISO, CUR_PIN_SCK);
113+
114+
//#warning Using USE_THIS_SS_PIN = CUR_PIN_SS = 24
115+
116+
#if defined(USE_THIS_SS_PIN)
117+
#undef USE_THIS_SS_PIN
118+
#endif
119+
#define USE_THIS_SS_PIN CUR_PIN_SS //24
120+
121+
#endif
122+
123+
#else
124+
125+
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
126+
127+
#endif
128+
129+
#include "Ethernet_Generic.h"
130+
131+
#define ETHERNET_LARGE_BUFFERS
132+
133+
#define _ETG_LOGLEVEL_ 1
134+
135+
#endif
136+
137+
//////////////////////////////////////////////////////////////////////////
138+
92139
#if defined(STM32F0)
93140
#warning STM32F0 board selected
94141
#define BOARD_TYPE "STM32F0"
@@ -116,6 +163,9 @@
116163
#elif defined(STM32L4)
117164
#warning STM32L4 board selected
118165
#define BOARD_TYPE "STM32L4"
166+
#elif defined(STM32L5)
167+
#warning STM32L5 board selected
168+
#define BOARD_TYPE "STM32L5"
119169
#elif defined(STM32H7)
120170
#warning STM32H7 board selected
121171
#define BOARD_TYPE "STM32H7"

examples/HTTPClient/CustomHeader/CustomHeader.ino

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,36 @@ EthernetHttpClient httpClient(client, serverAddress, port);
3030
void setup()
3131
{
3232
Serial.begin(115200);
33-
while (!Serial);
33+
while (!Serial && millis() < 5000);
3434

3535
Serial.print("\nStarting BasicAuthGet on " + String(BOARD_NAME));
3636
Serial.println(" with " + String(SHIELD_TYPE));
37-
Serial.println(ETHERNET_WEBSERVER_STM32_VERSION);
3837

39-
ET_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
38+
#if USE_ETHERNET_GENERIC
39+
Serial.println(ETHERNET_GENERIC_VERSION);
40+
#endif
41+
42+
Serial.println(ETHERNET_WEBSERVER_STM32_VERSION);
4043

41-
ET_LOGWARN(F("Default SPI pinout:"));
42-
ET_LOGWARN1(F("MOSI:"), MOSI);
43-
ET_LOGWARN1(F("MISO:"), MISO);
44-
ET_LOGWARN1(F("SCK:"), SCK);
45-
ET_LOGWARN1(F("SS:"), SS);
46-
ET_LOGWARN(F("========================="));
44+
#if !(USE_BUILTIN_ETHERNET)
45+
#if (USING_SPI2)
46+
#if defined(CUR_PIN_MISO)
47+
ET_LOGWARN(F("Default SPI pinout:"));
48+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
49+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
50+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
51+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
52+
ET_LOGWARN(F("========================="));
53+
#endif
54+
#else
55+
ET_LOGWARN(F("Default SPI pinout:"));
56+
ET_LOGWARN1(F("MOSI:"), MOSI);
57+
ET_LOGWARN1(F("MISO:"), MISO);
58+
ET_LOGWARN1(F("SCK:"), SCK);
59+
ET_LOGWARN1(F("SS:"), SS);
60+
ET_LOGWARN(F("========================="));
61+
#endif
62+
#endif
4763

4864
#if !(USE_BUILTIN_ETHERNET || USE_UIP_ETHERNET)
4965
// For other boards, to change if necessary

0 commit comments

Comments
 (0)