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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Проблема с Ethernet, Не работает Ethernet на NXP LPC4088
A_Sherbakov
сообщение Jun 8 2015, 11:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 16-05-12
Пользователь №: 71 870



Господа, возникла такая проблема с инициализацией Ethernet на контроллере NXP LPC4088.

Как обычно первым делом выставляю ножки контроллера а альтернативную ф-ю для Ethernet (всего 18 ног)
Далее пытаюсь подать питание на периферию:
LPC_SC->PCONP |= 1<<30;
И на этом работа процессора останавливается.

В ИАРе в просмоторщике регистров, вместо осознанных цифр сплошные прочерки.

С остальной периферией все нормально.

Может кто сталкивался... Подскажите пожалуйста

Да, и еще после этого вылезает ошибка

Прикрепленное изображение

Сообщение отредактировал A_Sherbakov - Jun 8 2015, 11:36
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 8 2015, 11:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Питания хватает? Может какое КЗ на это периферии, пока ноги на вход все ок, а как пошевелить надо, так и рушиться все...

И еще такой момент у вас на HardFault и прочих падучих прерываниях стоят заглушки, чтобы их заметить?
Go to the top of the page
 
+Quote Post
A_Sherbakov
сообщение Jun 8 2015, 12:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 16-05-12
Пользователь №: 71 870



Цитата
Питания хватает? Может какое КЗ на это периферии, пока ноги на вход все ок, а как пошевелить надо, так и рушиться все...


Питания хватает, ставили на отложенный запуск, Смотрели может какой пик есть. Все ровно держит +3V3.

Цитата
И еще такой момент у вас на HardFault и прочих падучих прерываниях стоят заглушки, чтобы их заметить?


Заглушки стоят, но туда не приходит, просто вываливается и все. Есть у нас отладочный диод, который моргает от прерывания периодического таймера. Если EMac не включать, работает... Как только пишем эту строчку (LPC_SC->PCONP |= 1<<30;) все. После нее тишина.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 8 2015, 12:25
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



А Вы в самое начало программы добавьте отключение питания
PCONP_bit.PCENET = 0;

у меня на LPC2478 что то подобное было, там при сбросе через отладчик etherenet модуль не сбрасывался корректно, это помогло.
Go to the top of the page
 
+Quote Post
A_Sherbakov
сообщение Jun 8 2015, 12:44
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 16-05-12
Пользователь №: 71 870



Цитата
А Вы в самое начало программы добавьте отключение питания
PCONP_bit.PCENET = 0;


Спасибо, но не помогло. Есть подозрение что это что-то с J-tag. Потому что прошил КИТ стандартным ИАРовским примером, встал на мою уже полюбившуюся строчку. И вылетел, переткнул питание, загорелась лампочка на RJ45. Но что интересно с другой периферией все нормально. И UARTы все работают, и SPI()SSP, и многое другое. Странно.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 8 2015, 12:53
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(A_Sherbakov @ Jun 8 2015, 18:44) *
Спасибо, но не помогло. Есть подозрение что это что-то с J-tag

Очень похоже на то. У этого МК пины JTAG и ETHERNET случайно не объединены?
PCONP - это вообще-то не питание, а тактирование периферии. Убедитесь, что частота тактирования ETHERNET-модуля находится в допустимых пределах.
Go to the top of the page
 
+Quote Post
Obam
сообщение Jun 8 2015, 13:05
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(A_Sherbakov @ Jun 8 2015, 16:44) *
Спасибо, но не помогло. Есть подозрение что это что-то с J-tag. Потому что прошил КИТ стандартным ИАРовским примером, встал на мою уже полюбившуюся строчку. И вылетел, переткнул питание, загорелась лампочка на RJ45. Но что интересно с другой периферией все нормально. И UARTы все работают, и SPI()SSP, и многое другое. Странно.


Посмотрите как проходит пошаговая отладка в окне дизассемблера: это позволит более подробно увидеть происходящее.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
A_Sherbakov
сообщение Jun 9 2015, 10:27
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 16-05-12
Пользователь №: 71 870



Методом проб и ошибок пришел к такому прогрессу. Если сначала инициализировать ноги тактирования (ENET_REF_CLK для RMII), а следующей строчкой подать тактовую на Ethernet периферию, все идет по плану. Такой вот проц. Вот вырезка из мануала UM4088.

Цитата
Remark: when initializing the Ethernet block, it is important to first configure the PHY and
insure that reference clocks (ENET_REF_CLK signal in RMII mode, or both
ENET_RX_CLK and ENET_TX_CLK signals in MII mode) are present at the external pins
and connected to the EMAC module (selecting the appropriate pins using the IOCON
registers) prior to continuing with Ethernet configuration. Otherwise the CPU can become
locked and no further functionality will be possible. This will cause JTAG lose
communication with the target, if debug mode is being used.


