You are on page 1of 4

HNG DN CONFIG HARDWARE CHO B TH VIN TCP/IP STACK DNG CCS V MPLAB.

1. CCS: _ B th vin TCP/IP Stack l b th vin do Microchip pht trin cho cc dng VDK ca hng giao tip qua mng Ethernet. Do ch cc trnh dch MPLAB C18,C30,C32 ca hng mi h tr bin dch b th vin ny. Sau CCS pht trin li 1 phin bn ring cho trnh dch CCS h tr cc board Ethernet do hng ny pht trin ( do n ch h tr cho dng PIC 18 v 16 ). _ Mc nh cc file ny c config s dng cho 3 loi board m hng gii thiu v th s dng c b th vin ny cho mch ca mnh cc bn phi config li cc file . +Bc 1: Nu cc bn c cc file example ca CCS th cc bn thy chng u c include ccstcpip.h. V vy ta s xem xt file ny u tin.V d ny mnh s chnh sa file ccstcpip.h dng vdk PIC18F4550 v ENC28J60 v b i 1 s phn ko cn thit nh nh ngha phn cng ADC,LED v nh ngha phn cng cho cc board khc. #define STACK_USE_CCS_PICENS 1 // Dng board h tr ENC28J60 #define STACK_USE_CCS_PICNET 0 #define STACK_USE_CCS_PICEEC 0 //TODO #if STACK_USE_CCS_PICENS #define STACK_USE_MCPENC 1 #endif #if STACK_USE_CCS_PICEEC #define STACK_USE_MCPINC 1 #endif #if STACK_USE_CCS_PICENS // chnh li ph hp vi board ca bn #include <18F4550.h> #use delay(clock=20000000) #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG #endif

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)// b dng ny nu bn ko dng cng COM #include "tcpip/stacktsk.c" //include Microchip TCP/IP Stack

#if STACK_USE_CCS_PICENS // on ny dng cu hnh 1 s phn cng trn board cc bn nn b /* #define BUTTON1_PRESSED() (!input(PIN_A4)) #define USER_LED1 PIN_A5 #define USER_LED2 PIN_B4 #define USER_LED3 PIN_B5 #define LED_ON output_low #define LED_OFF output_high void init_user_io(void) { setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(AN0); *0xF92=(*0xF92 & 0xDF) | 0x11; //a5 output, a4 and a0 input *0xF93=*0xF93 & 0xCF; //b4 and b5 output LED_OFF(USER_LED1); LED_OFF(USER_LED2); LED_OFF(USER_LED3); }*/ #endif // Thit lp a ch MAC void MACAddrInit(void) { MY_MAC_BYTE1=0; MY_MAC_BYTE2=2; MY_MAC_BYTE3=3; MY_MAC_BYTE4=4; MY_MAC_BYTE5=5; MY_MAC_BYTE6=6; } // Thit lp a ch IP void IPAddrInit(void) { //IP address of this unit MY_IP_BYTE1=192; MY_IP_BYTE2=168; MY_IP_BYTE3=100;

MY_IP_BYTE4=7; //network gateway MY_GATE_BYTE1=192; MY_GATE_BYTE2=168; MY_GATE_BYTE3=100; MY_GATE_BYTE4=1; //subnet mask MY_MASK_BYTE1=255; MY_MASK_BYTE2=255; MY_MASK_BYTE3=255; MY_MASK_BYTE4=0; } char ExampleIPDatagram[] = { 0x45, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x64, 0x11, 0x2A, 0x9D, 0x0A, 0x0B, 0x0C, 0x0D, 0x0A, 0x0B, 0x0C, 0x0E }; char ExampleUDPPacket[] = { 0x04, 0x00, 0x04, 0x01, 0x00, 0x08, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04 }; + Bc 2 : cu hnh li cc chn giao tip SPI vi ENC28J60. cu hnh li cc chn ny cc bn vo file ENC288J60.c v file hardware.h . V y l on cn chnh sa. #define PIN_ENC_MAC_SO PIN_B0 // Khi SPI ca VDK ca bn #define PIN_ENC_MAC_SI PIN_C7 // #define PIN_ENC_MAC_CLK PIN_B1 // #define PIN_ENC_MAC_CS PIN_D1 #define PIN_ENC_MAC_RST PIN_D0 #define PIN_ENC_MAC_INT PIN_B2 #define PIN_ENC_MAC_WOL PIN_B3 void mac_enc_spi_tris_init() {set_tris_c(0b01111111);set_tris_b(0b11111101);set_tris_d(0b11111100);} // Set output,input cho cc chn tng ng ca khi SPI. _ Cc bn thay #define mac_enc_spi_tris_init() bng void mac_enc_spi_tris_init()

+ Bc 3: Khi mun thm 1 giao thc no vo chng trnh th cc bn nh ngha giao thc u hm main: #define STACK_USE_ICMP 1 #define STACK_USE_ARP 1 #define STACK_USE_TCP 1 #include ccstcpip.h V d y thm cc giao thc ICMP,ARP,TCP. _ Gi cc bn c th compile th cc v d c sn ca th vin trn board ca mnh. Vy l gi chng ta c th s dng b th vin TCP/IP Stack do CCS config li thc hin cho board ca mnh. Lu : nn bin dch bng CCS phin bn 4.0 tr xung do mnh bin dch bng bn CCS 4.1 c thng bo li file helpers.c _Phn 2 chng ta s config hardware cho b th vin TCP/IP Stack ca Microchip cho trnh dch MPLAB.

You might also like