Перейти к содержанию
    

stm32f4 ethernet потеря пакетов

Что то странное у них в таком случае с разработкой, если с первого раза сделали правильно, а потом вот уже 4 семейства они это решение повторить не могут :-)

Да нет, болезнь роста. Архитектуру навертели покруче, а делители, плл и тп профукали по джиттеру. Вот все и жуют их эраты...

 

Может не кварц все-таки, а генератор?? Кварц на 50МГц?

Нет, ему питание подвоить места не нашлось, да и лишние миллиамперы не нужны были, внутренний генератор DP83848 нормально тянет кварц 50Мгц на основной гармонике.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дуплекс надо проверить для начала.

 

Собственно проверил все. В MAC включил авто определение параметров(AutoNegotiation). После настройки посмотрел статусный регистр PHYSTS на физике, посмотрел по даташиту на микруху, получилось так, вроде все в порядке...

b0 1 = Valid link established (for either 10 or 100 Mb/s operation) ;

b1 0 = 100 Mb/s mode;

b2 1 = Full duplex mode

b4 1 = Auto-Negotiation complete

b8 1 = A new Link Code Word Page has been received. Cleared on read of the ANER (address 0x06, bit 1)

 

Что еще проверить ? Использую покупную DP83848 Ethernet Board плату, на ней уже стоит кварц на 50МГц.DP83848-Ethernet-Board-2.jpg

 

Может проблема в принципе отправки ? отправка пакета происходит в прерывании по окончании передачи ДМА ацп. Если поставить небольшую нагрузку, то теряется один пакет в минуту примерно, если подзагрузить сеть то теряется уже очень много... причем их просто нет, шарк их вообще не видит(т.е. нет ни не верной контрольно, ни ошибок, просто нет всего пакета).

 

Ай нид хелп, плиз :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не кварц. Это генератор. Вы должны использовать его частоту для тактирования внутреннего MAC в контроллере. Т.е. 50Мгц с генератора подать обратно в контроллер. Как подключать - написано в референс-мануале. Используйте проводники минимально возможной длины. А насчет "лишних миллиамперов" - то этот "слон" DP83848 жрет под 130 мА и на этом фоне потребление генератора вообще незаметно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

отправка пакета происходит в прерывании

Нельзя в прерывании.

Я бы дал ссылку на документацию на lwip, но её почти нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

dp83848 не работает на 100мбит на длинных проводах, проверьте - переключите на 10

или максимально уменьшите длину шлейфа,

или возьмите lan

Изменено пользователем Огурцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не кварц. Это генератор. Вы должны использовать его частоту для тактирования внутреннего MAC в контроллере. Т.е. 50Мгц с генератора подать обратно в контроллер. Как подключать - написано в референс-мануале. Используйте проводники минимально возможной длины. А насчет "лишних миллиамперов" - то этот "слон" DP83848 жрет под 130 мА и на этом фоне потребление генератора вообще незаметно.

 

А можно ссылку со страницей, а то никак не могу найти :( Сейчас модуль подключен вот так

Ethernet-connections.png

 

 

Нельзя в прерывании.

Я бы дал ссылку на документацию на lwip, но её почти нет.

 

Окай, сейчас перенесу в главный цикл отправку.

 

 

dp83848 не работает на 100мбит на длинных проводах, проверьте - переключите на 10

или максимально уменьшите длину шлейфа,

или возьмите lan

 

Длина - понятие относительное. Сейчас модуль подключен 20 сантиметровыми проводами, это много ?

Изменено пользователем Fobes

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

dp83848 не работает на 100мбит на длинных проводах, проверьте - переключите на 10

или максимально уменьшите длину шлейфа,

или возьмите lan

У меня работает dp83848 на 120 метрах кабеля 5кат на 100 Mb/s. Проверял спецом на 150 метрах, без проблем. Причем кучи устройств.

Вероятно это противоречит вашим утверждениям.

... думаю, что вы банально не разобрались, возможно это не ваша тема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вероятно это противоречит вашим утверждениям

нет, это не противоречит моим утверждениям, мои утверждения верны, ибо они всесильны

 

... думаю, что вы банально не разобрались

думаю, что вы банально не разобрались

 

возможно это не ваша тема.

да, это тема fobes

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

Может всетаки мне поможете... Письками то можно всегда помериться...

Изменено пользователем IgorKossak
бездумное цитирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Длина - понятие относительное. Сейчас модуль подключен 20 сантиметровыми проводами, это много ?

Это сигналы RMII бегут по 20-сантиметровым проводам? Если да, то я бы ждал чудес.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это сигналы RMII бегут по 20-сантиметровым проводам? Если да, то я бы ждал чудес.

 

Провода уменьшил по минимуму, чтобы только воткнуть можно было, отправку пакетов перенес в главный цикл. Терять стал чуть меньше, но все равно в очень больших количествах. Что еще проверить ? :( Подкиньте плиз инфы как затактировать MAC от генератора PHY, гугл ничего не показал. Кто-нибудь пробовал работать на таких скоростях ? Постоянный поток данных в 4Мбита идет с STM... Как только появляется еще один такой в локальной сети, начинается потеря пакетов :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заменил DP83840 на офф. плату расширения для дискавери с LAN8720 на борту... Проблема осталась по прежнему... Если воткнуть напрямую в комп, потерь нет, если воткнуть в роутер, тоже нет, но вот если при этом начать качать скажем торрент на 4Мбита, просто начинают пропадать пакеты. Явно что-то не синхронно работает, подскажите, куда копать ? Где-то должен быть бит на разрешение передачи чтоли ? Где искать чего почитать ? Помогите плиз :( На данный момент отправка производится функцией low_level_output из библиотеки LwIp :( хелп :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если воткнуть напрямую в комп, потерь нет, если воткнуть в роутер, тоже нет, но вот если при этом начать качать скажем торрент на 4Мбита, просто начинают пропадать пакеты.

 

Что-то я, извините, не понимаю.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то я, извините, не понимаю.

 

Втыкаем дискавери напрямую в комп и смотрим номера пакетов, ничего не теряется, все хорошо. Берем роутер, к роутеру подключаем комп и дискавери, также роутер подключен к интернету. Запускаем данные с дискавери и смотрим, потерь опять же нет. Но стоит дать какую-либо нагрузку, т.е. запустить торрент на компе, включить онлайн фильм, то пакеты начинают теряться, причем количество потерь увеличивается с наращиванием нагрузки... дискавери генерирует около 4Мбит в локальную сеть... Так понятнее ? Как-будто передача начинается в то время, когда роутер еще не разрешил ее... Есть идеи ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...