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