QUOTE (Oleg_IT @ Oct 31 2016, 09:01)

данные 512 байт, очередную порцию передаю по приходу ответа с принимающей стороны.
TCP? UDP? Если TCP - погуглите по ключевым словами "LwIP delayed ack" и "LwIP nagle algorithm", возможно найдете что-то полезное.
QUOTE (Oleg_IT @ Oct 31 2016, 09:01)

Если игнорировать сообщение о получении данных и слать чаще, то возникает ошибка памяти и пакеты теряются.
Может стоит выделить больше буферов?
QUOTE (Oleg_IT @ Oct 31 2016, 09:01)

ARM автоматом определяет 10 Мб, если при генерации проекта ставлю 100 Мбит картина не меняется.
Я не знаю, что там генерит куб, но если есть прерывание от PHY, то нужно в его обработчике читать из физики получившиеся параметры канала (реальную скорость и дуплекс/полудуплекс) и прописывать их в ETH->MACCR, а также вызывать netif_set_link_up()/netif_set_link_down(). Если прерывания физики нет - периодически читать физику и ловить состояние Auto Negotiation Complete и Link Down и по ним проделывать вышеописанные действия. Физика, разумеется, должна быть настроена на Auto Negotiation со всеми возможными для вашей реализации параметрами (10/100, Full/Halfduplex).