Hallo zusammen, habe ein seltsames Problem. Hardware: ATX Netzteil Bicker BEP-506H 3,3V an PIC32MX795F512L89PF 3,3V an PHY DP83848 +12V an Lt1763-5 zur Erzeugung sauberer +5 V +12V an MAX6325 zur Erzeugung Referenz +2,5 V +3,3V an ADS1256 Digitalteil +5V Sauber an ADS1256 Analogteil PIC32 über SPI an ADS1256, MAX541 ,EEPROM Software: Microchip TCP/IP Stack Legacy (nicht Harmony) IP Adresse PIC32/PHY fest zugewiesen auf 192.168.178.10 Daten IP Adresse werden beim Einschalten aus EEPROM gelesen und verwendet Problem: Beim Ausfall der +12V Sicherung bekommt der PIC nach dem Einschalten eine andere IP Adresse. Laut Datenblatt des Netzgerätes muss es eine gewisse Grundlast an +12V vorhanden sein. Habe dann auch einen 120R Widerstand als Grundlast vor der Sicherung eingelötet, hat aber keinen Erfolg gebracht. Weiterhin ist es so, dass beim Ausfall der +12V der Code nicht blockiert wird, d.h. der TCP/IP Stack wird zyklisch bearbeitet. Wo könnte das Problem liegen ? Gruß Dirk
Dirk F schrieb: > > Weiterhin ist es so, dass beim Ausfall der +12V der Code nicht blockiert > wird, d.h. der TCP/IP Stack wird zyklisch bearbeitet. > > Wo könnte das Problem liegen ? > > Gruß Dirk Der mc versorgt sich wohl parasitär über einen seiner Pins mit Strom. Geht also in keinen Reset und lädt somit auch keine IP aus dem EPROM...
1000V Dc schrieb: > Der mc versorgt sich wohl parasitär über einen seiner Pins mit Strom. > Geht also in keinen Reset und lädt somit auch keine IP aus dem EPROM... Hi, das Problem tritt auf, nachdem alle Spannungen aus und wieder eingeschaltet wurden. Im code habe ich am Anfang bei der Initialisierung einen LED Blinkcode drin, damit ich einen zufälligen Reset erkennen kann. Der wird abgearbeitet nach dem einschalten. Also startet die MCU komlett neu.
Dirk F schrieb: > Also startet die MCU komlett neu. Dann dürfte es ja nie gehen. Wenn Du dein Setup neu startest (durch Spannung aus/an), was passiert dann? Feste IP? Geht das jedes Mal? Dirk F schrieb: > d.h. der TCP/IP Stack wird zyklisch bearbeitet. Ja, das muss doch so sein. Ist ja ein Hintergrund-Prozess. Auch wenn ich Harmony verwende und nicht Legacy. Schau doch mal, wo und wie der Stack aufgerufen wird.
Nick M. schrieb: > Dann dürfte es ja nie gehen. Wenn Du dein Setup neu startest (durch > Spannung aus/an), was passiert dann? > Feste IP? > Geht das jedes Mal? Ja, jedes mal nach dem Einschalten aller Spannungen wird die feste IP vergeben. Nur wenn ich die 12 V Sicherung entferne, und dann einschalte, kommen die Probleme mit der IP adresse. Ich verstehe es nicht, da die 12 V ja überhaupt nichts mit der MCU und dem PHY zu tun haben. >Schau doch mal, wo und wie der Stack aufgerufen wird. Zyklisch im Main loop jede 2 ms etwa.
Dirk F schrieb: > Problem: > Beim Ausfall der +12V Sicherung bekommt der PIC nach dem Einschalten > eine andere IP Adresse. Von der Fritzbox? Dann der sagen (Einstellung für die betreffende Verbindung unter Heimnetz), dass die IP für dieses Gerät fest ist.
Dirk F schrieb: > über SPI an ADS1256, MAX541 ,EEPROM Hat einer von denen was mit den 12 V zu tun? Dirk F schrieb: >>Schau doch mal, wo und wie der Stack aufgerufen wird. > Zyklisch im Main loop jede 2 ms etwa. Dann ist es ja klar, dass der Stack nicht blockieren kann. Woher kommt die IP-Adresse? Warum verwendest Du DHCP wenn du mit fixen Adressen arbeiten willst?
Dirk F schrieb: > Ich verstehe es nicht, da die 12 V ja überhaupt nichts mit der MCU und > dem PHY zu tun haben. Lt. Deiner Beschreibung versorgen die 12V den ADS1256 und der hängt mit dem EEPROM am SPI. Klemm mal alles außer dem EEPROM vom SPI ab.
Peter D. schrieb: > Lt. Deiner Beschreibung versorgen die 12V den ADS1256 und der hängt mit > dem EEPROM am SPI. Klemm mal alles außer dem EEPROM vom SPI ab. Hallo Peter. Dein Hinweis ist plausiebel. Danke !! ALso der ADC, beide DAC und das EEPROM hängen am selben SPI Bus vom PIC (der hat ja insgesamt 4 x SPI). Der Analogteil und der Digitalteil des ADC wird beim Ausfall der +12V nicht versorgt. In beiden Versorgungsleitungen hängt jeweils ein Schließerkontakt eines Relais, um den ADC (ADS1256) komplett von der Spannung zu trennen. Dieses Relais wird von den +12V versorgt. So wenn der ADS1256 ohne Versorgungsspannung ist, dann sind die SPI Ein und Ausgänge ja über die internen Dioden quasi auf Masse gezogen, d.h. der gesamte SPI Bus wird gestört >>> Die IP Adresse wird als 0.0.0.0 aus dem EEPROM falsch geladen....... Werde gleich mal einen Testcode schreiben, in dem die IP Adresse vom Programmcode vorgegeben wird, nicht über den EEPROM Inhalt. Ergebnisse dann gleich....
Bestätigt. Das war das Problem. Danke an alle !!!
Dirk F schrieb: > Werde gleich mal einen Testcode schreiben, in dem die IP Adresse vom > Programmcode vorgegeben wird, nicht über den EEPROM Inhalt. Dann schreib doch die IP-Adresse ins NV-Mem vom PIC. Das geht doch bestens. Da kannst du evtl. das komplette EEPROM weglassen. 512 k im PIC ist ja doch eine Hausnummer.
Nick M. schrieb: > Dann schreib doch die IP-Adresse ins NV-Mem vom PIC Hallo, ja gute Idee. Muss ich mich mal mit befassen. Das externe EEPROM brauch ich aber trotzdem für die Webseite zu speichern... Gruß Dirk
Dirk F schrieb: > Das externe EEPROM brauch ich aber trotzdem für die Webseite zu > speichern... Ah OK! Das kann schnell zu viel werden. Für die Konfigurations-Daten würde ich einen key-value store benutzen und x kBytes im NV-Mem dafür reservieren. Den kv-store gibts wohl nicht fertig von Microchip. Die einfache Lösung ist natürlich eine struct abzulegen und darauf direkt zuzugreifen.
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.