|
|
  |
AVR + CP2200 от SiLabs |
|
|
|
Jun 15 2006, 08:36
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Всем привет. СР2200 - это Ethernet контроллер от SiLabs. Собрал девайс на АТмега16+СР2200, законнектился с чипом, пишу читаю регистры, все нормально, только вот когда включаю приемник и передатчик, то на выходе передатчика нет импульсов линка, а приемник с чего-то думает что подключен к сетке и светит светодиодом, который показывает что есть линк, хотя при этом кабель не подключен вообще. Может кто работал с этим зверем и сталкивался с подобным? Или может слышал о такой проблеме? Нужен срочно хелп, потому что служба техподдержки SiLabs ушла в отказ, сказали что они не работают с Атмелом и поэтому помочь не могут, а время идет. Всем откликнувшимся заранее спасибо.
|
|
|
|
|
Jun 15 2006, 10:09
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Я подключал CP2200 и CP2201 к ARM LPC2129 и LPC2103 у меня вроде была такая фишка с LINKом пока я не стал запускать auto-negotiation в общем инициализация у меня выглядит примерно так: Код //reset CP220x cpReadByte(INT0); //clear INT0 cpWriteByte(SWRST,4); while (!(cpReadByte(INT0)& 0x20)); //wait for reset complete
cpWriteByte(IOPWR,0x0C);
//PHY INIT cpWriteByte(PHYCF,0xFE); cpWriteByte(PHYCN,0x00); Delay(1); r=INT1; cpWriteByte(PHYCN,0x80); Delay(1); cpWriteByte(PHYCN,0xE0); Delay(75);
while (!(cpReadByte(INT1)& 0x01));
while (!(cpReadByte(PHYCN)& 0x01));
//MAC INIT cpWriteMac(MACCF,0xB3); cpWriteMac(IPGT,0x15); cpWriteMac(IPGR,0x0C12);
cpWriteByte(FLASHADDRL,0xFA); cpWriteByte(FLASHADDRH,0x1F); Tmp=cpReadByte(FLASHAUTORD); Tmp|=cpReadByte(FLASHAUTORD)<<8; cpWriteMac(MACAD2,Tmp); Tmp=cpReadByte(FLASHAUTORD); Tmp|=cpReadByte(FLASHAUTORD)<<8; cpWriteMac(MACAD1,Tmp); Tmp=cpReadByte(FLASHAUTORD); Tmp|=cpReadByte(FLASHAUTORD)<<8; cpWriteMac(MACAD0,Tmp);
cpWriteMac(MACCN,0x01); тут соотв. cpReadByte и cpWriteByte этщ чтение и запись в регистры cpWriteMac запись в MAC регистры: Код static void cpWriteMac(uint8_t Addr,uint16_t r) { cpWriteByte(MACADDR,Addr); cpWriteByte(MACDATAH,r>>8); cpWriteByte(MACDATAL,r); cpWriteByte(MACRW,0); }
|
|
|
|
|
Jun 15 2006, 11:46
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(MSprut @ Jun 15 2006, 14:26)  СПАСИБО ОГРОМНОЕ! Хрен бы когда догадался что нужно обязательно включать автонегоциацию для того чтобы девайс хоть как-то начал жить! Я, блин уже 2 недели сижу над этой проблемой, уже чип заменил... Вот клоуны! А что делать если я нехочу автоопределние включать? Я не знаю  Вообще там есть много непонятных моментов! Когда я получил отладочный комплект и первые чипы, их немного здесь пообсуждали http://electronix.ru/forum/index.php?showtopic=14993Сейчас я практически все поборол. Из оставшихся фич - если происходит переполнение (например принят паке а все 8 TLB заняты) то он перестает принимать пакеты (можно выгрести 8 которые были уже, а больше .....) как очистить это состояние я еще не придумал (все руки не доходят) А так чип вполне приличный!
|
|
|
|
|
Jun 15 2006, 13:38
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(MSprut @ Jun 15 2006, 17:32)  Чтобы преполнения не было нужно после чтения каждого пакета из буфера очищать его через запись бита RXSKIP в регистр RXCN. Это то понятно  у меня его обычно и не возникает, но вот при отладке ... иногда возникает переполнение (пока по шагам шагаешь) главное после этого все работает и пакеты можно посылать и принимаются все пакеты которые уже были в буффере, вот только новые не принимаются!
|
|
|
|
|
Jun 16 2006, 12:09
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(MSprut @ Jun 16 2006, 15:03)  В новой версии описания на СР2200 написано что RXAUTORD используется только для Half Duplex, а так нужно только через буфер самому рулить... Действительно лежит новый даташит rev 0.3 И там добавили бит RXVALID и надо смотреть по RXVALID & RXOK Еще главное добавили как продолжить принимать пакеты после переполнения Но вот про то что RXAUTORD используется только для Half Duplex я там не нашел
|
|
|
|
|
Jul 8 2006, 10:44
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
2KRS А не могли бы поделиться примером инициализации для приема пакетов, предназначенных только для данного МАС-адреса и широковещательных пакетов, а то у меня что-то не получается, принимает все к ряду и с настройками не могу разобраться. И еще насчет CRC вконце пакета отправляемого - лепит его туда чтобы я не делал и как-то неустойчиво на пинг отвечает, хотя и проверяю TLBVALID. И еще CRC какой-то неправильный генерит вконце пакета, потому что Ethereal-ом принимаю, в пакете все правильно, контрольные суммы и т.д, а на приаттачиный CRC ругается, говорит что не такой должен быть. Заранее спасибо.
|
|
|
|
|
Jul 10 2006, 09:21
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(MSprut @ Jul 8 2006, 14:44)  2KRS А не могли бы поделиться примером инициализации для приема пакетов, предназначенных только для данного МАС-адреса и широковещательных пакетов, а то у меня что-то не получается, принимает все к ряду и с настройками не могу разобраться. И еще насчет CRC вконце пакета отправляемого - лепит его туда чтобы я не делал и как-то неустойчиво на пинг отвечает, хотя и проверяю TLBVALID. И еще CRC какой-то неправильный генерит вконце пакета, потому что Ethereal-ом принимаю, в пакете все правильно, контрольные суммы и т.д, а на приаттачиный CRC ругается, говорит что не такой должен быть. Заранее спасибо. Так вроде никакой специальной инициализации не надо! После ресета все настроено на прием броадкастовых пакетов и для данного MAC. с CRC у меня никаких проблем не было! а вы длинну и данные отпраляемого пакета проверили? (если лишнии данные напихать тогда может съехать все)
|
|
|
|
|
Jul 10 2006, 12:50
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476

|
Цитата(KRS @ Jul 10 2006, 12:21)  Так вроде никакой специальной инициализации не надо! После ресета все настроено на прием броадкастовых пакетов и для данного MAC. с CRC у меня никаких проблем не было! а вы длинну и данные отпраляемого пакета проверили? (если лишнии данные напихать тогда может съехать все) Да вроде все с длиной нормально, попробую еще проверить.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|