---
title: "W5500 / W5300 differences and errata?"
url: "https://maker.wiznet.io/forum/10305"
markdown_url: "https://maker.wiznet.io/forum/10305/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "mboehmer"
created: "2014-06-15T08:27:01+09:00"
last_activity: "2017-05-04T08:33:09+09:00"
language: "en"
views: 1592
replies: 1
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# W5500 / W5300 differences and errata?

## Question

Asked by mboehmer on 2014-06-15 in Ethernet Chips.

Hi,

as changing from W5300 to W5500, I start cleaning up all the workarounds for W5300 chip.
One of them is the “get rid of pending TCP transmission packets”, which is in socket_close() for W5300.
Is that cleanup still needed, or being taken care of the socket itself in close action?

Is there any recent errata sheet of W5500?

I also found in one posting here that W5500 still supports IPRAW, while the datasheet doesnt say anything about.
Also Sn_PROTOR - which is maked “reserved” in datasheet, but is being using in application note of WizNet.

Moreover, in one posting here Sn_TX_WR was declared as “you can write to, but changes are only seen after SEND command” - while in datasheet it is declared as normal read/write access register.

Another issue: in recent socket.c the close() function polls for Sn_CR to get 0x00 befoe continuing; I would have expected to poll for Sn_SR to get SOCK_CLOSED?

Some information / errata / update on data sheet would be nice to clarify things (and make migration from W5300 to W5500 easier ![:slight_smile:](https://emoji.discourse-cdn.com/twitter/slight_smile.png?v=12) )

Michael

## Replies

### Reply 1 by suhwan, 2014-06-15

Dear Michael,

> “get rid of pending TCP transmission packets”

=> W5500 do not have this errata.

> Moreover, in one posting here Sn_TX_WR was declared as “you can write to, but changes are only seen after SEND command” - while in datasheet it is declared as normal read/write access register.

=> The variable of Sn_TX_WR is updated after SEND command. When SEND command is fail, it can be prevent the increasing of Sn_TX_WR.

> : in recent socket.c the close() function polls for Sn_CR to get 0x00 before continuing; I would have expected to poll for Sn_SR to get SOCK_CLOSED?

=> It is okay.

Thanks,

---

Source: https://maker.wiznet.io/forum/10305
