Forum: Mikrocontroller und Digitale Elektronik PIC18F97J60 als Webserver


von Ingo S. (schicki)


Lesenswert?

Hallo Zusammen,

ich möchte einen PIC18F97J60 als Webserver betreiben.

- Mein Basisprojekt lässt sich kompilieren und in den Controller 
programmieren.
- Ich sehe den Conroller im Netzwerk über den TCIP Discoverer.
- Über die Webpage kann ich ebenfalls eine fertige BIN-Datei auch 
erfolgrich übertragen.
- Über MPFS2 kann ich die das dazugehörige Bin-File erstellen und 
übertragen.

Leider startet im Anschluß die Webpage des Controllers nicht, sondern es 
öffnet sich nur wieder die Webpage mit der Fehlermeldung:
404: File not found
Use MPFS Upload to program web pages

Im Config Wizard habe ich die eigentlich en internen Speicher definiert. 
Die Pfade im Quellcode habe ich ebenfalls überprüft. Die sollten 
stimmen. Kennt jemand diesen Effekt?

Danke und Gruß

von Frank K. (fchk)


Lesenswert?

Du nimmst ein externes SPI-EEPROM als Webspace?

fchk

von Ingo S. (schicki)


Angehängte Dateien:

Lesenswert?

Hi Frank,

es ist mein erstes Projekt mit Ethernet und dem PIC18F97J60. Auf dem 
Gebiet bin ich Neuling. Auf der dezeitigen Platine ist kein SPI-EEPROM 
verbaut. Zumindest bisher nicht. Was benötige ich konkret? Ich habe Dir 
einmal die Schritte aufgezeigt die funktionieren.

Wie wird das in der Praxis gemacht. Die Demoboards von Microchip bzw. 
Olimex geben hierrüber wenig Infos heraus.

Danke und Gruß
Ingo

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Im Prinzip gibts zwei Möglichkeiten:
1. Webseiten ins interne Flash des PICs laden. Das muss bereits zur 
Compilezeit passieren, und die Seiten sind dann nicht mehr änderbar. 
Vorteil: kein extra Baustein erforderlich
2. Webseiten in ein externes SPI-Flash laden. Das kann nicht zur 
Compilezeit geschehen, sondern ist ein extra Arbeitsschritt.
Vorteil: Webseiten getrennt aktualisierbar, mehr Speicher im internen 
Flash frei für Code

Es scheint, als wäre Dein PIC auf 2. konfiguriert. Die Konfiguration 
geschieht über #defines in TCPconfig.h:
1
/* MPFS Storage Location
2
 *   If html pages are stored in internal program memory,
3
 *   comment both MPFS_USE_EEPROM and MPFS_USE_SPI_FLASH, then
4
 *   include an MPFS image (.c or .s file) in the project.
5
 *   If html pages are stored in external memory, uncomment the
6
 *   appropriate definition.
7
 *
8
 *   Supported serial flash parts include the SST25VFxxxB series.
9
 */
10
#define MPFS_USE_EEPROM
11
//#define MPFS_USE_SPI_FLASH
12
13
/* EEPROM Addressing Selection
14
 *   If using the 1Mbit EEPROM, uncomment this line
15
 */
16
//#define USE_EEPROM_25LC1024

Wo das EEPROM angeschlossen ist, wird in HardwareProfile.h definiert:
1
// 25LC256 I/O pins
2
#define EEPROM_CS_TRIS    (TRISDbits.TRISD7)
3
#define EEPROM_CS_IO    (LATDbits.LATD7)
4
#define EEPROM_SCK_TRIS    (TRISCbits.TRISC3)
5
#define EEPROM_SDI_TRIS    (TRISCbits.TRISC4)
6
#define EEPROM_SDO_TRIS    (TRISCbits.TRISC5)
7
#define EEPROM_SPI_IF    (PIR1bits.SSP1IF)
8
#define EEPROM_SSPBUF    (SSP1BUF)
9
#define EEPROM_SPICON1    (SSP1CON1)
10
#define EEPROM_SPICON1bits  (SSP1CON1bits)
11
#define EEPROM_SPICON2    (SSP1CON2)
12
#define EEPROM_SPISTAT    (SSP1STAT)
13
#define EEPROM_SPISTATbits  (SSP1STATbits)

Im Docs-Verzeichnis der Microchip Application Libraries gibts die 
Dokumentation zum Stack. Die darfst Du lesen.

fchk

: Bearbeitet durch User
von Ingo S. (schicki)


Lesenswert?

Super hat soweit funktioniert.

Danke

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.