Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
Инициализация PHY
NoRTeN
Добавлено 14.12.2011 07:42 Редактировалось 14.12.2011 10:46
0
Сообщение: 1
NoRTeN
0

Пункты: 491
Регистрация: 04.12.2011
Доброго времени суток!
При попытки подключить ethernet столкнулся с проблемой инициализации PHY. За основу был взят проект IAR basic-emac-project. Алгоритм действий следующий.
1. Заливаю bootstrap.
2. Компилирую проект IAR без каких либо исправлений.
3. Заливаю бинарник по адресу 0x8400 в dataFlash.
4. Включаю питание, выключаю JTAG.
5. Включаю питание и наблюдаю в терминале следующую картину.
Цитата
-- Basic EMAC Project 1.7-rc1 --
-- AT91SAM9260-EK
-- Compiled: Dec 14 2011 00:19:48 --
-- MAC 0:45:56:78:9a:ac
-- IP 10.159.241.248
P: PHY Initialize ERROR!

Данные пример, как известно, заточен как известно под AT91SAM9260 - EK. Там используется микросхема физ уровня 9161, а в моём случаи 8721. Отсюда вопрос.
Насколько совместим этот пример с моей микросхемой физ уровня?
Что нужно изменить в проекте, что бы инициализация прошла успешно? Если в данном случаи это возможно.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 14.12.2011 09:45 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
PHY Initialize ERROR!

найдите в сорцах место, где генерится это сообщение и смотрите, что софту не нравится..

Цитата
AT91SAM9260-EK

если у вас местный кит, то там вроде разный базовый адрес у PHY по отношению к EK. по крайней мере, в сорцах ядра правиться этот пункт, чтобы поднять сетевой адаптер..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
NoRTeN
Добавлено 14.12.2011 10:53 Редактировалось 14.12.2011 10:54 Сообщение: 3
NoRTeN
0

Пункты: 491
Регистрация: 04.12.2011
Цитата
Цитата
PHY Initialize ERROR!

найдите в сорцах место, где генерится это сообщение и смотрите, что софту не нравится..

Цитата
AT91SAM9260-EK

если у вас местный кит, то там вроде разный базовый адрес у PHY по отношению к EK. по крайней мере, в сорцах ядра правиться этот пункт, чтобы поднять сетевой адаптер..



Кит у меня местный. В Iar эта функция выкидывает ошибку:

Цитата
if (!MACB_InitPhy(pMacb, BOARD_MCK,
emacRstPins, PIO_LISTSIZE(emacRstPins),
emacPins, PIO_LISTSIZE(emacPins)))
{
printf("P: PHY Initialize ERROR!\n\r");
return;
}


Расскажите пожалуйста про базовый адрес PHY. Что он из себя представляет и чем отличается от 260 - EK. Если есть возможность, то где и как его поменять.
Заранее спасибо.
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 14.12.2011 15:12 Сообщение: 4
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
смотреть в процедуре MACB_InitPhy на предмет адреса 0 и править на 1. разобраться что за BOARD_MCK.
Спуститься к концу Подняться к началу
Персональная информация
NoRTeN
Добавлено 14.12.2011 20:25 Сообщение: 5
NoRTeN
0

Пункты: 491
Регистрация: 04.12.2011
Цитата
смотреть в процедуре MACB_InitPhy на предмет адреса 0 и править на 1. разобраться что за BOARD_MCK.

Вы имеете в виду BOARD_EMAC_PHY_ADDR ?
А зачем разбираться с BOARD_MCK, вроде бы и так известно что это за величина. Если я не прав, расскажите пожалуйста поподробней
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.12.2011 11:10 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
А зачем разбираться с BOARD_MCK, вроде бы и так известно что это за величина.

а зачем тогда вы это спрашиваете?
рассуждаем: два человека советуют проверить определенное место - почему бы взять и не проверить его? т.б. мы на эти грабли уже наступали, а некоторые еще и драйвера писали :D

Цитата
Если я не прав, расскажите пожалуйста поподробней

читайте форум - старый и новый :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Wayfarer
Добавлено 17.12.2011 22:26 Сообщение: 7
Wayfarer
0

Пункты: 318
Регистрация: 03.03.2010
Пол: Мужчина
Цитата
Что нужно изменить в проекте, что бы инициализация прошла успешно? Если в данном случаи это возможно.


Возможно и более чем. Многоуважаемые Jury093 и rw9uao сказали Вам в какую сторону копать более чем доступно. Если Вы еще не разобрались, выложу фрагменты своих доработок для запуска платы MAT91SAM9260 (запускалось так же и на процессоре AT91SAM9XE512).

В файле mii.h
Код
#if defined(BOARD_EMAC_PHY_COMP_DM9161)
#define MII_OUI_MSB 0x0181
#define MII_OUI_LSB 0x2E
//#define MII_PHYID1_OUI 0x606E // OUI: Organizationally Unique Identifier
//#define MII_ID 0x0181b8a0
#elif defined(BOARD_EMAC_PHY_COMP_LAN8700)
#define MII_OUI_MSB 0x0007
#define MII_OUI_LSB 0x30
#elif defined(BOARD_EMAC_PHY_COMP_MICREL_8721) //Wayfarer's addon
#define MII_OUI_MSB 0x0022
#define MII_OUI_LSB 0x00 //I dont know value
#else
#error no PHY Ethernet component defined !
#endif


