Bueno yo quiero usar el PICDEM.net2_ENC28J60 para trabajar con el modulo enc28j60 y un pic 18f4550 si se podra.
Cuando compilo con ese hardware, se obtiene las siguientes advertencias que no son importantes:
../board_support_package/picdem2_net/hardware.c:92: warning: (162) #warning: "Make sure that jumper JP9 from PICDEM.net 2 Board is connected"
../board_support_package/picdem2_net/hardware.c:93: warning: (162) #warning: "Button RB0 cannot be used in this case"
../../TCPIP Library/source/udpv4.c:64: warning: (1090) variable "_destPort" is not used
../../TCPIP Library/source/dhcp_client.c:76: warning: (1090) variable "DHCP_Request@msglength" is not used
../../TCPIP Library/source/ipv4.c:119: warning: (1090) variable "IPV4_Packet@msg" is not used
../../TCPIP Library/include\tcpip_types.h:80: warning: (1090) variable "_Control_Byte" is not used
Y la compilación es un éxito:
Memory Summary:
Program space used 82EFh ( 33519) of 1FFF8h bytes ( 25.6%)
Data space used 36Fh ( 879) of EE0h bytes ( 23.1%)
Configuration bits used 3h ( 3) of 3h words (100.0%)
Data stack space used 0h ( 0) of AC8h bytes ( 0.0%)
make[2]: Leaving directory 'G:/AN1921_Source Code/TCPIP Demo/tcpClientDEMO.X'
make[1]: Leaving directory 'G:/AN1921_Source Code/TCPIP Demo/tcpClientDEMO.X'
BUILD SUCCESSFUL (total time: 15s)
Loading code from G:/AN1921_Source Code/TCPIP Demo/tcpClientDEMO.X/dist/PICDEM.net2_ENC28J60/production/tcpClientDEMO.X.production.hex...
Loading completed
Cuando cambiás al PIC18F4550, se generan errore debido a que no son iguales.
1. La palabra de configuración no son iguales:
../board_support_package/picdem2_net/configuration.c:47: error: (1363) unknown configuration setting/register (STVR = ON) used
../board_support_package/picdem2_net/configuration.c:55: error: (1363) unknown configuration setting/register (FOSC = HSPLL) used
../board_support_package/picdem2_net/configuration.c:56: error: (1363) unknown configuration setting/register (FOSC2 = ON) used
../board_support_package/picdem2_net/configuration.c:64: error: (1363) unknown configuration setting/register (EASHFT = OFF) used
../board_support_package/picdem2_net/configuration.c:65: error: (1363) unknown configuration setting/register (MODE = MM) used
../board_support_package/picdem2_net/configuration.c:66: error: (1363) unknown configuration setting/register (BW = 16) used
../board_support_package/picdem2_net/configuration.c:67: error: (1363) unknown configuration setting/register (WAIT = OFF) used
../board_support_package/picdem2_net/configuration.c:71: error: (1363) unknown configuration setting/register (ECCPMX = ON) used
../board_support_package/picdem2_net/configuration.c:72: error: (1363) unknown configuration setting/register (ETHLED = ON) used
"C:\Program Files (x86)\Microchip\xc8\v1.35\bin\xc8.exe" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=pro -DUSE_ENC28J60_SPI -P -N255 -I"../../" -I"../" -I"../board_support_package" -I"../board_support_package/picdem2_net" -I"../../TCPIP Library" -I"../../TCPIP Library/ethernet_drivers" -I"../../TCPIP Library/include" -I"../../TCPIP Library/source" -I"../tcpClientDEMO.X" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,-plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/PICDEM.net2_ENC28J60/production/_ext/822349805/lcd.p1 ../board_support_package/picdem2_net/lcd.c
(908) exit status = 1
Debes modificar los bits de configuración para tu micro.
2. Hay pines que no posee tu PIC.
../board_support_package/picdem2_net/eeprom.c:52: error: (255) not a member of the struct/union ""
../board_support_package/picdem2_net/eeprom.c:52: error: (182) illegal conversion between types
TRISCbits.TRISC4 = 1; //EEPROM SDI1 - i/p
TRISCbits.TRISC5 = 0; //EEPROM SDO1 - o/p
RC4 y RC5, según el compilador no existen.
Hay puertos que no posee tu PIC:
../board_support_package/picdem2_net/hardware.c:59: error: (192) undefined identifier "TRISJ"
../board_support_package/picdem2_net/hardware.c:60: error: (192) undefined identifier "LATJ"
TRISJ = 0; // PORTJ is all the LED's
LATJ = 0;
./board_support_package/picdem2_net/lcd_hw.c:53: error: (192) undefined identifier "TRISH"
../board_support_package/picdem2_net/lcd_hw.c:55: error: (192) undefined identifier "LATH"
../board_support_package/picdem2_net/lcd_hw.c:61: error: (192) undefined identifier "LATH1"
../board_support_package/picdem2_net/lcd_hw.c:62: error: (192) undefined identifier "LATH2"
../board_support_package/picdem2_net/lcd_hw.c:66: error: (192) undefined identifier "LATH0"
../board_support_package/picdem2_net/lcd_hw.c:73: error: (192) undefined identifier "LATH1"
../board_support_package/picdem2_net/lcd_hw.c:74: error: (192) undefined identifier "LATH2"
../board_support_package/picdem2_net/lcd_hw.c:77: error: (192) undefined identifier "LATH0"
TRISE = 0; // data pins are port e
TRISH = 0x00; // RW, RS and E are Port H <0:2>
LATE = 0;
LATH = 0;
etc.
Mi recomendación es que analices si tu microcontrolador tiene otros pines disponibles para que cambies a aquellos que el compilador indica que no exite.
Pero lo mejor que puede hacer es que tu hardware se base en una placa de desarrolo (Como PICDEM.net2) con el mismo PIC, para que lo modifiques sin mucho problema.