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 ?
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!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.