Forum: Mikrocontroller und Digitale Elektronik TCP/IP Stack PIC32


von Herbert (Gast)


Lesenswert?

Hey, ich probiere schon den ganzen Tag den TCP/IP stack von Microchip 
zum laufen zu bringen....

Hardware ist identisch aufgebaut wie das Ethernet Starter Kit von 
Microchip,

das heißt : Mag45 Buchse
            DP83848C PHY COntroller
            PIC32mx795f512l

Schaltplan wurde eben vom Starterkit übernommen...

Aber ich frage mich warum das Teil dann nicht auf anhieb läuft ??

Also die TCPIPinit funktion wird anscheind erfolgreich ausgeführt...

Die Lan Buchse blinkt auch schön vor sich her....nur bekomme ich keine 
IP , weder per patchkabel mit dem Laptop noch vom DHCP der Fritz Box...

Was genau muss man an diesem Stack noch configurieren damit er läuft ?

von heinzhorst (Gast)


Lesenswert?

Herbert schrieb:
> Schaltplan wurde eben vom Starterkit übernommen...

Damit ist es nicht getan. Bein Layout kann man auch noch viel falsch 
machen. Gerade bei Ethnernet-PHYs. Da ich dein Layout nicht kenne, gehe 
ich jetzt einfach mal davon aus, dass du das ordentlich geöst hast und 
es sich nur noch úm ein Softwareproblem handelt. Welche Version von 
TCP/IP-Stack verwendest du? Hast du in der HardwareProfile.h die 
Richtige Pinzuordnung für das RMII-Interface eingestellt? Das Ethernet 
Starter Kit verwendet die alternative Pinbelegung.

was heißt "Ich bekomme keine IP?" Meinst du damit, dass du den 
DHCP-Server des TCP-Stacks in TCPIPConfig.h aktiviert hast, oder soll 
deine Fritzbox dem Starter Kit eine IP zuweisen?

Hast du mal mit dem Oszi an den Quarzen und am RMII gemessen?

Und wie hast du das Teil überhaupt programmiert? Einen Debugger über 
ICSP angeschlossen? Den Onboard-Debugger hast du mangels entsprechender 
Firmware nicht mit auf deiner Schaltung, nehme ich mal an.

Bevor wir dir helfen können: Etwas mehr Infos bitte!

von Herbert (Gast)


Angehängte Dateien:

Lesenswert?

Ja ich Debugge und Programmiere mit nem PIC Kit 3 über ICSP.

Also ich habe mim Oszi den Quarz am DP83848 gemessen und auch den Clock 
ausgang dann, liegt jeweils 25 Mhz an.

[c]
/** CONFIGURATION **************************************************/
    #pragma config UPLLEN   = ON          // USB PLL Enabled
    #pragma config FPLLMUL  = MUL_16        // PLL Multiplier
    #pragma config UPLLIDIV = DIV_2         // USB PLL Input Divider
    #pragma config FPLLIDIV = DIV_5         // PLL Input Divider
    #pragma config FPLLODIV = DIV_1         // PLL Output Divider
    #pragma config FPBDIV   = DIV_1         // Peripheral Clock divisor
    #pragma config FWDTEN   = OFF           // Watchdog Timer
    #pragma config WDTPS    = PS1           // Watchdog Timer Postscale
    #pragma config FCKSM    = CSDCMD        // Clock Switching & Fail 
Safe Clock Monitor
    #pragma config OSCIOFNC = OFF           // CLKO Enable
    #pragma config POSCMOD  = EC            // Primary Oscillator
    #pragma config IESO     = OFF           // Internal/External 
Switch-over
    #pragma config FSOSCEN  = OFF           // Secondary Oscillator 
Enable (KLO was off)
    #pragma config FNOSC    = PRIPLL        // Oscillator Selection
    #pragma config CP       = OFF           // Code Protect
    #pragma config BWP      = OFF           // Boot Flash Write Protect
    #pragma config PWP      = OFF           // Program Flash Write 
Protect
    #pragma config ICESEL   = ICS_PGx1      // ICE/ICD Comm Channel 
