اطلاعیه

Collapse
No announcement yet.

مشکل در گرفتن W5100 PING

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در گرفتن W5100 PING

    سلام
    چند روزیه دارم سر این ایسی کار میکنم . به نطر خیلی سر راست میاد ریجیسترها و برنامه اما من دیگه موندم . هر کاری میکنم جواب نمیده پینگش
    شیلد 5100 ارداینو رو دارم با مگا 32 و اتمل استدیو مینویسم (برد ارداینو ندارم و نمیخوامم باهاش کار کنم اینم هیتر نداشتم شیلد گرفتم )
    این برنامه خیلی سر راسته هر کاریش میکنم جواب نمیده میخواستم اساتید یه نگاه بهش بندازید . مرسی دوستان
    یکم زیاد به نطر میاد اما بیشتر دیفاینه . مرسی . تو پروتئوس همه دیتا ها درست سند میشه با دیباگر نگاه کردم . mac رو همینجوری گذاشتم از رو مثال تو نت
    کد:
    #include <avr/io.h>
    #define F_CPU 8000000 //FRIHZ
    #include <util/delay.h>
    //*******************************************************************
    ///Hardware PINS:EXTERNAL
    #define __delay_val 500
    //*******************************************************************
    ///Common_registers:INTERNAL
    //*******************************************************************
    #define C_MR	 0x0000 //Mode+0
    #define C_GAR	 0x0001 //Gate away adress_0x0004+3
    #define C_SUBR  0x0005 //Subnet Mask_0x0008+3
    #define C_SHAR  0x0009 //Source Hardware Address_0x000E+5
    #define C_SIPAR  0x000F //Source IP Address_0x0012+3
    #define C_IRR	 0X0015 //Interrupt+0///Refrenced To C_IRR_CON
    #define C_IRMR  0x0016 //Interrupt Mask+0
    #define C_RTR   0x0017 //Retry time_0x0018+1
    #define C_RCR	 0x0019 //Retry Count+0
    #define C_RxMSR  0x001A //RX Memory Size+0
    #define C_TxMSR  0x001B //TX Memory Size+0
    #define C_PATR  0x001C //Authentication Type in PPPoE+1
    #define C_PTIMER 0x0028 //PPP LCP Request Timer+0
    #define C_PMAGIC 0x0029 //PPP LCP Magic number+0
    #define C_UIPAR  0x002A //Unreachable IP Address+3
    #define C_UPORTR 0x002E //Unreachable Port
    /////////////////////////////////Other registers Are Reserved By Chip
    //*******************************************************************
    //Common values: EXTERNAL
    //*******************************************************************
    ///MODE REG:
    #define V_C_MR 0x80
    //B7:RST//If this bit is ‘1’, internal register will be initialized.cleared after reset
    //B6:Reserved
    //B5:Reserved
    //B4:Ping Block Mode//If the bit is set as ‘1’, there is no response to the ping request
    //B3:PPPoE Mode//0_Disable//use ADSL without router=Enable
    //B2:NA
    //B1:Address Auto-Increment
    //B0:IND
    //default:0b1000000
    ///////////////////////////
    ///Gate way Adress:
    #define V_C_GAR_0 192
    #define V_C_GAR_1 168
    #define V_C_GAR_2 18
    #define V_C_GAR_3 90
    ///Sub Net Mask:
    #define V_C_SUBR_0 255
    #define V_C_SUBR_1 255
    #define V_C_SUBR_2 255
    #define V_C_SUBR_3 0
    ///Source Hardware Address:
    #define V_C_SHAR_0 0x00
    #define V_C_SHAR_1 0x16
    #define V_C_SHAR_2 0x36
    #define V_C_SHAR_3 0xde
    #define V_C_SHAR_4 0x58
    #define V_C_SHAR_5 0xF6 
    ///Source IP Address:
    #define V_C_SIPAR0 192
    #define V_C_SIPAR1 168
    #define V_C_SIPAR2 18
    #define V_C_SIPAR3 91
    ///C_IRR= Read Only//SKIPPED_BITS Simular to Mask REG
    ///Interrupt Mask
    #define V_C_IRMR 0b01101110
    //B7:IP Conflict Enable//when there is ARP request with same IP address as Source IP address//1=Enable
    //B6:UNREACH//Destination unreachable "USE ONLU IN UDP"//1=Enable
    //B5:PPPoE Connection Close//In the PPPoE Mode, if the PPPoE connection is closed, ‘1’ is set
    //B4:Reserved
    //B3:Occurrence of Socket 3 Socket Interrupt*
    //B2:Occurrence of Socket 2 Socket Interrupt*
    //B1:Occurrence of Socket 1 Socket Interrupt*
    //B0:Occurrence of Socket 0 Socket Interrupt*
    //default: 0b01101110
    //*It is set in case that interrupt occurs at the socket -
    //For more detailed information of socket interrupt, refer to Socket x Interrupt Register -
    //This bit will be automatically cleared when Sx_IR is cleared to 0x00.
    ///////////////////////////
    ///Retry time:
    #define V_C_RTR_0 0x07
    #define V_C_RTR_1 0xD0
    //200Ms By def//1=1uS
    ///////////////////////////
    //Retry Count:
    #define V_C_RCR 4
    //4 times by def
    ///////////////////////////
    //RX&TX Memory Size:
    #define V_C_RxMSR 0x55
    #define V_C_TxMSR 0x55
    //B0.1=Socket0
    //B2.3=Socket1
    //B4.5=Socket2
    //B6.7=Socket3
    //00=1kB___11=8KB
    //default:EQ to all
    ///////////////////////////
    //Authentication Type in PPPoE:
    #define V_C_PATR_0  
    #define V_C_PATR_1
    //deafult:NA
    ///////////////////////////
    //PPP LCP Request Timer:
    #define V_C_PTIMER
    //deafult:NA
    ///////////////////////////
    //PPP LCP Magic number:
    #define V_C_PMAGIC 
    //deafult:NA
    ///////////////////////////
    //Unreachable IP Address+3:
    #define V_C_UIPAR  
    //deafult:NA
    /////////////////////////// 
    //Unreachable Port:
    #define V_C_UPORTR  
    //deafult:NA
    ///////////////////////////
    //*******************************************************************
    //Functions Start
    //*******************************************************************
    ///////////////////////////////////////////////////////
    //*******************************************************************
    //SPI Set
    //*******************************************************************
    void w_spi_init(void)
    {
    // Function: Bit7=Out Bit6=In Bit5=Out Bit4=Out Bit3=In Bit2=In Bit1=In Bit0=In
    DDRB=(1<<DDB7) | (0<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
    // State: Bit7=0 Bit6=T Bit5=0 Bit4=0 Bit3=T Bit2=T Bit1=T Bit0=T
    PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 62.500 kHz
    // SPI Clock Phase: Cycle Start
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=(0<<SPIE) | (1<<SPE) | (0<<DORD) | (1<<MSTR) | (0<<CPOL) | (0<<CPHA) | (1<<SPR1) | (1<<SPR0);
    SPSR=(0<<SPI2X);
    
    }
    ///////////////////////////////////////////////////////
    //*******************************************************************
    //W5100 Write
    //*******************************************************************
    void W_write(int add,int data)
    {
    	SPDR = (add & 0xFF00) >> 8;
    	// Wait for transmission complete
    	while(!(SPSR & (1<<SPIF)));
    	// Start Wiznet W5100 Address Low Bytes transmission
    	SPDR = add & 0x00FF;
    	// Wait for transmission complete
    	while(!(SPSR & (1<<SPIF)));
    	// Start Data transmission
    	SPDR = data;
    	// Wait for transmission complete
    	while(!(SPSR & (1<<SPIF)));
    }
    ///////////////////////////////////////////////////////
    //*******************************************************************
    //W5100 Common val set
    //*******************************************************************
    void w_c_init(void)
    {
    	/////Mode
    	W_write(C_MR,V_C_MR);
    	_delay_ms(__delay_val);
    	/////Gate away adress
    	W_write(C_GAR , V_C_GAR_0);
    	_delay_ms(__delay_val);
    	W_write(C_GAR + 1 , V_C_GAR_1);
    	_delay_ms(__delay_val);
    	W_write(C_GAR + 2 , V_C_GAR_2);
    	_delay_ms(__delay_val);
    	W_write(C_GAR + 3 , V_C_GAR_3);
    	//Subnet Mask
    	W_write(C_SUBR , V_C_SUBR_0);
    	_delay_ms(__delay_val);
    	W_write(C_SUBR + 1 , V_C_SUBR_1);
    	_delay_ms(__delay_val);
    	W_write(C_SUBR + 2 , V_C_SUBR_2);
    	_delay_ms(__delay_val);
    	W_write(C_SUBR + 3 , V_C_SUBR_3);
    	//Source Hardware Address
    	W_write(C_SHAR , V_C_SHAR_0);
    	_delay_ms(__delay_val);
    	W_write(C_SHAR + 1 , V_C_SHAR_1);
    	_delay_ms(__delay_val);
    	W_write(C_SHAR + 2 , V_C_SHAR_2);
    	_delay_ms(__delay_val);
    	W_write(C_SHAR + 3 , V_C_SHAR_3);
    	_delay_ms(__delay_val);
    	W_write(C_SHAR + 4 , V_C_SHAR_4);
    	_delay_ms(__delay_val);
    	W_write(C_SHAR + 5 , V_C_SHAR_5);
    	_delay_ms(__delay_val);
    	/////Source IP Address
    	W_write(C_SIPAR , V_C_SIPAR0);
    	_delay_ms(__delay_val);
    	W_write(C_SIPAR + 1 , V_C_SIPAR1);
    	_delay_ms(__delay_val);
    	W_write(C_SIPAR + 2 , V_C_SIPAR2);
    	_delay_ms(__delay_val);
    	W_write(C_SIPAR + 3 , V_C_SIPAR3);
    	_delay_ms(__delay_val);
    	/////Interrupt Mask+0
    	W_write(C_IRMR , V_C_IRMR);
    	_delay_ms(__delay_val);
    	/////Retry time
    	W_write(C_RTR , V_C_RTR_0);
    	_delay_ms(__delay_val);
    	W_write(C_RTR + 1 , V_C_RTR_1);
    	_delay_ms(__delay_val);
    	///////Retry Count
    	W_write(C_RCR , V_C_RCR);
    	_delay_ms(__delay_val);
    	//////RX Memory Size
    	W_write(C_RxMSR , V_C_RxMSR);
    	_delay_ms(__delay_val);
    	/////TX Memory Size
    	W_write(C_TxMSR , V_C_TxMSR);
    	_delay_ms(__delay_val);
    }
    int main(void)
    {
    	_delay_ms(2000);
    	w_spi_init();
    	w_c_init();
    	//s_c_init();
      while (1) 
      {	
      }
    }
    ممنون میشم اگه کسی هم برنامه نمونه داره واسه پیمگ فقط بهم بده یا حداقل hex بده من تست کنمش
    اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
    هيتلر

    #2
    پاسخ : مشکل در گرفتن W5100 PING

    سلام
    ای پی مودمتون تو محدوده این ای پی برنامه هست؟
    [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

    دیدگاه


      #3
      پاسخ : مشکل در گرفتن W5100 PING

      نوشته اصلی توسط آرمان آروند
      سلام
      ای پی مودمتون تو محدوده این ای پی برنامه هست؟
      خیر روتر من ای پیش 192168.1.x هست . اما من بیشتر اوقات اینو مستقیم وصل میکرم به لپتاپ و جواب نمیگرفتم . مگه این دستگاه حتما باید روتر داشته باشه؟
      اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
      هيتلر

      دیدگاه


        #4
        پاسخ : مشکل در گرفتن W5100 PING

        خب دیگه مشکل همینجاست، شما اگه بخواید مستقیما به سیستمتون وصلش کنید باید یه سری کارها انجام بدید مثل تعویض کابل و ...
        حالا شما اگه بخواید پینگش بکنید احتیاج به روتر دارید که خوشبختانه 90 درصد مودم ها خودشون روتر هم هستند، پس w5100 رو به مودم وصل کنید و از همه مهم تر ای پی رو به یه چیز تو محدوده روتر قرار بدید مثل 192.168.1.10 و همچنین مقدار GATEWAY رو هم به اون محدوده ها ببرید مثل 192.168.1.15 و Subnet رو هم همون 255.255.255.0 بزارید و حالا پینگش کنید یه نکته دیگه هم هست اگه جواب نگرفتید تو تنظیمات spi مقدار SPI2X رو یک کنید.
        [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

        دیدگاه


          #5
          پاسخ : مشکل در گرفتن W5100 PING

          نوشته اصلی توسط آرمان آروند
          خب دیگه مشکل همینجاست، شما اگه بخواید مستقیما به سیستمتون وصلش کنید باید یه سری کارها انجام بدید مثل تعویض کابل و ...
          حالا شما اگه بخواید پینگش بکنید احتیاج به روتر دارید که خوشبختانه 90 درصد مودم ها خودشون روتر هم هستند، پس w5100 رو به مودم وصل کنید و از همه مهم تر ای پی رو به یه چیز تو محدوده روتر قرار بدید مثل 192.168.1.10 و همچنین مقدار GATEWAY رو هم به اون محدوده ها ببرید مثل 192.168.1.15 و Subnet رو هم همون 255.255.255.0 بزارید و حالا پینگش کنید یه نکته دیگه هم هست اگه جواب نگرفتید تو تنظیمات spi مقدار SPI2X رو یک کنید.
          سلام مجدد ایپی رو تغییر دادم 192.168.1.132/133 . اما پینگ نمیده . 2x هم 1 کردم اما بازم جواب نمیده . کمکم به شک افتادم شاید ماژول مورد داره . برنامه درسته از نطر شما؟ شما یه فایل hex مطمئن دارید من بتونم باهاش یه پینگ بگیرم؟
          اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
          هيتلر

          دیدگاه


            #6
            پاسخ : مشکل در گرفتن W5100 PING

            سلام این فایل هگز برای پینگ هستش امیدوارم بدرد بخوره و مطمئن هم هست
            http://cdn.persiangig.com/download/KVDUbve9k9/Ping.rar/dl
            [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

            دیدگاه


              #7
              پاسخ : مشکل در گرفتن W5100 PING

              یادم نبود این برنامه برای اتمگا 8 میباشد و یادتون نره که پایه scs رو به PORTB.2 وصل کنید همچنین پایه SEN رو با یه مقاومت 4.7 کیلو پول پ کنید.
              اگه این برنامه جواب نداد یا با مگا 8 براتون مقدور نبود بگید ببینم میتونم کاریش کنم.
              [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

              دیدگاه


                #8
                پاسخ : مشکل در گرفتن W5100 PING

                نوشته اصلی توسط آرمان آروند
                سلام این فایل هگز برای پینگ هستش امیدوارم بدرد بخوره و مطمئن هم هست
                http://cdn.persiangig.com/download/KVDUbve9k9/Ping.rar/dl
                مرسی اما ای پی چی هست؟ فرکانس؟
                اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                هيتلر

                دیدگاه


                  #9
                  پاسخ : مشکل در گرفتن W5100 PING

                  ببخشید یادم نبود [code=text]192.168.1.61[/code]
                  [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                  دیدگاه


                    #10
                    پاسخ : مشکل در گرفتن W5100 PING

                    اگه مشکلت با این حل نشد خبر بده یه برنامه هست که خیلی وقت پیش برای یه شرکت نوشتم،پورتش میکنم و هگزش رو برات قرار میدم، ببخشید نمیتونم کدش رو قرار بدم چون واسه شرکته اما در خدمتم.
                    [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                    دیدگاه


                      #11
                      پاسخ : مشکل در گرفتن W5100 PING

                      نوشته اصلی توسط آرمان آروند
                      اگه مشکلت با این حل نشد خبر بده یه برنامه هست که خیلی وقت پیش برای یه شرکت نوشتم،پورتش میکنم و هگزش رو برات قرار میدم، ببخشید نمیتونم کدش رو قرار بدم چون واسه شرکته اما در خدمتم.
                      متاسفانه بازم نتونستم پینگ بگیرم
                      ببینید من از این سخت افزار استفاده میکنم

                      3.3 و ریست رو وصل کردم به 3.3 ولت پینهای 10-11-13 رو هم وصل کردم به اتمگا دوتا گراند هم که به گراند
                      مازول و لپتاپ وصل هستن به روتر و تو کامند لاین میدم ping 192.168.1.61 چیزی نمیاد . حتی با برنامه advanced ip scaner هم چیزی پیدا نمیشه
                      اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                      هيتلر

                      دیدگاه


                        #12
                        پاسخ : مشکل در گرفتن W5100 PING

                        تا چند لحظه دیگه یه فایل رو براتون پلود میکنم که باید جواب بده ولی من سخت افزارشو خودم زدم ولی فکر نکنم که با اردینو مشکلی داشته باشه. فقط متوجه نشدم دارید از شیلد w5100 استفاده میکنید یا این که دارید از اردینو مگا 32 و یه ماژول w5100 استفاده میکنید.
                        [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                        دیدگاه


                          #13
                          پاسخ : مشکل در گرفتن W5100 PING

                          اینم از لینک
                          http://cdn.persiangig.com/download/5f43de6b-2700-49fb-a9dc-fee29cfca2bf/w5100.hex/dl
                          فقط یک سری نکات:
                          [code=text]IP=192.168.1.5[/code]
                          برنامه برای اتمگا 32 میباشد و کلاکشم هشت مگ داخلی هست.
                          پایه ریست رو به PORTC.0 وصل کنید.
                          پایه sck رو به PORTB.7 وصل کنید.
                          پایه ss به PORTB.4
                          پایه mosi به PORTB.5
                          بایه miso به PORTB.6
                          پول اپ SEN رو هم یادت نره.
                          [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                          دیدگاه


                            #14
                            پاسخ : مشکل در گرفتن W5100 PING

                            نوشته اصلی توسط آرمان آروند
                            تا چند لحظه دیگه یه فایل رو براتون پلود میکنم که باید جواب بده ولی من سخت افزارشو خودم زدم ولی فکر نکنم که با اردینو مشکلی داشته باشه. فقط متوجه نشدم دارید از شیلد w5100 استفاده میکنید یا این که دارید از اردینو مگا 32 و یه ماژول w5100 استفاده میکنید.
                            w5100 فقط شیلد هست چون هیتر ندارم . کلا از ارداینو خوشم نمیاد حقیقتش . ای سی رو خودم میزارم 32 یا 8 با اتمل استادیو مینویسم یا کدویژن فرقی نمیکنه برام
                            ممنون خیلی به زحمت افتادین
                            نوشته اصلی توسط آرمان آروند
                            اینم از لینک
                            http://cdn.persiangig.com/download/5f43de6b-2700-49fb-a9dc-fee29cfca2bf/w5100.hex/dl
                            فقط یک سری نکات:
                            [code=text]IP=192.168.1.5[/code]
                            برنامه برای اتمگا 32 میباشد و کلاکشم هشت مگ داخلی هست.
                            پایه ریست رو به PORTC.0 وصل کنید.
                            پایه sck رو به PORTB.7 وصل کنید.
                            پایه ss به PORTB.4
                            پایه mosi به PORTB.5
                            بایه miso به PORTB.6
                            پول اپ SEN رو هم یادت نره.
                            ممنون اما پول اپ SEN منطور پول اپ ریست w5100 هست ؟
                            بعد ریست نرم افزارینیست ؟ پایه ریست ای سی رو بدم به میکرو ؟
                            اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                            هيتلر

                            دیدگاه


                              #15
                              پاسخ : مشکل در گرفتن W5100 PING

                              نه منظورم پین SEN خود w5100 است که برای فعال کردن spi چیپ هستش ولی اگه این پین در دسترس نیست یه بار بدون این پین امتحان کنید یادت نره که پایه ریست w5100 وصل میشه به PORTC.0 میکرو که اگر بازم بدون وصل کردن پین ریست امتحانش کنید شاید جواب بده.
                              [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                              دیدگاه

                              لطفا صبر کنید...
                              X