Но это на ИАРовском КИТе все заработало. Там и PHY был сконфигурирован и режим RMII. На боевой плате У нас 5-портовый свич Micrel KSZ8895. Хочу режим MII. Инициализирую ENET_RX_CLK и ENET_TX_CLK, подаю тактовую на периферию Ethernet, и все как всегда. Написано что надо настроить PHY, но как это сделать если мне Ethernet не включить.

Да и вот еще что. На ногах ENET_RX_CLK и ENET_TX_CLK тишина, а на КИТе на ENET_REF_CLK 50 MHz.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jun 9 2015, 10:41
Сообщение #9


Знающий
****

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



Цитата(A_Sherbakov @ Jun 9 2015, 14:27) *
Да и вот еще что. На ногах ENET_RX_CLK и ENET_TX_CLK тишина, а на КИТе на ENET_REF_CLK 50 MHz.


ENET_RX_CLK и ENET_TX_CLK - должны формироваться Micrel (25MHz), у Вас что-то со свитчом. На ките PHY включена в RMII вот и выдает ENET_REF_CLK 50 MHz.
Go to the top of the page
 
+Quote Post
A_Sherbakov
сообщение Jun 9 2015, 10:57
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 16-05-12
Пользователь №: 71 870



Цитата
ENET_RX_CLK и ENET_TX_CLK - должны формироваться Micrel (25MHz), у Вас что-то со свитчом. На ките PHY включена в RMII вот и выдает ENET_REF_CLK 50 MHz.


Дмитрий, скажите пожалуйста. Может быть такое (не формируются тактовые) из-за того, что микросхема еще не настраивалась, или это должно произойти автоматом.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jun 9 2015, 11:20
Сообщение #11


Знающий
****

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



Цитата(A_Sherbakov @ Jun 9 2015, 14:57) *
Дмитрий, скажите пожалуйста. Может быть такое (не формируются тактовые) из-за того, что микросхема еще не настраивалась, или это должно произойти автоматом.

Ну, во-первых, проверьте в каком режиме у Вас switch: MAC или PHY. PHY обычно сразу формирует, хотя бывают исключения.
Go to the top of the page
 
+Quote Post
LightElf
сообщение Jun 9 2015, 11:25
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205



QUOTE (DmitryM @ Jun 9 2015, 14:20) *
Ну, во-первых, проверьте в каком режиме у Вас switch: MAC или PHY. PHY обычно сразу формирует, хотя бывают исключения.

Юзаю KSZ8895 совместно с STM32F4, режим MII. Клоки идут сразу. А вот чтобы свич заработал (начал пакеты гонять) - надо ему шепнуть волшебное слово по MDC.
Go to the top of the page
 
+Quote Post
A_Sherbakov
сообщение Jun 9 2015, 12:38
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 16-05-12
Пользователь №: 71 870



Цитата
ENET_RX_CLK и ENET_TX_CLK - должны формироваться Micrel (25MHz), у Вас что-то со свитчом. На ките PHY включена в RMII вот и выдает ENET_REF_CLK 50 MHz.

Спасибо огромное за советы, решили проверить как процессор себя поведет имея на входе 25 МГц на обоих сигналах. Дали с циклона два провода, все пошло. Ура.
Цитата
Ну, во-первых, проверьте в каком режиме у Вас switch: MAC или PHY. PHY обычно сразу формирует, хотя бывают исключения.

Мы хотели подключить Mac - Mac. Пощупал микросхему осциллографом, действительно PHY дает 25 МГц, а Mac нет. С микросхемой работаю впервые. наверно надо настраивать ее в таком режиме не через MIIM а через SPI. Или может какие есть аппаратные средства.

ВЫВОД: Действительно работая в связке NXP LPC4088 и любой PHY нужно сначала конфигурировать ноги отвечающие за тактовые сигналы Ethernet (хотя бы одну для RMII это REF_CLK), а потом подавать тактовую на периферию Ethernet.

Всем еще раз спасибо за советы. Буду пробовать дальше.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 9 2015, 15:46
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(A_Sherbakov @ Jun 9 2015, 16:27) *
Написано что надо настроить PHY, но как это сделать если мне Ethernet не включить.

Эмулировать MII программно через GPIO?
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jun 9 2015, 17:56
Сообщение #15


Знающий
****

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



Цитата(jcxz @ Jun 9 2015, 19:46) *
Эмулировать MII программно через GPIO?

Не пройдет, синхронности не будет. Только внешний генератор (MAC-MAC).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:35
Рейтинг@Mail.ru


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