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

 
 
> Olimex/Startetkit LPC23/4 + RMII KS8721BL, Баги в схеме :(
zltigo
сообщение Sep 24 2008, 12:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Во всех китах Olimex и Starterkit для чипов LPC23xx и LPC24xx ошибка в подключении PHY KS8721BL в RMII Mode. К контроллеру подключен сигнал CRS (Carrier Sense), а не RXDV(CRS_DV - Carrier Sense/Data Valid). Результат плачевен - все фреймы принимаются с якобы битой CRC. Кстати, там по хорошему надо-бы этот сигнальчик к земле подтянуть, а то со встроенной в LPC PU подтяжкой при Reset потенциально могут быть проблемы.

P.S.
Поражает пофигизм разработчиков в обработке ошибок - описанные киты давно уже в продаже, на них написано всяких разных демок-приложений вплоть до Linux, а обрабатывать ошибки sad.gif, получается не заморачивается никто особо sad.gif. Уперся в баг, потратил пару дней, просмотрел интернет вдоль и поперек - кроме одного безответного вопроса на LPC2000 форуме - тишина......


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lebiga
сообщение Oct 1 2008, 07:26
Сообщение #2


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

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



Цитата(zltigo @ Sep 24 2008, 15:04) *
Во всех китах Olimex и Starterkit для чипов LPC23xx и LPC24xx ошибка в подключении PHY KS8721BL в RMII Mode. К контроллеру подключен сигнал CRS (Carrier Sense), а не RXDV(CRS_DV - Carrier Sense/Data Valid). Результат плачевен - все фреймы принимаются с якобы битой CRC. Кстати, там по хорошему надо-бы этот сигнальчик к земле подтянуть, а то со встроенной в LPC PU подтяжкой при Reset потенциально могут быть проблемы.

P.S.
Поражает пофигизм разработчиков в обработке ошибок - описанные киты давно уже в продаже, на них написано всяких разных демок-приложений вплоть до Linux, а обрабатывать ошибки sad.gif, получается не заморачивается никто особо sad.gif. Уперся в баг, потратил пару дней, просмотрел интернет вдоль и поперек - кроме одного безответного вопроса на LPC2000 форуме - тишина......


Так вот где собака порылась! А я на себя грешил... Ошибки CRC в lwip стеке постоянно присутствали,
обойти удалось так - в файле ethernetif.c в функции low_lewel_input увеличил длину считываемого фрейма на 4
len = StartReadFrame()+4;
и все заработало, т.е. дочитываю контрольную сумму. Установил это через анализ пакетов передаваемых по сети и принятых в стек
Правда, не уверен - корректно ли все это... может есть еще какие-то засады?

И еще - с платами стартеркит - работает ли Ethernet с установленной частотой процессора больше 50МГц? У меня глохнет начальная инициализация PHY на процедуре сброса. Проверял на нескольких платах, с частотами ниже 50МГц все ок. Может это и проблема из-за подтяжки вышесказанного сигнала?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2008, 07:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(lebiga @ Oct 1 2008, 09:26) *
И еще - с платами стартеркит - работает ли Ethernet с установленной частотой процессора больше 50МГц? У меня глохнет начальная инициализация PHY на процедуре сброса. Проверял на нескольких платах, с частотами ниже 50МГц все ок.

Да на 72MHz работает. Вопросы
- какая ревизия чипа с точки зрения наличия бага с ограничением скорости работы из Flash
- а какой делитель прописывается в MCFG. Надо 28 - MIIM у Micrel максимум на 2.5MHz "типично" работает. Я "автоматически"
подбираю под CPU при инициализации.
- как там у Вас всякие задержечки-прокладочки организованы?
Цитата
Может это и проблема из-за подтяжки вышесказанного сигнала?

Нет, подтяжка для того, что-бы при power on не свалился в хрен знает какой режим в котром просто глухо не достучаться до него.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
lebiga
сообщение Oct 1 2008, 07:57
Сообщение #4


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

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



Цитата(zltigo @ Oct 1 2008, 10:36) *
Да на 72MHz работает. Вопроса два - какая ревизия чипа с точки зрения наличия бага с ограничением скорости работы из Flash
- а какой делитель прописывается в MCFG. Надо 28 - MIIM у Micrel максимум на 2.5MHz "типично" работает. Я "автоматически"
подбираю под CPU при инициализации.
- как там у Вас всякие задержечки-прокладочки организованы?

Нет, подтяжка для того, что-бы при power on не свалился в хрен знает какой режим в котром просто глухо не достучаться до него.

Делитель 28
задержки ставил, не помогает
это все в самом начале - подается команда сброса в микрел - и ответа нет никогда...
с mam тоже игрался, проц ревизии В
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2008, 08:04
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(lebiga @ Oct 1 2008, 09:57) *
это все в самом начале - подается команда сброса в микрел - и ответа нет никогда...

Ну чего-то намудрено у Вас.
CODE

//---------------------------------------------------------------------------
// Initialize the PHY chip
// Performs the following steps:
// 1.Determines PHY address
// 2.Resets PHY
// 3.Sets PHY clock
// 4.Sets Line speed (auto-negotiation if selected)
//---------------------------------------------------------------------------
int init_phy(void)
{
bint phy_reg;

MCFG = MCFG_HCLK_DIV_28|MCFG_RESET_MII_MGMT;
vSmartDelay_ms( 2 );

#if( EMAC_CFG_RMII == 0 )
MCOMMAND &= ~CR_RMII;
#else
MCOMMAND |= CR_RMII;
#if defined __IOLPC2458_H
SUPP = SUPP_RESET_MII;
#else
SUPP = 0; // Assume and configure RMII link speed logic for 10Mbit
#endif
#endif

for( int i = 0; i < 7; i++ )
{ // Check dividers to yield MII frequency ~2.5 MHz
if( ( (configCPU_CLOCK_HZ/100000L)/mii_dividers[i][0] ) <= 25 )
{ // Index [i][0] = decimal div value, [i][1] = MCFG reg val
MCFG = mii_dividers[i][1]; // Remove reset, set proper MIIM divider
break;
}
}
vSmartDelay_ms( 10 ); // Short delay while PHY exits reset and new divider is set

for( phy_addr = 0; phy_addr < 32; phy_addr++ )
{ // Put PHY in reset mode
write_PHY( PHY_REG_BMCR, BMCR_RESET );
// Wait for hardware reset to end
for( int i = 0; i < 128; i++ )
{ vSmartDelay_ms( 1 );
if( !(read_PHY( PHY_REG_BMCR ) & BMCR_RESET) )
{ // Reset complete
goto phy_found;
}
}
}
printst( "PHY:None" );
return( 1 );

phy_found:
{
// Check if this is a valid PHY
ulong id_phy = (read_PHY( PHY_REG_IDR1 )<<16)|read_PHY( PHY_REG_IDR2 );
if( id_phy == KS8721BL_ID )
xprintf( "PHY%02u:KS8721BL ", phy_addr );
else
{ xprintf( "PHY%02u:%08X ", phy_addr, id_phy );
return( 2 );
}
}

..........





void write_PHY( bint phyreg, bint value )
{
MADR = (phy_addr<<8) | phyreg;
MWTD = value;
// Wait utill operation completed
for( int tout = 0; tout < MII_WR_TOUT; tout++ )
{
if( ( MIND & MIND_BUSY ) == 0 )
break;
}
}

bint read_PHY( bint phyreg )
{
MADR = (phy_addr<<8) | phyreg;
MCMD = MCMD_READ;

// Wait until operation completed
for( int tout = 0; tout < MII_RD_TOUT; tout++ )
{ if( (MIND & (MIND_BUSY|MIND_NOT_VALID) ) == 0 )
{ MCMD = 0;
return( MRDD );
}
}
return( 0 );
}


Сообщение отредактировал zltigo - Oct 1 2008, 10:52


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zltigo   Olimex/Startetkit LPC23/4 + RMII KS8721BL   Sep 24 2008, 12:04
- - Quasar   Цитата(zltigo @ Sep 24 2008, 16:04) Во вс...   Sep 25 2008, 19:18
|- - zltigo   Цитата(Quasar @ Sep 25 2008, 21:18) Я с э...   Sep 25 2008, 19:24
|- - Quasar   Цитата(zltigo @ Sep 25 2008, 23:24) ...   Sep 25 2008, 19:59
- - Vitaliy_ARM   Хорошо, что в свое время я купил демоплату у Embed...   Sep 26 2008, 14:07
|- - zltigo   Цитата(Vitaliy_ARM @ Sep 26 2008, 16:07) ...   Sep 26 2008, 15:08
|- - Vitaliy_ARM   Цитата(zltigo @ Sep 26 2008, 19:08) Если ...   Sep 27 2008, 11:15
|- - zltigo   Цитата(Vitaliy_ARM @ Sep 27 2008, 13:15) ...   Sep 27 2008, 11:58
|- - Vitaliy_ARM   Цитата(zltigo @ Sep 27 2008, 15:58) VDDA_...   Sep 27 2008, 13:03
|- - zltigo   Цитата(Vitaliy_ARM @ Sep 27 2008, 15:03) ...   Sep 27 2008, 13:08
|- - lebiga   Да, сам себя накрутил, где-то взял этот код... Ког...   Oct 1 2008, 10:48
- - virfis   У меня olimex LPC-E2468 с KS8721BL не проходит ини...   Oct 16 2008, 12:08
|- - defunct   На практике действительно так нужен RMII? PHY толь...   Oct 16 2008, 22:52
- - aaarrr   За наличие RMII и версии с индустриальным диапазон...   Oct 16 2008, 22:58
|- - defunct   Я нашел эту разницу и пост удалил. Поворчал по дру...   Oct 16 2008, 23:02
|- - Alexandro   Цитата(aaarrr @ Oct 17 2008, 01:58) Впроч...   Oct 17 2008, 11:49
|- - defunct   Цитата(Alexandro @ Oct 17 2008, 13:49) Не...   Nov 2 2008, 02:48
|- - zltigo   Цитата(defunct @ Nov 2 2008, 05:48) Эта д...   Nov 2 2008, 08:45
- - virfis   В чем разница RMII и MII? Может у меня поэтому не ...   Oct 17 2008, 08:03
|- - mdmitry   Цитата(virfis @ Oct 17 2008, 12:03) В чем...   Oct 17 2008, 10:32
- - haker_fox   QUOTE (zltigo @ Sep 24 2008, 21:04) Во вс...   Jun 27 2011, 06:29
- - haker_fox   Перерезал дорожку. Припоял перемычку. Лучше на ста...   Jun 29 2011, 08:13
|- - zltigo   QUOTE (haker_fox @ Jun 29 2011, 10:13) Пе...   Jun 29 2011, 09:02
- - Lotor   На счет драйвера я отписал тут, думаю поможет - ht...   Jun 29 2011, 09:45
|- - haker_fox   QUOTE (Lotor @ Jun 29 2011, 18:45) На сче...   Jun 30 2011, 00:53
|- - Lotor   Цитата(haker_fox @ Jun 30 2011, 04:53) Мо...   Jun 30 2011, 04:12
|- - haker_fox   QUOTE (Lotor @ Jun 30 2011, 13:12) Должна...   Jun 30 2011, 05:28
||- - Lotor   Цитата(haker_fox @ Jun 30 2011, 09:28) Пр...   Jun 30 2011, 06:15
||- - haker_fox   QUOTE (Lotor @ Jun 30 2011, 15:15) Ничего...   Jun 30 2011, 06:32
||- - sadfeel   Цитата(Lotor @ Jun 30 2011, 09:15) Ничего...   Jul 5 2011, 07:10
|- - yakub_EZ   Цитата(Lotor @ Jun 30 2011, 08:12) У меня...   Jun 30 2011, 08:01
|- - Lotor   Цитата(yakub_EZ @ Jun 30 2011, 12:01) Что...   Jun 30 2011, 08:07
|- - yakub_EZ   Цитата(Lotor @ Jun 30 2011, 12:07) От Чан...   Jun 30 2011, 08:21
|- - Lotor   Цитата(yakub_EZ @ Jun 30 2011, 12:21) Хм....   Jun 30 2011, 09:44
- - yakub_EZ   Демка не простая, а заточенная под стартеркит   Jun 30 2011, 09:56
|- - Lotor   Цитата(yakub_EZ @ Jun 30 2011, 13:56) Дем...   Jun 30 2011, 11:04
- - haker_fox   QUOTE (zltigo @ Jun 29 2011, 18:02) чевид...   Jul 1 2011, 15:48
|- - zltigo   QUOTE (haker_fox @ Jul 1 2011, 17:48) 1. ...   Jul 1 2011, 19:37
|- - haker_fox   QUOTE (zltigo @ Jul 2 2011, 04:37) Да, де...   Jul 2 2011, 08:36
|- - zltigo   QUOTE (haker_fox @ Jul 2 2011, 10:36) Вид...   Jul 2 2011, 09:59
||- - haker_fox   QUOTE (zltigo @ Jul 2 2011, 18:59) PHY по...   Jul 2 2011, 12:41
|- - sasamy   Цитата(haker_fox @ Jul 2 2011, 12:36) За ...   Jul 5 2011, 14:45
|- - zltigo   QUOTE (sasamy @ Jul 5 2011, 17:45) Какой-...   Jul 5 2011, 18:25
|- - sasamy   Цитата(zltigo @ Jul 5 2011, 22:25) Если н...   Jul 5 2011, 18:56
|- - zltigo   QUOTE (sasamy @ Jul 5 2011, 21:56) можно ...   Jul 5 2011, 19:30
|- - sasamy   Цитата(zltigo @ Jul 5 2011, 23:30) В резу...   Jul 5 2011, 20:16
|- - zltigo   QUOTE (sasamy @ Jul 5 2011, 23:16) Вы о ч...   Jul 5 2011, 20:20
|- - sasamy   Цитата(zltigo @ Jul 6 2011, 00:20) О том,...   Jul 5 2011, 20:24
|- - zltigo   QUOTE (sasamy @ Jul 5 2011, 23:24) в обще...   Jul 5 2011, 20:35
|- - sasamy   Цитата(zltigo @ Jul 6 2011, 00:35) бла, б...   Jul 5 2011, 20:41
|- - zltigo   QUOTE (sasamy @ Jul 5 2011, 23:41) ...сог...   Jul 5 2011, 20:46
|- - aaarrr   Цитата(sasamy @ Jul 6 2011, 00:41) ...даж...   Jul 5 2011, 21:20
|- - sasamy   Цитата(aaarrr @ Jul 6 2011, 01:20) Ваше ...   Jul 5 2011, 21:34
|- - aaarrr   Цитата(sasamy @ Jul 6 2011, 01:34) Еще од...   Jul 5 2011, 21:43
||- - sasamy   Цитата(aaarrr @ Jul 6 2011, 01:43) Я разв...   Jul 5 2011, 21:54
||- - aaarrr   Цитата(sasamy @ Jul 6 2011, 01:54) Собств...   Jul 5 2011, 21:56
|- - zltigo   QUOTE (sasamy @ Jul 6 2011, 00:34) .... ...   Jul 5 2011, 22:05
|- - sasamy   Цитата(zltigo @ Jul 6 2011, 01:59) Код fo...   Jul 5 2011, 22:18
|- - aaarrr   Цитата(sasamy @ Jul 6 2011, 02:18) На это...   Jul 5 2011, 22:30
||- - sasamy   Цитата(aaarrr @ Jul 6 2011, 02:30) 2.5МГц...   Jul 5 2011, 22:34
|- - zltigo   QUOTE (sasamy @ Jul 6 2011, 01:18) Вообще...   Jul 5 2011, 22:39
|- - aaarrr   Цитата(zltigo @ Jul 6 2011, 02:39) что-то...   Jul 5 2011, 22:46
||- - zltigo   QUOTE (aaarrr @ Jul 6 2011, 01:46) Вот за...   Jul 5 2011, 23:22
|- - sasamy   Цитата(zltigo @ Jul 6 2011, 02:39) Вы не ...   Jul 5 2011, 22:58
- - IgorKossak   Удалил лишнее. Прошу придерживаться рамок темы, хо...   Jul 6 2011, 20:04
- - Lotor   Не про RMII KS8721BL, зато про Olimex/Startetkit ...   Jul 7 2011, 06:34
- - aaarrr   Цитата(Lotor @ Jul 7 2011, 10:34) Проблем...   Jul 7 2011, 10:22
|- - Lotor   Цитата(aaarrr @ Jul 7 2011, 14:22) В этом...   Jul 8 2011, 07:07
- - FinaC   Цитата(Lotor @ Jul 7 2011, 12:34) Не про ...   Aug 10 2011, 06:07


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

 


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


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