Verify w5500 chip properly

This commit is contained in:
Reinis Muiznieks 2023-01-16 19:29:16 +02:00
parent 9e24739228
commit bb2f346e55
2 changed files with 4 additions and 2 deletions

View File

@ -230,8 +230,8 @@ static esp_err_t w5500_verify_id(emac_w5500_t *emac)
esp_err_t ret = ESP_OK;
uint8_t version = 0;
ESP_GOTO_ON_ERROR(w5500_read(emac, W5500_REG_VERSIONR, &version, sizeof(version)), err, TAG, "read VERSIONR failed");
// W5500 doesn't have chip ID, we just print the version number instead
ESP_LOGI(TAG, "version=%x", version);
// W5500 doesn't have chip ID, we check the version number instead
ESP_GOTO_ON_FALSE(version == W5500_CHIP_VERSION, ESP_ERR_INVALID_VERSION, err, TAG, "invalid chip version, expected 0x%x, actual 0x%x", W5500_CHIP_VERSION, version);
err:
return ret;

View File

@ -16,6 +16,8 @@
#define W5500_BSB_OFFSET (3) // Block Select Bits offset
#define W5500_RWB_OFFSET (2) // Read Write Bits offset
#define W5500_CHIP_VERSION (0x4) // Chip version that VERSIONR returns
#define W5500_BSB_COM_REG (0x00) // Common Register
#define W5500_BSB_SOCK_REG(s) ((s)*4+1) // Socket Register
#define W5500_BSB_SOCK_TX_BUF(s) ((s)*4+2) // Socket TX Buffer