W5500 driver for mbed OS 5
Dependents: http-webserver-example mbed-os-example-sockets
Fork of W5500Interface by
Diff: WIZnet/W5500.cpp
- Revision:
- 8:c71c66d43703
- Parent:
- 6:e2ab76b2be07
- Child:
- 11:5118c2bff025
--- a/WIZnet/W5500.cpp Thu Aug 09 08:42:47 2018 +0000 +++ b/WIZnet/W5500.cpp Fri Aug 10 04:22:24 2018 +0000 @@ -7,37 +7,44 @@ #ifdef USE_W5500 //Debug is disabled by default -#if 0 +#define w5500_DBG 0 + +#if w5500_DBG #define DBG(...) do{debug("%p %d %s ", this,__LINE__,__PRETTY_FUNCTION__); debug(__VA_ARGS__); } while(0); //#define DBG(x, ...) debug("[W5500:DBG]"x"\r\n", ##__VA_ARGS__); #define WARN(x, ...) debug("[W5500:WARN]"x"\r\n", ##__VA_ARGS__); #define ERR(x, ...) debug("[W5500:ERR]"x"\r\n", ##__VA_ARGS__); +#define INFO(x, ...) debug("[W5500:INFO]"x"\r\n", ##__VA_ARGS__); #else #define DBG(x, ...) #define WARN(x, ...) #define ERR(x, ...) -#endif - -#if 1 -#define INFO(x, ...) debug("[W5500:INFO]"x"\r\n", ##__VA_ARGS__); -#else #define INFO(x, ...) #endif #define DBG_SPI 0 +#if !defined(MBED_CONF_W5500_SPI_SPEED) +#define MBED_CONF_W5500_SPI_SPEED 100000 +#endif + + WIZnet_Chip* WIZnet_Chip::inst; WIZnet_Chip::WIZnet_Chip(PinName mosi, PinName miso, PinName sclk, PinName _cs, PinName _reset): cs(_cs), reset_pin(_reset) { spi = new SPI(mosi, miso, sclk); + DBG("SPI interface init...\n"); + spi->format(32, 0); + spi->frequency(MBED_CONF_W5500_SPI_SPEED); cs = 1; reset_pin = 1; inst = this; dhcp = false; } +/* WIZnet_Chip::WIZnet_Chip(SPI* spi, PinName _cs, PinName _reset): cs(_cs), reset_pin(_reset) { @@ -47,6 +54,12 @@ inst = this; dhcp = false; } +*/ + +WIZnet_Chip::~WIZnet_Chip() +{ + delete spi; +} bool WIZnet_Chip::setmac() { @@ -150,9 +163,8 @@ #if defined(USE_WIZ550IO_MAC) //reg_rd_mac(SHAR, mac); // read the MAC address inside the module #endif - //reg_wr_mac(SHAR, mac); - + // set RX and TX buffer size for (int socket = 0; socket < MAX_SOCK_NUM; socket++) { sreg<uint8_t>(socket, Sn_RXBUF_SIZE, 2);