Select
    #pragma config DEBUG    = ON            // Background Debugger 
Enable

/********************************************************************
 * Ethernet MII Enable bit [FMIIEN]
 *
 * ON   - MII enabled, RMII disabled
 * OFF  - MII disabled, RMII enabled
 ********************************************************************/
#pragma config FMIIEN = OFF


/********************************************************************
 * Ethernet IO Pin Selection bit [FETHIO]
 *
 * ON   - Default Ethernet IO Pins
 * OFF  - Alternate Ethernet IO Pins
 ********************************************************************/
#pragma config FETHIO = ON

///////////////////////////////////////////////////////
int main()
{
  TRISE &= ~((1<<0)|(1<<1)|(1<<2));
  LATEbits.LATE2 = 1;

  mJTAGPortEnable(FALSE);        // JTAG Schnittstelle ausschalten

  LATD &= 0xFFF7;
  TRISD &= 0xFFF7;
  LATDbits.LATD3 = 1;

M_LEDS_INIT();


  IP_ADDR  curr_ip;
  IP_ADDR ip;

  unsigned int   sys_clk, pb_clk;

  sys_clk = 80000000;//GetSystemClock();
  pb_clk  = 80000000;//SYSTEMConfigWaitStatesAndPB(sys_clk);

    // Turn on the interrupts
  INTEnableSystemMultiVectoredInt();

    //Turn ON the system clock
    SystemTickInit(sys_clk, TICKS_PER_SECOND);
...
.
.
.
.
.
.
.
.


  TCPIPSetDefaultAddr(DEFAULT_IP_ADDR, DEFAULT_IP_MASK, 
DEFAULT_IP_GATEWAY, DEFAULT_MAC_ADDR);
  if(!TCPIPInit(sys_clk))
  {
           M_LED_1_ON();
        LCD_Write_String(SPI3,"TCP/IP Init : Fehler !",0,2);
    return -1;
  }


    LCD_Write_String(SPI3,"TCP/IP Initialisiert!",0,2);
    DelayMs(1000);

  DHCPInit();

   M_LED_2_ON();

  curr_ip.Val = 0;

    unsigned int result = 0;
  while(1)
  {

    result = TCPIPProcess();

    DHCPTask();

    if(curr_ip.Val != (ip.Val = TCPIPGetIPAddr()))
    {
            // board has changed the address

            M_LED_5_ON();
        LCD_Display_Clear(SPI3);

      LCD_Write_IP(2, ip.Val);
        curr_ip.Val = ip.Val;
    }
  }


    return 0;
}
[\c]


Das is meine Main und die TCPIP config und die Hardware Profiles habe 
ich mal oben angehängt.



Also ich denke der DP83848 wird auch korrekt angesprochen, lan buchse 
blinkt ja und wenn ich mit patchkabel zum laptop verbinde bekomme ich 
auch ein nicht identifiziertes netzwerk wie man im angehängten bild 
sehen kann.

Version vom stack weiß ich grad nich genau aber es ist die aktuelle von 
der microchip homepage.

von Herbert (Gast)


Lesenswert?

hiiillfeee ich krieg zuviel -.-

von Herbert (Gast)


Lesenswert?

Hey kennt sich keiner aus mit dem Stack ?

von Narfie (Gast)


Lesenswert?

Hi,

vorab, habe noch nicht mit dem Stack gearbeitet aber als Idee könntest 
du mal DEFAULT_IP, etc. konfigurieren (Zeile 
TCPIPSetDefaultAddr(DEFAULT_IP_ADDR, DEFAULT_IP_MASK,
DEFAULT_IP_GATEWAY, DEFAULT_MAC_ADDR);) und versuchen ohne DHCP eine 
Verbindung aufzubauen. Wenn das funktioniert bzw. auch nicht 
funktioniert hättest du schonmal eine Eingrenzung.

Viel Erfolg.

von Herbert (Gast)


Lesenswert?

Ja ne das mit der Default adresse ohne DHCP geht auch nicht.....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.