WIZNet W5500 with additional enhancements
Fork of WIZnetInterface by
Revision 38:67e763cdde02, committed 2017-10-12
- Comitter:
- Helmut Tschemernjak
- Date:
- Thu Oct 12 12:19:11 2017 +0200
- Parent:
- 37:018436dccfcd
- Commit message:
- Enable Interrupts for all sockets by default.
Added a Soft-Reset in the reset() functions which works perfect
when no Reset line is connected.
Changed in this revision
diff -r 018436dccfcd -r 67e763cdde02 EthernetInterface.cpp --- a/EthernetInterface.cpp Wed Oct 11 14:25:44 2017 +0200 +++ b/EthernetInterface.cpp Thu Oct 12 12:19:11 2017 +0200 @@ -56,11 +56,13 @@ int EthernetInterface::init(uint8_t *mac) { dhcp = true; - // - for (int i =0; i < 6; i++) this->mac[i] = mac[i]; - // + + for (int i =0; i < 6; i++) + this->mac[i] = mac[i]; + reset(); setmac(); + setSIMR(0xff); // enable interrupts for all sockets return 0; } @@ -82,7 +84,7 @@ // @Jul. 8. 2014 add code. should be called to write chip. setmac(); setip(); - + setSIMR(0xff); // enable interrupts for all sockets return 0; }
diff -r 018436dccfcd -r 67e763cdde02 arch/ext/W5500.cpp --- a/arch/ext/W5500.cpp Wed Oct 11 14:25:44 2017 +0200 +++ b/arch/ext/W5500.cpp Thu Oct 12 12:19:11 2017 +0200 @@ -166,6 +166,7 @@ // hw reset reset_pin = 1; reset_pin = 0; + setMR(1<<7); // soft reset the hardware reset is connected. wait_us(500); // 500us (w5500) reset_pin = 1; wait_ms(400); // 400ms (w5500)
diff -r 018436dccfcd -r 67e763cdde02 arch/ext/W5500.h --- a/arch/ext/W5500.h Wed Oct 11 14:25:44 2017 +0200 +++ b/arch/ext/W5500.h Thu Oct 12 12:19:11 2017 +0200 @@ -103,10 +103,10 @@ #define Sn_MR_BCASTB 0x40 #define Sn_MR_MULTI 0x80 -#define Sn_IR_SENDOK 0x10 //Sn_IR values +#define Sn_IR_SENDOK 0x10 #define Sn_IR_TIMEOUT 0x08 #define Sn_IR_RECV 0x04 #define Sn_IR_DISCON 0x02