---
title: "Do not init network"
url: "https://maker.wiznet.io/forum/12181"
markdown_url: "https://maker.wiznet.io/forum/12181/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "linuxbergi"
created: "2017-02-27T16:22:54+09:00"
last_activity: "2017-05-04T08:39:54+09:00"
language: "en"
views: 1296
replies: 5
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# Do not init network

## Question

Asked by linuxbergi on 2017-02-27 in Ethernet Chips.

## I have dealt with the w5500 and it worked. But faced with the w5100. Microcontroller stm32f100. Link is a good (led flash), reset OK. But it is not initialized network attributes. All I tried. What is the problem?

#define WIZNET_WRITE_OPCODE 0xF0
#define WIZNET_READ_OPCODE 0x0F
//Wiznet W5100 Reg Addr
#define MR 0x0000 // Mode Register
#define GAR 0x0001 // Gateway Address: 0x0001 to 0x0004
#define SUBR 0x0005 // Subnet mask Address: 0x0005 to 0x0008
#define SAR 0x0009 // Source Hardware Address (MAC): 0x0009 to 0x000E
#define SIPR 0x000F // Source IP Address: 0x000F to 0x0012
#define RMSR 0x001A // RX Memory Size Register
#define TMSR 0x001B // TX Memory Size Register

void SPI_Write(uint16_t addr, uint8_t data)
{
// Activate the CS pin
wizchip_select();
// Start Wiznet W5100 Write OpCode transmission
wizchip_write(WIZNET_WRITE_OPCODE);
// Start Wiznet W5100 Address High Bytes transmission
wizchip_write((uint8_t)((addr & 0xFF00) >> 8));
// Start Wiznet W5100 Address Low Bytes transmission
wizchip_write((uint8_t)(addr & 0x00FF));
// Start Data transmission
wizchip_write(data);
// CS pin is not active
wizchip_deselect();
}
uint8_t SPI_Read(uint16_t addr)
{ uint8_t r;
// Activate the CS pin
wizchip_select();
// Start Wiznet W5100 Read OpCode transmission
wizchip_write(WIZNET_READ_OPCODE);
// Start Wiznet W5100 Address High Bytes transmission
wizchip_write((uint8_t)((addr & 0xFF00) >> 8) );
// Start Wiznet W5100 Address Low Bytes transmission
wizchip_write((uint8_t)(addr & 0x00FF));
//Read data
r = wizchip_read();
// CS pin is not active
wizchip_deselect();
return(r);
}
void W5100_Init()
{ uint32_t i ;
// Ethernet Setup
uint8_t mac_addr[6] = {0x02,0x16,0x36,0xDE,0x58,0xF6};
uint8_t ip_addr[4] = {192,168,1,2};
uint8_t sub_mask[4] = {255,255,255,0};
uint8_t gtw_addr[4] = {192,168,1,1};
// Setting the Wiznet W5100 Mode Register: 0x80
SPI_Write(MR,0x80); // MR = 0b10000000;
for (i=0xFFFFF;i!=0;i–); // the delay after reset chip

SPI_Write(GAR + 0,gtw_addr[0]);
SPI_Write(GAR + 1,gtw_addr[1]);
SPI_Write(GAR + 2,gtw_addr[2]);
SPI_Write(GAR + 3,gtw_addr[3]);

SPI_Write(SAR + 0,mac_addr[0]);
SPI_Write(SAR + 1,mac_addr[1]);
SPI_Write(SAR + 2,mac_addr[2]);
SPI_Write(SAR + 3,mac_addr[3]);
SPI_Write(SAR + 4,mac_addr[4]);
SPI_Write(SAR + 5,mac_addr[5]);

SPI_Write(SUBR + 0,sub_mask[0]);
SPI_Write(SUBR + 1,sub_mask[1]);
SPI_Write(SUBR + 2,sub_mask[2]);
SPI_Write(SUBR + 3,sub_mask[3]);

SPI_Write(SIPR + 0,ip_addr[0]);
SPI_Write(SIPR + 1,ip_addr[1]);
SPI_Write(SIPR + 2,ip_addr[2]);
SPI_Write(SIPR + 3,ip_addr[3]);
// Setting the Wiznet W5100 RX and TX
SPI_Write(RMSR,0x55);
SPI_Write(TMSR,0x55);
}

## Replies

### Reply 1 by Eugeny, 2017-02-27

![](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/48.png) linuxbergi:

> But it is not initialized network attributes.

How did you know it? Why do you think “network attrubites” are not initialized?
Please explain your issue.

### Reply 2 by linuxbergi, 2017-02-28

I understood not read registers. But why?
Working procedures for 5500:
uint8_t wizchip_read()
{ uint8_t rb;
while (!(SPI1 → SR & SPI_SR_TXE)); //check buffer
SPI1 → DR = 0xFF ; // transfer
while (!(SPI1->SR & SPI_SR_RXNE)); // wait input
rb = SPI1 → DR ;
return rb;
}

void wizchip_write(uint8_t wb)
{ uint8_t rb;
while (!(SPI1 → SR & SPI_SR_TXE)); //wait buffer
SPI1 → DR = wb ; // byte to line
while (!(SPI1->SR & SPI_SR_RXNE)); // wait input
rb = SPI1 → DR ;
}
For 5100 it does not work. Can faulty “hardware”?

### Reply 3 by Eugeny, 2017-02-28

What is the actual circuit diagram of your module?

### Reply 4 by linuxbergi, 2017-03-01

Files attached
[2.pdf](https://maker.wiznet.io/forum/legacyFile.asp?path=pdtfsfDz0HGgR53M8yQpCaO7vtt.pdf) (108 KB)
[1.pdf](https://maker.wiznet.io/forum/legacyFile.asp?path=aL1klIfGPlOJZx1ZzRsDLJqwA3d.pdf) (52.3 KB)

### Reply 5 by Eugeny, 2017-03-01

![](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/48.png) linuxbergi:

> Files attached

Circuit seems to be ok. I propose using scope or logical analyzer to see what is going on with SPI bus and there’re no issues with it (for example, 16 bit communication instead of 8-bit communication).

---

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