Nguyên văn bởi trimen
Xem bài viết
Thông báo
Collapse
No announcement yet.
TCP/IP với PIC
Collapse
X
-
Chào các bạn.
Mình cũng đang nghiên cứu về vấn đề này nhưng mình có một số điều không hiểu lắm các bạn giúp mình với.
- Cái giao diện web để đăng nhập vào điều khiển nó viết thế nào nhỉ ,mình cần những gì để viết một giao diện khác ( tại mình không thích cái giao diện có sẵn của TCP/IP stack của microchip ) .
- Có bạn nào có phần demo về thiết kế web cho chương trình điều khiển không thì gởi giúp mình với (mail của mình là Mr.hoangvt07@gmail.com) .
Thanks các bạn nhiều .
Comment
-
Nguyên văn bởi trimen Xem bài viếtbạn tham khảo file mình đính kèm, file này là cấu hình từ bộ tcp/ip của microchip cho pic18f4620 và dùng giao thức TCP để điều khiển thiết bị điện từ máy tính
Mình có tham khảo và sử dụng thư viện của TCP/IP Stack của Microchip và nhiều phiên bản được cải tiến cho pic 18f4620, build cũng báo THÀNH CÔNG nhưng lúc mô phỏng trên Proteus thì không chạy.
Comment
-
Khuyên bạn nên làm mạch thật chứ mấy cái này thường protues mô phỏng không dc, sơ đồ mạch thì chỉ gồm pic giao tiếp enc qua đường spi vậy thôi không có gì phức tạp bạn chịu khó search trên mạng thì ra thôi tại hiện mình không lưu trong máy nếu cần thì mình lấy rồi up lên cho bạn
Comment
-
Nguyên văn bởi trimen Xem bài viếtKhuyên bạn nên làm mạch thật chứ mấy cái này thường protues mô phỏng không dc, sơ đồ mạch thì chỉ gồm pic giao tiếp enc qua đường spi vậy thôi không có gì phức tạp bạn chịu khó search trên mạng thì ra thôi tại hiện mình không lưu trong máy nếu cần thì mình lấy rồi up lên cho bạn
Nhân tiện bạn xem giúp mình mạch này nhen
Mình tham khảo từ trang này PIC18F97J60 Ethernet/Webserver Board, 2 Relays, 16
và đây nữa PIC18F97j60Ethernet.zip
Và cho mình hỏi với mạch thứ 2 mình chó thể buil từ Demo TCP/IP của Micrchip để nạp không.Last edited by ngphuoc2201; 04-05-2012, 15:17.
Comment
-
gửi bạn file nguyên lí của code mình đã post, bạn dow trong file đính kèmAttached Files
Comment
-
Nguyên văn bởi trimen Xem bài viếtgửi bạn file nguyên lí của code mình đã post, bạn dow trong file đính kèm
cám ơn!
Comment
-
ENC28J60 dùng chuẩn SPI để giao tiếp, cái này thì dễ, chủ yếu là bạn phải làm thế nào để nó chạy dc các giao thức trong mạng Ethernet như truyền dữ liệu dùng TCP,UDP... để làm được cái này bạn phải viết cho nó hoặc sử dụng bộ thư viện được xây dựng sẵn , ở đây Microchip đã xây dựng sẵn cho chúng ta bộ thư viện nên chỉ cần tìm hiểu cách cấu hình bộ thư viện đó phù hợp với phần cứng của mình là dc.
Comment
-
đây là 1 đoạn code mẫu tìm được trên mạng.
nhưng sau ping vào địa chỉ 192.168.1.111 không thấy tín hiệu gi hết.
Không biết co sai sót cho nào không mong các cao nhân thực hiện rồi co thể giúp đỡ với
Nói ngắn gọn là chưa kết nối được với board mạch nên không thực hiện được thêm công việc gì hết.
Helpppppppppppppppp!!!!!!
//////////////////////////////////////////////////////////////////////////////////////////////
//Este programa sirve para revisar la correcta conexión entre el PIC18F4550 y //
//el modulo ENC28J60, crea un WebServer en la direccion IP 192.168.1.111 //
//El cual muestra el siguiente mensaje "Test Conexión PIC18F4550 y ENC28J60 V1.0" //
//También emula un puerto serial en el PC donde vamos viendo como se desarrolla el programa // //
//////////////////////////////////////////////////////////////////////////////////////////////
#define __USB_PIC_PERIF__ 1
#include <18F4550.h>
//#fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PL L1,CPUDIV1,VREGEN // Ocupa cristal 4Mhz, cambiar a PLL5 para ocuparlo con 20Mhz.
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PL L5,CPUDIV1,VREGEN
#use delay(clock=20M)
#define ON output_high
#define OFF output_low
#define LedV PIN_B6
#define LedR PIN_B7
// Conexión entre el PIC18F4550 y el Modulo ENC28J60 (Se conecta directamente sin adaptador de voltajes).
// Se adjunta el datasheet del Modulo ENC28J60.
#define PIN_ENC_MAC_SI PIN_C7 // Conectar con PIN MISO del ENC28J60.
#define PIN_ENC_MAC_SO PIN_B0 // Conectar con PIN MOSI del ENC28J60.
#define PIN_ENC_MAC_CLK PIN_B1 // Conectar con PIN SCK del ENC28J60.
#define PIN_ENC_MAC_CS PIN_B3 // Conectar con PIN CS del ENC28J60.
#define PIN_ENC_MAC_RST PIN_B5 // Conectar con PIN RST del ENC28J60.
#define PIN_ENC_MAC_INT PIN_D2 // Conectar con PIN INT del ENC28J60.
#define PIN_ENC_MAC_WOL PIN_D3 // Conectar con PIN WOL del ENC28J60.
#include "usb/usb_cdc.h" // Descripción de funciones del USB.
#include "usb/usb_desc_cdc.h" // Descriptores del dispositivo USB.
//Protocolos a utilizar.
#define STACK_USE_MCPENC TRUE
#define STACK_USE_ARP TRUE
#define STACK_USE_ICMP TRUE
#define STACK_USE_TCP TRUE
#include "tcpip/stacktsk.c"
#define MY_HTTP_SOCKET 80
int8 HTTPSocket=INVALID_SOCKET;
// Microchip VendorID, MAC: 00-04-A3-XX-XX-XX
void MACAddrInit(void)
{
MY_MAC_BYTE1=0x00;
MY_MAC_BYTE2=0x04;
MY_MAC_BYTE3=0xA3;
MY_MAC_BYTE4=0x00;
MY_MAC_BYTE5=0x00;
MY_MAC_BYTE6=0x01;
}
void IPAddrInit(void)
{
//Direccion IP
MY_IP_BYTE1=192;
MY_IP_BYTE2=168;
MY_IP_BYTE3=1;
MY_IP_BYTE4=111;
//Puerta de Enlace
MY_GATE_BYTE1=192;
MY_GATE_BYTE2=168;
MY_GATE_BYTE3=1;
MY_GATE_BYTE4=1;
//Mascara de Subred
MY_MASK_BYTE1=255;
MY_MASK_BYTE2=255;
MY_MASK_BYTE3=255;
MY_MASK_BYTE4=0;
}
void HTTPPut(char c)
{
TCPPut(HTTPSocket, c);
}
void HTTPTask(void)
{
static enum {HTTP_ST_CONNECT=0, HTTP_ST_WAIT_CONNECT=1, HTTP_ST_GET=2, HTTP_ST_PUT=3, HTTP_ST_DISCONNECT=4} state=0;
static TICKTYPE timeout_counter;
static char lc, lc2;
char c;
char content[250];
if (HTTPSocket==INVALID_SOCKET)
state=HTTP_ST_CONNECT;
else if (!TCPIsConnected(HTTPSocket))
state=HTTP_ST_WAIT_CONNECT;
else if (TickGetDiff(TickGet(), timeout_counter) > TICKS_PER_SECOND*60)
state=HTTP_ST_DISCONNECT;
switch(state) {
case HTTP_ST_CONNECT:
HTTPSocket=TCPListen(MY_HTTP_SOCKET);
if (HTTPSocket!=INVALID_SOCKET) {
printf(usb_cdc_putc,"\r\nHTTP: Listening");
state=HTTP_ST_WAIT_CONNECT;
timeout_counter=TickGet();
}
break;
case HTTP_ST_WAIT_CONNECT:
timeout_counter=TickGet();
if (TCPIsConnected(HTTPSocket)) {
state=HTTP_ST_GET;
printf(usb_cdc_putc,"\r\nHTTP: Connected");
}
break;
case HTTP_ST_GET:
if (TCPIsGetReady(HTTPSocket)) {
while (TCPGet(HTTPSocket, &c)) {
if ( (c=='\n') && (lc2=='\n') ) {
state=HTTP_ST_PUT;
printf(usb_cdc_putc,"\r\nHTTP: Got Page Request");
}
lc2=lc;
lc=c;
}
}
break;
case HTTP_ST_PUT:
if (TCPIsPutReady(HTTPSocket)) {
printf(usb_cdc_putc,"\r\nHTTP: Putting Page Response");
sprintf(content, "<HTML><HEAD><TITLE>WebServer PIC18F4550 ENC28J60</TITLE></HEAD><BODY><H1>Test Conexión PIC18F4550 y ENC28J60 V1.0</H1>");
sprintf(&content[0]+strlen(content),"</BODY></HTML>");
printf(HTTPPut, "HTTP/1.1 200 OK\r\n");
printf(HTTPPut, "Content-Type: text/html\r\n");
printf(HTTPPut, "Content-Length: %u\r\n",strlen(content));
printf(HTTPPut, "\r\n");
printf(HTTPPut, "%s", content);
printf(usb_cdc_putc,"\r\nHTTP: Flushing...");
TCPFlush(HTTPSocket);
printf(usb_cdc_putc,"\r\nHTTP: Flushed!");
state=HTTP_ST_GET;
}
break;
case HTTP_ST_DISCONNECT:
if (TCPIsPutReady(HTTPSocket)) {
printf(usb_cdc_putc,"\r\nHTTP: Force Disconnect");
TCPDisconnect(HTTPSocket);
state=HTTP_ST_WAIT_CONNECT;
}
break;
}
}
void main(void)
{
ON(LedR);
OFF(LedV);
// usb_cdc_init();
// usb_init(); //Inicializamos hardware USB del PIC18F4550.
// usb_task(); //Habilita periferico usb e interrupciones.
// usb_wait_for_enumeration(); //Esperamos hasta que el PicUSB sea configurado por el host.
// printf(usb_cdc_putc,"USB Configurado");
MACAddrInit();
IPAddrInit();
StackInit();
ON(LedR);
ON(LedV);
while(TRUE)
{
StackTask();
HTTPTask();
}
}
ENC28J60 y PIC18F4550 (CCS Solucionado)
Vì không cài được driver nên mình đã bỏ đi phần USB.
Bạn Trimen đã làm cái này rồi có thể chỉ giáo cho mình với được không.
Email: nguyentienan2004@yahoo.com / nguyentienan82@gmail.com
Có gì xin thỉnh giáo những người đã đi trước.Last edited by NTATG; 26-07-2012, 18:09.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi vi van phamGiúp đỡ người ko cần trợ giúp, đôi khi chữ Tâm còn thiếu chưa đủ nghĩa, phải thêm vào chữ Nhẫn phía trước thành chữ Nhẫn Tâm.
Thí dụ bạn làm trong cty chuyên về điện tử, buổi họp hàng tuần diễn ra, bạn góp ý với bạn...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 18:02 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi dinhthuong80Chẳng giấu gì bác, ngành em học lúc trước thật chả ai dám nhận vào làm bất cứ công việc chuyên môn nào đâu, nói ra sợ cả nhà cùng cười: cử nhân Vật Lí Ứng Dụng!
Chữ TÂM em nói ở bài trước, trước là với ý hẹp hòi lắm:...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 12:32 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi mèomướpDạ chú nhat... sang tàu rồi buồn ghê ạ, chú tuyen... chắc ngày trước đã gặp được nhìu đàn anh tốt bụng chỉ bảo. Bàn về chữ TÂM thì cháu chưa rõ các chú hiểu như thế nào. Cháu thì thấy với những người tốt đã biết nhau đủ lâu,...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 11:47 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi tuyennhanMình tưởng dinhthuong lả kỹ sư điện tử làm ở BD .
Khi mình mới học ngoài mớ lý thuyết cơ bản mấy ông anh không có chỉ gì thêm chỉ nói phân tích suy luận thế nào thì tùy mày nếu tụi tao chỉ mày thì cả đời đừng mơ đến việc...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 08:14 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nhathung1101Cũng xin lỗi cả nhà, mai tôi lại phải bay...
Chỉ nghiên cứu "phân" và "cứt" khác nhau thế nào thôi.
Chờ tôi về rồi nói chuyện tiếp nhé...
Bên kia dùng WECHAT nó khác lắm, mong ae thông cảm.-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:38 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nhathung1101Ừ thì về món "phân" tôi học chán rồi.
Vi Phân, Tích Phân, rồi cả Tạ Phân...
Cứ ngẫm nghĩ đi đã, rồi bớt cái ngố đi, rồi ta lại nói chuyện tiếp.
Chứ cứ ngồi một chỗ đấy, ngỏng cái cổ lên...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:10 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi mèomướpDạ chú nhat... nghĩ tích cực lên đi ạ. Ai lại cứ suốt ngày động tí là nghĩ người khác có ý đồ xấu, rồi thì thất bại, rồi thì ngỏm củ tỏi... ví dụ như chị hàng xóm nhà cháu thấy phân mấy anh thợ ống nước nhìu nên hông thuê cháu...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:56 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nhathung1101Với ý nghĩ đó thì:
- Phương án 1 là đi theo Teo Hẳn! Luôn và ngay!
- Phương án 2 là nghỉ hưu, nếu đủ tuổi.
- Phương án 3: Là tôi gửi trước tiền viếng......-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:38 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nhathung1101Yeah. Continuous please...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:20 -
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Cảm ơn bác nhiệt tình góp ý.
Đúng là ĐT quá dở nên diễn đạt câu "I'm going to send you..." theo cách nói hiện tại và của người Việt, vì lúc đó cứ nghĩ là mình còn đang viết từng chữ với ý định là sẽ gửi thư khi viết...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 11:47 -
Comment