---
title: "Reception delays"
url: "https://maker.wiznet.io/forum/13203"
markdown_url: "https://maker.wiznet.io/forum/13203/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "juvf"
created: "2019-02-08T06:44:35+09:00"
last_activity: "2019-02-13T08:07:59+09:00"
language: "en"
views: 627
replies: 7
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# Reception delays

## Question

Asked by juvf on 2019-02-08 in Ethernet Chips.

Добрый день
Обнаружил неприятное поведение W5100.

На W5100 поднял TCP-client. На другом устройстве (под Linux) поднял TCP-server. Сервер, по таймеру, раз в 100 мс отправляет пакет в 20 байт.
Если подключиться к серверу telnet-ом, то видно на глаз, примерно 10 раз в секунду появляются данные.
Если подключиться микросхемой W5100, то она тоже получает эти данные. Но, почему то она получает примерно раз в секунду 200 байт.
Т.е. микроконтроллер непрерывно проверяет выход INT микросхемы W5100, как только появляется прерывание, то микроконтроллер вычитывает статусные регистры, вычитывает размер полученных байт и вычитывает все байты. Так вот… я ожидаю, что микроконтроллер 10 раз в секунду обнаружит INT и 10 раз в секунду вычитает по 20 байт. Но W5100 не выдает INT сразу по приёму, а выдает INT примерно раз в секунду.
Я грешил на задержки и склеивание пакетов в локальной сети, то telnet нормально, т.е. раздельно получает 10 пакетов в секунду.

Может такая “склейка” данных - это особенность микросхемы W5100? Может микросхема без задержек выставлять INT по приёму данных?

## Replies

### Reply 1 by Eugeny, 2019-02-08

Бит ND/MC в каком состоянии?

### Reply 2 by juvf, 2019-02-09

Был в “0”. Поставил в “1” - стало без задержек. СПАСИБО!!!

### Reply 3 by kko, 2019-02-13

**juvf**
не могли бы поделится кодом TCP клиента?
чет сервер работает без вопросов с первой моей реализации по мануалу, а вот клиент не хочет.

### Reply 4 by Eugeny, 2019-02-13 (in reply to reply 3)

Мой код не поможет - он на ассемблере. Лучше озвучьте список проблем.

### Reply 5 by kko, 2019-02-13

![](https://avatars.discourse-cdn.com/v4/letter/k/ed8c4c/48.png) [S0 as server and S1 as client realization problem](https://forum.wiznet.io/t/topic/5533) [W5100](https://maker.wiznet.io/c/tcp-ip-chip/w5100/15)

> There is no problem with S0 and server. All works as expected! But S1 as client won’t work. This code: unsigned char dst_addr[] = {192,168,0,107}; unsigned char dst_port[] = {99,99}; SPI_Write(S1_MR,MR_TCP); //random sending port SPI_Write(S1_PORT,0x12); SPI_Write(S1_PORT + 1,0x12); SPI_Write(S1_CR, CR_CONNECT); SPI_Write(S1_DIPR + 0,dst_addr[0]); SPI_Write(S1_DIPR + 1,dst_addr[1]); SPI_Write(S1_DIPR + 2,dst_addr[2]); SPI_Write(S1_DIPR + 3,dst_addr[3]); _delay_ms(1); SPI_Write(S1_DPORT + 0…

### Reply 6 by Eugeny, 2019-02-13

Что такое S0 и S1? Номер сокета?
Если тот же код работает для 0 и не работает для 1, то проблема или в адресации (неправильно определены адреса регистров или буферов), или сокет 1 неправильно сконфигурирован по размерам буферов.

### Reply 7 by kko, 2019-02-13

S это сокеты. S0 работает как сервер отлично, мне нужно добавить еще клиента на S1
Логика такая: утройство слушает порт и отвечает по запросу, но должно и самостоятельно слать инфу на сервер.
По мануалу все сделал, но клиент не работает. Тут добрый человек подсказал:
1)общий инит W5100
2) даю команду в W5100 OPEN
3)запись в регистры сокета ip адреса и порта удаленного сервера, к
которому хочу подключиться
4) даю команду CONNECT

поробую так. По мануалу другая последовательность.

---

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