В файле board.h пишем:
Код
/// PHY Component
#define BOARD_EMAC_PHY_COMP_MICREL_8721 1


Я думаю куда вставить соответствующие участки кода приводить нет необходимости.
После этих простых доработок у меня все запустилось и бегало =) Более того было проверено на самописном стеке TCP/IP.
В принципе, в качестве костыля можно было просто отключить проверку на валидность установленного физического уровня, но так будет лучше.
Спуститься к концу Подняться к началу
Персональная информация
Krom
Добавлено 05.04.2012 13:23 Сообщение: 8
Krom
3

Пункты: 366
Регистрация: 11.10.2011
Код
#elif defined(BOARD_EMAC_PHY_COMP_MICREL_8721) //Wayfarer's addon
#define MII_OUI_MSB 0x0022
#define MII_OUI_LSB 0x5
Спуститься к концу Подняться к началу
Персональная информация
Krom
Добавлено 05.04.2012 13:38 Сообщение: 9
Krom
3

Пункты: 366
Регистрация: 11.10.2011
Попробовал аналогичную задачу (basic-emac-project) запустить на местном ките AT91SAM9G45. Добавил в оригинальные библиотеки поддержку MICREL 8721. Компилировал и заливал прогу в IAR. В терминале выдает следующее:

Цитата
-- Basic EMAC Project 1.9-rc1 --
-- AT91SAM9M10-EK
-- Compiled: Apr 5 2012 16:45:22 --
-- MAC 0:45:56:78:9a:ac
-- IP 192.168.0.2
NRST level 0
-I- ** Valid PHY Found: 1
-I- MACB_ResetPhy
-I- AutoNegotiate complete
P: Link detected
Press a key for statistics
=== EMAC Statistics ===
.tx_packets = 0
.tx_comp = 0
.tx_errors = 0
.collisions = 0
.tx_exausts = 0
.tx_underruns = 0
.rx_packets = 0
.rx_eof = 0
.rx_ovrs = 0
.rx_bnas = 0


и не пингуется. Подключал перекрестным кабелем непосредственно к компу. Может JTAG мешает или что-то другое упустил из виду? В чем может быть проблема?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.04.2012 15:05 Редактировалось 05.04.2012 17:17 Сообщение: 10
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
В оригинальной -EK подключение PHY по RMII, на местных платах - MII, найдите это где-то задается в проекте - board.h наверно, и поменяйте.

В gnu это тут
basic-emac-project-at91sam9m10-ekes/at91lib/boards/at91sam9m10-ekes/board.h

/// Board EMAC work mode - RMII/MII ( 1 / 0 )
#define BOARD_EMAC_MODE_RMII 0

Код

-- Basic EMAC Project 1.9-rc1 --
-- AT91SAM9M10-EKES
-- Compiled: Apr 5 2012 17:11:57 --
-- MAC 0:45:56:78:9a:ac
-- IP 10.159.245.156
-D- EMAC_Init
-D- RESET PHY
NRST level 0
-D- MACB_FindValidPhy
-D- _PHYID1 : 0x22, addr: 1
-I- ** Valid PHY Found: 1
-D- _DSCSR : 0x0, addr: 1
-D- ReadPhy Id1 0x22, addresse: 1
-D- ReadPhy Id2 0x1619
-D- Vendor Number Model = 0x21
-D- Model Revision Number = 0x1
-D- _BMCR: 0x3300
-I- AutoNegotiate complete
-D- MACB_GetLinkSpeed
-D- MACB_GetLinkSpeed passed
P: Link detected
Press a key for statistics
-D- packet 0-1 (60)
-D- packet 1-2 (98)
-D- packet 2-3 (98)
-D- packet 3-4 (98)
-D- packet 4-5 (98)
-D- packet 5-6 (98)
-D- packet 6-7 (98)
-D- packet 7-8 (98)
-D- packet 8-9 (98)
-D- packet 9-10 (98)
-D- packet 10-11 (98)
-D- packet 11-12 (98)
-D- packet 12-13 (98)
-D- packet 13-14 (98)
-D- packet 14-15 (98)
-D- packet 15-0 (98)
-D- packet 0-1 (98)
-D- packet 1-2 (98)
-D- packet 2-3 (98)
-D- packet 3-4 (98)
-D- packet 4-5 (98)
-D- EMAC_GetStatistics
=== EMAC Statistics ===
.tx_packets = 21
.tx_comp = 21
.tx_errors = 0
.collisions = 0
.tx_exausts = 0
.tx_underruns = 0
.rx_packets = 42
.rx_eof = 0
.rx_ovrs = 0
.rx_bnas = 0
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX