Forum: Mikrocontroller und Digitale Elektronik TCP/IP Stack Microchip


von Andreas R. (blackpuma)


Lesenswert?

Guten Abend!

Es gibt ja den Microchip TCP/IP Stack. Wie kann ich diesen genau 
verwenden? Ich bin da noch nicht dahinter gekommen. Es gibt ja jetzt 
Chips wie den PIC18F67J60 der Ethernet integriert hat und den ENC28J60 
der über SPI angesprochen wird. Kann ich die gleichen Source Files für 
beide verwenden oder worauf muss ich dabei aufpassen?

BG
Andreas

von heinzhorst (Gast)


Lesenswert?

Ja, kannst du. Musst nur in der Datei HardwareProfile.h einstellen, 
welchen Chip du hast und was an welchen Pin angeschlossen ist und los 
geht's. Welche Teile du vom Stack brauchst, kannst du auch ganz leicht 
in der TCPIPConfig.h einstellen (TCP, UDP, DHCP, FTP, NTP, Webserver, 
etc). Am Besten mal eine der vielen Beispielapplikationen von Microchip 
ansehen und als Grundlage verwenden. Bin selbst gerade dabei, im 
Praxissemester den Microchip Stack auf dem PIC32 aufzusetzten und war 
echt erstaunt, wie schnell man da zu brauchbaren Ergebnissen kommt. 
Solltest aber bedenken, dass der TCP-Stack, je nach Konfiguration schon 
mal 50-60K Programmscheicher benötigen kann und deine eigentliche 
Applikation da auch noch mit reinpassen muss. Das solltest du bei der 
Controllerauswahl berücksichtigen.

von Andreas R. (blackpuma)


Lesenswert?

Schönen Abend!

Ich habe mir nun einige Beispiele angesehen und die Dateien selbst ein 
wenig durchgesehen aber ich komme auf keinen grünen Zweig... :-(

Ich hätte gerne mal zum testen einen DHCP Client und dann die IP die er 
bekommt auf einem Display ausgegeben. Hat vielleicht jemand so ein 
Beiepiel?

BG
Andreas

von Andreas R. (blackpuma)


Lesenswert?

Da ich wieder mal Zeit hatte habe ich wieder mal ein wenig 
weitergebastelt. Jetzt bin ich wieder auf ein Problem gestossen.

Beim Kompilieren bekomme ich immer die Fehlermeldung: Error [1099] 
Invlaid MAX_UDP_SOCKETS value specified

Woran liegt das? Der Wert ist in der TCPIPConfig.h definiert.

BG
Andreas

von heinzhorst (Gast)


Lesenswert?

Was hast du denn in der TCPIPConfig.h angegeben? Bei mir sieht die Zeile 
so aus:
1
#define MAX_UDP_SOCKETS     (10u)

Wahrscheinlich rennt dein Compiler in diese Präprozessordirektive rein:
(StackTsk.h Zeile 63)
1
 
2
// Check for potential configuration errors in "TCPIPConfig.h"
3
#if (MAX_UDP_SOCKETS <= 0 || MAX_UDP_SOCKETS > 255 )
4
#error Invalid MAX_UDP_SOCKETS value specified
5
#endif

Der angegebene Wert für die maximale Anzahl UDP Sockets muss also 
zwischen 1 und 255 liegen.

von prinz3nroll3 (Gast)


Lesenswert?

Hallo,
beim Stack liegt auch ein Programm dabei welches automatisch die udp tcp 
ports definiert.
das ist ein config prg. für den stack schaue mal in den ordnern nach.
gruß

von Andreas R. (blackpuma)


Lesenswert?

@heinzhorst

Genau dort lauf ich rein. Was ich aber nicht verstehe denn in der Datei 
TCPIPConfig.h ist der Wert definiert.

TCPIPConfig.h
1
.
2
#define MAX_UDP_SOCKETS     (10u)
3
.

Aber ich bekomme die Fehlermeldung
1
...\ENC28J60\TCPIP Stack\stacktsk.h:67:Error [1099] Invlaid MAX_UDP_SOCKETS value specified

Das lustige dabei ist aber wenn ich das "#define MAX_UDP_SOCKETS 
(10u)" in die Datei stacktsk.h hineinschreibe funktioniert es. Dabei ist 
es jetzt in beiden Dateien vorhanden. Dann laufe ich aber als nächstes 
das hinein.
1
...\ENC28J60\TCPIP Stack\stacktsk.h:72:Error [1099] Invalid MAX_HTTP_CONNECTIONS value specified.

Trage ich nun "#define MAX_HTTP_CONNECTIONS (1u)" in die Datei 
stacktsk.h ein bekomme ich folgende Meldung. Dabei steht die Definition 
auch in beiden Dateien.
1
...\ENC28J60\TCPIP Stack\StackTsk.h:63:Error [1034] previous definition of macro 'MAX_HTTP_CONNECTIONS' does not agree

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.