реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> stm32cubef4 + LwIP + DP83848
SasaVitebsk
сообщение Jul 30 2014, 11:11
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Во-первых предлагаю открыть раздел, где-нибудь рядом с ОС, посвящённый различным стекам, пакетам, библиотекам. Например LwIP или FatFS. Вопросы по ним впрямую не касаются ни архитектуры ни ОС, а возникают они достаточно часто.

В примерах от st которые с демоплатами идут используется выход м/х DP83848 [7] Int. Насколько я понял, прерывание вызывается при пропадании/ восстановлении соединения ethernet на физике. Для обслуживания этого прерывания запускается поток ну и там обслуживается. В то же время, на ряде досок эта нога на CPU не заводится. Скорее всего ситуация разруливается опросом. В связи с этим у меня 2 вопроса.
1. Может ли кто ткнуть в пример, где работа без этого прерывания.
2. Стоит ли доразводить данную ножку.
Заранее благодарю
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jul 30 2014, 11:32
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(SasaVitebsk @ Jul 30 2014, 15:11) *
В примерах от st которые с демоплатами идут используется выход м/х DP83848 [7] Int.

По умолчанию - это вход PowerDown. Чтобы был Int - нужно сконфигурить DP83848.
Цитата
Насколько я понял, прерывание вызывается при пропадании/ восстановлении соединения ethernet на физике.

Аж 7 причин может вызвать прерывание, конфигурируемо в DP83848. В том числе и link status, speed status, duplex status.
Цитата
2. Стоит ли доразводить данную ножку.


В своих проектах обходился опросом (не stm).
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 30 2014, 13:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Спасибо за ответ.
Цитата(DmitryM @ Jul 30 2014, 15:32) *
По умолчанию - это вход PowerDown.

Это я увидел.
Цитата
Чтобы был Int - нужно сконфигурить DP83848.

Нашёл это место...
Код
  // Configure PHY to generate an interrupt when Eth Link state changes
  // Read Register Configuration
  HAL_ETH_ReadPHYRegister(&EthHandle, PHY_MICR, &regvalue);
  
  regvalue |= (PHY_MICR_INT_EN | PHY_MICR_INT_OE);

  // Enable Interrupts
  HAL_ETH_WritePHYRegister(&EthHandle, PHY_MICR, regvalue );
  
  // Read Register Configuration
  HAL_ETH_ReadPHYRegister(&EthHandle, PHY_MISR, &regvalue);
  
  regvalue |= PHY_MISR_LINK_INT_EN;
    
  // Enable Interrupt on change of link status
  HAL_ETH_WritePHYRegister(&EthHandle, PHY_MISR, regvalue);

А вот это мне не даёт покоя ...
Код
  EthHandle.Init.RxMode = ETH_RXINTERRUPT_MODE;

Хотя в обработке прерывания только Link ...
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jul 30 2014, 13:33
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(SasaVitebsk @ Jul 30 2014, 17:13) *
Код
  
   regvalue |= (PHY_MICR_INT_EN | PHY_MICR_INT_OE);

Нда, надежда на сброс, что в регистре будут нули. А если там генерируется тестовое прерывание? Оно там и останется.
Цитата
Код
  
   regvalue |= PHY_MISR_LINK_INT_EN;

Здесь тоже. Ведь могут быть разрешены и другие источники, если с DP уже работали и регистр не после сброса.
Цитата
Код
EthHandle.Init.RxMode = ETH_RXINTERRUPT_MODE;

Здесь не подскажу, могу только предположить что это прерывание от EMAC самого STM, а не PHY.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jul 30 2014, 22:18
Сообщение #5


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(SasaVitebsk @ Jul 30 2014, 15:11) *
... прерывание вызывается при пропадании/ восстановлении соединения ethernet на физике....


если присмотритесь повнимательней к обработчикам - то их поведение не критично. т.е. если совсем отключить собственно ничего не должно
кардинально поменяться. где то на форуме я уже про не заведённое прерывание (хотя обработчик в сэмплах взводится) где то писал.
прикольно, что у многих работает на шумах, как я понимаешь sm.gif у меня то в готовом девайсе туда выходил детектор нуля -
что так же с частотой в 100Гц опрашивало Ethernet на разрыв соединения sm.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 31 2014, 05:23
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Спасибо. Я эту часть уже переписал. У меня есть поток диагностики, я пока туда добавил.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016