|
Olimex/Startetkit LPC23/4 + RMII KS8721BL, Баги в схеме :( |
|
|
|
Sep 24 2008, 12:04
|

Гуру
     
Группа: Свой
Сообщений: 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, а обрабатывать ошибки  , получается не заморачивается никто особо  . Уперся в баг, потратил пару дней, просмотрел интернет вдоль и поперек - кроме одного безответного вопроса на LPC2000 форуме - тишина......
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
 |
Ответов
|
Oct 1 2008, 07:26
|

Частый гость
 
Группа: Свой
Сообщений: 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, а обрабатывать ошибки  , получается не заморачивается никто особо  . Уперся в баг, потратил пару дней, просмотрел интернет вдоль и поперек - кроме одного безответного вопроса на LPC2000 форуме - тишина...... Так вот где собака порылась! А я на себя грешил... Ошибки CRC в lwip стеке постоянно присутствали, обойти удалось так - в файле ethernetif.c в функции low_lewel_input увеличил длину считываемого фрейма на 4 len = StartReadFrame()+4; и все заработало, т.е. дочитываю контрольную сумму. Установил это через анализ пакетов передаваемых по сети и принятых в стек Правда, не уверен - корректно ли все это... может есть еще какие-то засады? И еще - с платами стартеркит - работает ли Ethernet с установленной частотой процессора больше 50МГц? У меня глохнет начальная инициализация PHY на процедуре сброса. Проверял на нескольких платах, с частотами ниже 50МГц все ок. Может это и проблема из-за подтяжки вышесказанного сигнала?
|
|
|
|
|
Oct 1 2008, 07:36
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 1 2008, 07:57
|

Частый гость
 
Группа: Свой
Сообщений: 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 тоже игрался, проц ревизии В
|
|
|
|
|
Oct 1 2008, 08:04
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|