И снова вопрос про W5100.
Настроил сокет 0 на режим UDP.
Отправляю пакеты размером меньше буфера сокета. Пока буфер сокета не переполняется, все работает отлично.
Как только происходит переход адреса через границу буфера сокета, так W5100 отправляет кучу лишних пакетов.
При следующей отправки все нормализуется пока опять не перейдем границу буфера.
При записи адреса конда передаваемыхданных в регистр Sn_TX_WR пробовал писать значение
Sn_TX_WR += send_size и Sn_TX_WR = ((Sn_TX_WR + send_size) & Sn_TX_MASK).
Разницы никакой, все равно передает лишние пакеты при переходе через границу буфера.
И еще.
Работаю в режиме SPI. Одна транзакция состоит из четырех байт.
Первый - код операции, далее два байта адреса и последний читаемый или передаваемый байт.
Так вот, если эти четыре байта передавать друг за другом, то число не прописывается в регистр W5100.
Если же между ними вставить задержку в несколько единиц микросекунд, то все работает отлично.
Кто-нибудь сталкивался с такими явлениями?
PS. UDP у меня заработал только на сокете 0, сначала пробовал на сокете 1 - ни в какую не хотел работать.