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

 
 
 
Reply to this topicStart new topic
> Работа с W3150A+, инициализация микросхемы
Andrew32768
сообщение Jul 31 2007, 11:06
Сообщение #1


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

Группа: Свой
Сообщений: 90
Регистрация: 18-06-07
Из: Екатеринбург
Пользователь №: 28 521



Подскажите, что может быть такое?
работаю с 0 сокетом.Довожу его до SOCK_LISTEN, а в SOCK_ESTABLISHED никак не переходит.
вод код программы:

unsigned char Gateway[4] = { 192, 168, 0, 1 } ;
unsigned char Mask[4] = { 255, 255, 255, 0 } ;
unsigned char MAC[6] = { 33, 77, 99, 55, 66, 11 } ; // ÌÀÑ àäðåñ
unsigned char IP[4] = { 192, 168, 0, 199 } ;
unsigned char TimeOut[2] = { 0x0F, 0xA0 } ; // TimeOut for Retransmission (0xFA0 = 400ms)
unsigned char RetryCount = { 10 } ;
unsigned char RxMemSize = { 0x55 } ; // RX Data Memory sizes for Channels
unsigned char TxMemSize = { 0x55 } ; // RX Data Memory sizes for Channels

Write_Reg_W3150A ( MR, 0x80 ) ; // ñáðîñ âñåõ ðåãèñòðîâ

Write_Reg_W3150A ( GAR0 , Gateway[0] ) ; // Çàïèñûâàåì GATEWAY
Write_Reg_W3150A ( GAR1 , Gateway[1] ) ;
Write_Reg_W3150A ( GAR2 , Gateway[2] ) ;
Write_Reg_W3150A ( GAR3 , Gateway[3] ) ;

Write_Reg_W3150A ( SHAR0, MAC[0] ) ; // Çàïèñûâàåì MAC
Write_Reg_W3150A ( SHAR1, MAC[1] ) ;
Write_Reg_W3150A ( SHAR2, MAC[2] ) ;
Write_Reg_W3150A ( SHAR3, MAC[3] ) ;
Write_Reg_W3150A ( SHAR4, MAC[4] ) ;
Write_Reg_W3150A ( SHAR5, MAC[5] ) ;

Write_Reg_W3150A ( SUBR0, Mask[0] ) ; // Çàïèñûâàåì MASK
Write_Reg_W3150A ( SUBR1, Mask[1] ) ;
Write_Reg_W3150A ( SUBR2, Mask[2] ) ;
Write_Reg_W3150A ( SUBR3, Mask[3] ) ;

Write_Reg_W3150A ( SIPR0, IP[0] ) ; // Çàïèñûâàåì IP ADDRESS
Write_Reg_W3150A ( SIPR1, IP[1] ) ;
Write_Reg_W3150A ( SIPR2, IP[2] ) ;
Write_Reg_W3150A ( SIPR3, IP[3] ) ;

Write_Reg_W3150A ( RTR0, TimeOut[0] ) ;
Write_Reg_W3150A ( RTR1, TimeOut[1] ) ;

Write_Reg_W3150A ( RCR, RetryCount ) ;

Write_Reg_W3150A ( RMSR, RxMemSize ) ;
Write_Reg_W3150A ( TMSR, TxMemSize ) ;

#define TCP 1

Write_Reg_W3150A ( S0_MR , TCP ) ;
Write_Reg_W3150A ( S0_PORT0, 0x0 ) ;
Write_Reg_W3150A ( S0_PORT1, 0x80 ) ;
Write_Reg_W3150A ( S0_CR, 1 ) ; // open socket
while ( Read_Reg_W3150A (S0_SR) != 0x13 ) ;

Write_Reg_W3150A ( S0_CR, 2 ) ; // server mode
while ( Read_Reg_W3150A (S0_SR) != 0x14 ) ;

далее, при обращении к этой микросхеме по сети, должен регистр S0_SR, равняться 0x17, но этого ни как не получается. В чем может быть дело?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 31 2007, 11:32
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Andrew32768 @ Jul 31 2007, 14:06) *
Довожу его до SOCK_LISTEN, а в SOCK_ESTABLISHED никак не переходит
Не смог прочитать ваши комментарии кракозябрами, поэтому вопрос: после записи Source IP addr микросхема начинает пинговаться? Возможно проблема в железе (я недавно нарывался на похожее)?
Еще:
Write_Reg_W3150A ( S0_PORT0, 0x0 ) ;
Write_Reg_W3150A ( S0_PORT1, 0x80 ) ;

Если делаете HTTP-сервер, то он обычно висит на порту 80, а не 0x80


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Andrew32768
сообщение Jul 31 2007, 11:37
Сообщение #3


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

Группа: Свой
Сообщений: 90
Регистрация: 18-06-07
Из: Екатеринбург
Пользователь №: 28 521



нет, ничего не пингуется.
у меня модуль NM7010B+
проверяю регистры, после записи, значения совпадают.
Адресация верная, тк сброс работает....
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 31 2007, 11:44
Сообщение #4


Профессионал
*****

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



Цитата(Andrew32768 @ Jul 31 2007, 15:37) *
нет, ничего не пингуется.

Должен пинговаться! у визнета только mac и ip прописываешь и уже пингуется!
а ip адрес из вашей подсети, он не конфликтует? на arp запросы визнет отвечает?
Go to the top of the page
 
+Quote Post
Andrew32768
сообщение Jul 31 2007, 11:59
Сообщение #5


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

Группа: Свой
Сообщений: 90
Регистрация: 18-06-07
Из: Екатеринбург
Пользователь №: 28 521



Цитата(KRS @ Jul 31 2007, 17:44) *
Должен пинговаться! у визнета только mac и ip прописываешь и уже пингуется!
а ip адрес из вашей подсети, он не конфликтует? на arp запросы визнет отвечает?

нет, не отвечает и не пигуется.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 31 2007, 12:47
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Andrew32768 @ Jul 31 2007, 14:59) *
нет, не отвечает и не пигуется.
Тогда может дело в Ethernet-кабеле? Светодиоды на разъеме загораются?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 16:19
Рейтинг@Mail.ru


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