Hallo allemaal,

Ik ben bezig met het implementeren van de ethernet op een microcontroller. Hierbij wil wil ik een TCP/IP server maken op de microcontroller m.b.v. Berkeley sockets. Met deze server wil ik dan met de computer verbinding maken om vervolgens de uitgangen aan te sturen

Dit alles probeer ik te realiseren m.b.v. de ENC28J70 ethernetchip en de PIC24FJ64GA002.
De gebruikte programmeeromgeving is Microchip MPLAB en de software schrijf ik in c.

De pic communiceert via spi met de ethernet chip. Hieronder een stuk uit het schema:
http://img694.imageshack.us/img694/4226/encpic24fj.png

Na een eenvoudig testprogramma werkend te hebben gekregen waarbij een aantal uitgangen worden aangestuurd. Ben ik begonnen met het implementeren van de TCP/IP stack van microchip (hier te vinden)

Hierbij ben ik uitgegaan van het TCPIP Demo App die bij de TCP/IP stack is meegeleverd. In deze demo applicatie zijn allerlei functies opgenomen die ik niet ga gebruiken.
Deze functies heb ik vervolgens uit het main programma weg ge comment zodat enkel het creëren van een server socket overblijft.

Voor het gebruik van de stack wordt een zogenaamd "hardwareprofile.h" gebruikt waarin je aangeeft welk demoboard en microcontroller je gebruikt.
Aangezien de print zelf is ontworpen is er dus geen demoboard geselecteerd. In plaats daarvan heb ik de pinning van de PIC24FJ64GA004_PIM omgeschreven naar de pinning voor de PIC24FJ64GA002 die ik gebruik. Deze wordt dan ook in het begin van hardware profile gedefined.

	#elif defined(__PIC24FJ64GA002__)
		#define PIC24FJ64GA004_PIM

Na een hoop gesleutel aan de code komt het volledige project door de compiler en kon ik het in de microcontroller laden. De microcontroller voert echter niets uit.
Vervolgens heb ik in de main functie het testprogramma geplakt welke een paar uitgangen aanstuurt. Na dit programma in de microcontroller geladen te hebben worden zelfs deze uitgangen niet aangestuurd.
Het lijkt er dus op dat de microcontroller helemaal niets doet. Dit is echter vreemd aangezien het eenvoudige testprogramma wel werkt.
Zelfs met de code letterlijk gekopieerd naar het programma met de stack erin wil het niet werken.

Weet iemand van jullie hoe dit op te lossen? Alvast bedankt

Hieronder een aantal files:
HardwareProfile.h http://www.megafileupload.com/en/file/158757/HardwareProfile-h.html
MainDemo.c http://www.megafileupload.com/en/file/158758/MainDemo-c.html

Ik denk dat je eerst de Demo App werkend moet krijgen, voordat je dingen aan gaat passen. Ik ben momenteel ook bezig met deze TCP/IP stack en gebruik de PIC16F67J60 waar de ENC28J60 in zit. Om de demo app werkend te krijgen moet je de wizard volgen, deze maakt TCPIPConfig.h. Compilen en programmeren en dan moet het werken. Als dat eenmaal gelukt is kun je dingen aanpassen.

Klopt, dit was ik vergeten te vermelden in mijn eerste post. De wizard heb ik doorlopen vóórdat HardwareProfile.h en het mainprogramma zijn aangepast. Ik heb echter nog niet geprobeerd de Demo App zonder aanpassingen te testen. Feitelijk zijn enkel een aantal functies weg-ge-comment ipv wijzigingen. Alles komt ook netjes door de compiler.

Ik neem aan dat jij de hardwareprofile ook aan hebt moeten passen om de Demo App werkend te krijgen de pic?

Nee, ik heb hardwareprofile.h niet aangepast. Ik heb enkel (na clean install van de stack) de wizard doorlopen, het project geopend in MPLAB (en TCPIPConfig.h aangepast voor het ip-adres), gecompiled en geprogrammeerd. Toen werkte het. Natuurlijk heb je er niks aan want de webpagina verwacht gegevens van het bordje waarvoor deze app is geschreven. Maar mijn doel was om te testen of mijn experimenteerbordje werkte, en dat was het geval. Ik heb enkel de pic erop zitten met een rj45 connector en uiteraard een aantal weertanden en condensatoren.