Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-MLPC1768
Обновление демки uIP
Pavel Ivanchenko
Добавлено 07.01.2010 11:11 Редактировалось 10.05.2010 17:54
0
Сообщение: 1
Pavel Ivanchenko
Admin
4.39

Пункты: 91438
Регистрация: 24.03.2009
Пол: Мужчина
На всех платах, на которых стоит KS8721, имеется один момент - часть пинов овечающих за присвоение адреса PHY либо висит в воздухе, а те что подключены, проконтроллировать их состояние во время включения не представляется возможным, от этого, иногда PHY может выставить себе адрес отличный от 1 и соответственно на этом все встанет.
Этот момент я уяснил уже давно и на всех демках (и для ARM7 и для ARM9) ввел механизм сканирования реального адреса PHY, а вот в примере uIP для LPC1768 слегка поленился, да и на первых 10 платах все прошло без проблем.
Сейчас же изредка стал наблюдать неработоспособность демки uIP, виной которому как раз "плавающий" адрес PHY, в аттаче исправленный вариант инита чипа PHY.
Attachment file: uploads/forum/forum-mR0vZgRfGf-7.rar
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 10.05.2010 17:54 Редактировалось 10.05.2010 17:54 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 91438
Регистрация: 24.03.2009
Пол: Мужчина
C некоторых пор на платах SK-MLPC1768 обострились "странности" инициализации Ethernet PHY (детектировал PHY по 25 адресу, но сетевой интерфейс не работал).
Вобщем дело в состоянии конфигурационных пинов (как эти режимы программно через регистры самомго PHY сткрутить с ходу не понял) при сбросе или подаче питания на PHY.
В функции EMAC_Init нужно перед настройкой пинов (PINCON->PINSEL2 ...) добавить:
Код
GPIO4 -> FIOSET |= 1<<29; /* Configure PHY */
GPIO4 -> FIODIR |= 1<<29;
GPIO1 -> FIOCLR |= 1<<14;
GPIO1 -> FIODIR |= 1<<14;
GPIO1 -> FIOCLR |= 1<<8;
GPIO1 -> FIODIR |= 1<<8;

GPIO4 -> FIOCLR |= 1<<29; /* Power down/up Reset PHY for strapping */
for(tout=0;tout<1000000;tout++);
GPIO4 -> FIOSET |= 1<<29;
for(tout=0;tout<1000000;tout++);
Спуститься к концу Подняться к началу
Персональная информация
Nik_bmstu
Добавлено 22.11.2013 09:22 Сообщение: 3
Nik_bmstu
0

Пункты: 235
Регистрация: 15.05.2013
Добрый день!
Имеются две платы с LPC1768: одна V1.C, другая V1.B. У них заметно отличается разводка платы на нижней стороне под физикой etherneta. Одна и та же прошивка на V1.C работает нормально, а на V1.B физика устанавливает 25 адрес, пишет, что линк есть и зажигает светодиоды, даже когда не подключен провод. На пинги плата не отвечает, с нее ничего по ethernet отправить не удается (на V1.C все работает). Код демки самой последней версии, ресет имеется:

LPC_GPIO4 -> FIOSET |= 1<<29; /* Configure PHY */
LPC_GPIO4 -> FIODIR |= 1<<29;
LPC_GPIO1 -> FIOCLR |= 1<<14;
LPC_GPIO1 -> FIODIR |= 1<<14;
LPC_GPIO1 -> FIOCLR |= 1<<8;
LPC_GPIO1 -> FIODIR |= 1<<8;

LPC_GPIO4 -> FIOCLR |= 1<<29; // Power doun/up Reset PHY for strapping
for(tout=0;tout<1000000;tout++);
LPC_GPIO4 -> FIOSET |= 1<<29;
for(tout=0;tout<1000000;tout++);


/* Enable P1 Ethernet Pins. */
LPC_PINCON->PINSEL2 = 0x50150105;
LPC_PINCON->PINSEL3 = (LPC_PINCON->PINSEL3 & ~0x0000000F) | 0x00000005;
/* Reset all EMAC internal modules. */
LPC_EMAC->MAC1 = MAC1_RES_TX | MAC1_RES_MCS_TX | MAC1_RES_RX | MAC1_RES_MCS_RX |
MAC1_SIM_RES | MAC1_SOFT_RES;
LPC_EMAC->Command = CR_REG_RES | CR_TX_RES | CR_RX_RES;

/* A short delay after reset. */
for (tout = 10000; tout; tout--);

Это можно вылечить программно?
Спуститься к концу Подняться к началу
Персональная информация
Nik_bmstu
Добавлено 22.11.2013 12:12 Сообщение: 4
Nik_bmstu
0

Пункты: 235
Регистрация: 15.05.2013
Прочитал регистры физики после ее инициализации на обеих платах:

V1.B:
Reg[00] = 0001 0000 0000 0000 | 0x1000
Reg[01] = 0111 1000 0110 1101 | 0x786D
Reg[02] = 0000 0000 0010 0010 | 0x0022
Reg[03] = 0001 0110 0001 1001 | 0x1619
Reg[04] = 0000 0001 1110 0001 | 0x01E1
Reg[05] = 0000 0000 1000 0000 | 0x0080
Reg[06] = 0000 0000 0000 0100 | 0x0004
Reg[07] = 0010 0000 0000 0001 | 0x2001
Reg[08] = 0000 0000 1000 0000 | 0x0080
Reg[15] = 0000 0000 0000 0000 | 0x0000
Reg[1B] = 0000 0000 0000 0001 | 0x0001
Reg[1F] = 0001 0101 1000 1000 | 0x1588

V1.C:
Reg[00] = 0001 0000 0000 0000 | 0x1000
Reg[01] = 0111 1000 0110 1101 | 0x786D
Reg[02] = 0000 0000 0010 0010 | 0x0022
Reg[03] = 0001 0110 0001 1001 | 0x1619
Reg[04] = 0000 0001 1110 0001 | 0x01E1
Reg[05] = 0100 0001 1110 0001 | 0x41E1
Reg[06] = 0000 0000 0000 0111 | 0x0007
Reg[07] = 0010 0000 0000 0001 | 0x2001
Reg[08] = 0100 0001 1110 0001 | 0x41E1
Reg[15] = 0000 0000 0000 0000 | 0x0000
Reg[1B] = 0000 0000 0010 1001 | 0x0029
Reg[1F] = 0001 0101 1001 1000 | 0x1598

V1.B находится в режиме half-duplex и не видит устройство по ту сторону провода
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MLPC1768