A_Sherbakov 0 8 июня, 2015 Опубликовано 8 июня, 2015 (изменено) · Жалоба Господа, возникла такая проблема с инициализацией Ethernet на контроллере NXP LPC4088. Как обычно первым делом выставляю ножки контроллера а альтернативную ф-ю для Ethernet (всего 18 ног) Далее пытаюсь подать питание на периферию: LPC_SC->PCONP |= 1<<30; И на этом работа процессора останавливается. В ИАРе в просмоторщике регистров, вместо осознанных цифр сплошные прочерки. С остальной периферией все нормально. Может кто сталкивался... Подскажите пожалуйста Да, и еще после этого вылезает ошибка Изменено 8 июня, 2015 пользователем A_Sherbakov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба Питания хватает? Может какое КЗ на это периферии, пока ноги на вход все ок, а как пошевелить надо, так и рушиться все... И еще такой момент у вас на HardFault и прочих падучих прерываниях стоят заглушки, чтобы их заметить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A_Sherbakov 0 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба Питания хватает? Может какое КЗ на это периферии, пока ноги на вход все ок, а как пошевелить надо, так и рушиться все... Питания хватает, ставили на отложенный запуск, Смотрели может какой пик есть. Все ровно держит +3V3. И еще такой момент у вас на HardFault и прочих падучих прерываниях стоят заглушки, чтобы их заметить? Заглушки стоят, но туда не приходит, просто вываливается и все. Есть у нас отладочный диод, который моргает от прерывания периодического таймера. Если EMac не включать, работает... Как только пишем эту строчку (LPC_SC->PCONP |= 1<<30;) все. После нее тишина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 1 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба А Вы в самое начало программы добавьте отключение питания PCONP_bit.PCENET = 0; у меня на LPC2478 что то подобное было, там при сбросе через отладчик etherenet модуль не сбрасывался корректно, это помогло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A_Sherbakov 0 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба А Вы в самое начало программы добавьте отключение питания PCONP_bit.PCENET = 0; Спасибо, но не помогло. Есть подозрение что это что-то с J-tag. Потому что прошил КИТ стандартным ИАРовским примером, встал на мою уже полюбившуюся строчку. И вылетел, переткнул питание, загорелась лампочка на RJ45. Но что интересно с другой периферией все нормально. И UARTы все работают, и SPI()SSP, и многое другое. Странно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба Спасибо, но не помогло. Есть подозрение что это что-то с J-tag Очень похоже на то. У этого МК пины JTAG и ETHERNET случайно не объединены? PCONP - это вообще-то не питание, а тактирование периферии. Убедитесь, что частота тактирования ETHERNET-модуля находится в допустимых пределах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба Спасибо, но не помогло. Есть подозрение что это что-то с J-tag. Потому что прошил КИТ стандартным ИАРовским примером, встал на мою уже полюбившуюся строчку. И вылетел, переткнул питание, загорелась лампочка на RJ45. Но что интересно с другой периферией все нормально. И UARTы все работают, и SPI()SSP, и многое другое. Странно. Посмотрите как проходит пошаговая отладка в окне дизассемблера: это позволит более подробно увидеть происходящее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A_Sherbakov 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба Методом проб и ошибок пришел к такому прогрессу. Если сначала инициализировать ноги тактирования (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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба Да и вот еще что. На ногах 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A_Sherbakov 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба ENET_RX_CLK и ENET_TX_CLK - должны формироваться Micrel (25MHz), у Вас что-то со свитчом. На ките PHY включена в RMII вот и выдает ENET_REF_CLK 50 MHz. Дмитрий, скажите пожалуйста. Может быть такое (не формируются тактовые) из-за того, что микросхема еще не настраивалась, или это должно произойти автоматом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба Дмитрий, скажите пожалуйста. Может быть такое (не формируются тактовые) из-за того, что микросхема еще не настраивалась, или это должно произойти автоматом. Ну, во-первых, проверьте в каком режиме у Вас switch: MAC или PHY. PHY обычно сразу формирует, хотя бывают исключения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LightElf 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба Ну, во-первых, проверьте в каком режиме у Вас switch: MAC или PHY. PHY обычно сразу формирует, хотя бывают исключения. Юзаю KSZ8895 совместно с STM32F4, режим MII. Клоки идут сразу. А вот чтобы свич заработал (начал пакеты гонять) - надо ему шепнуть волшебное слово по MDC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A_Sherbakov 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба 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. Всем еще раз спасибо за советы. Буду пробовать дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба Написано что надо настроить PHY, но как это сделать если мне Ethernet не включить. Эмулировать MII программно через GPIO? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 9 июня, 2015 Опубликовано 9 июня, 2015 · Жалоба Эмулировать MII программно через GPIO? Не пройдет, синхронности не будет. Только внешний генератор (MAC-MAC). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться