Kít của tớ cũng bắt chước của Olimex thui (xem attachment). Còn nếu dùng PIC giao tiếp với ENC mà không cần con 74HCT thì dùng PIC 18LF nó cũng chạy 3.3V giống ENC. Xem chi tiết tại đây.
Thông báo
Collapse
No announcement yet.
PIC và Internet application
Collapse
X
-
@hackervnbk: cái RJ45 đó có biến áp ở trong, những loại tôi có đều có chiều dài của cái Jack là 2.5cm, có 2 LED, nếu cái RJ của bạn có chiều dài như vậy thì chắc chắn nó có biến áp.
Còn chân SDO của ENC28J60 dùng điện áp 3v3 nối vào SDI của PIC là chân ST, về nguyên tắc thì mức 1 của ST là 0.8Vdd, nhưng trong thực tế thử với cả PIC và dsPIC đều nhận tốt mức 1 không cần qua đệm, tớ đã thử với SPI tốc độ 5Mhz, nhưng vẫn nên thêm đệm cho chắc chắn.
Cái SCH anh Ngọc đính kèm nó dùng PIC 5V và con HCT125, PIC8LF có thể chạy ở điện áp 3v3 nhưng với điện áp đó chỉ có thể chạy được ở tốc độ 20Mhz, muốn tìm PIC 18 chạy 3v3 thì đó là những con PIC18FJ.
Comment
-
Thằng e của bác LinhNc đây,hic thời gian vừa rồi bận quá cũng chưa làm được nhiều với đề tài này,đã thế hôm nọ mua cái RJ45 của bác Newday bị ăn 1 vố to quá.Gì mà cái RJ45 "xịn" (tức là phải tích hợp biến áp bên trong) cảu bác Newday lại là cái loại có tích hợp thêm có mỗi 2 cái Led thôi ah (tìm mãi chẳng thấy biến áp đâu )
Thế có ai muốn dùng RJ45 xịn không, giá cũng hơi xịn nhưng RJ45 thì chắc chắn vì phamthaihoa đã test rồi.Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.
Biến tần
Máy giặt
Lò vi sóng
Bếp từ.
Tủ lạnh.
Điều hòa
Comment
-
Nguyên văn bởi phamthaihoa Xem bài viết@hackervnbk: cái RJ45 đó có biến áp ở trong, những loại tôi có đều có chiều dài của cái Jack là 2.5cm, có 2 LED, nếu cái RJ của bạn có chiều dài như vậy thì chắc chắn nó có biến áp.
Còn chân SDO của ENC28J60 dùng điện áp 3v3 nối vào SDI của PIC là chân ST, về nguyên tắc thì mức 1 của ST là 0.8Vdd, nhưng trong thực tế thử với cả PIC và dsPIC đều nhận tốt mức 1 không cần qua đệm, tớ đã thử với SPI tốc độ 5Mhz, nhưng vẫn nên thêm đệm cho chắc chắn.
Cái SCH anh Ngọc đính kèm nó dùng PIC 5V và con HCT125, PIC8LF có thể chạy ở điện áp 3v3 nhưng với điện áp đó chỉ có thể chạy được ở tốc độ 20Mhz, muốn tìm PIC 18 chạy 3v3 thì đó là những con PIC18FJ.
Bác có biết cách nào nhận biết RJ45 có sẵn biến áp ko , đo thử các pin của nó ? Bác đo thử rồi cho mình biết đc ko , mới tháo đc 1 RJ cái từ cái router wifi bị hỏng .
@ Minh Ha : cho em cái giá xịn của RJ45 đi anh .
Comment
-
Đã có bác nào làm xong board chưa? Thử nghiệm đầu tiên của em cho thấy mặc dù PIC chạy ở 40Mhz (XTAL 10Mhz, OSC=HSPLL) nếu thêm các lệnh đọc I/O (đọc nhiệt độ/độ ẩm từ sensor) vào chừng vài lần thì PIC và webserver ngủm củ tỏi. Có cách nào viết cho thao tác I/O tách riêng với phần giao tiếp TCP/IP? Dưới đây là vòng lặp chính của chương trình
Code:// Once all items are initialized, go into infinite loop and let // stack items execute their tasks. // If application needs to perform its own task, it should be // done at the end of while loop. // Note that this is a "co-operative mult-tasking" mechanism // where every task performs its tasks (whether all in one shot // or part of it) and returns so that other tasks can do their // job. // If a task needs very long time to do its job, it must be broken // down into smaller pieces so that other tasks can have CPU time. while(1) { // This task performs normal stack task including checking // for incoming packet, type of packet and calling // appropriate stack entity to process it. StackTask(); // This is a TCP application. It listens to TCP port 80 // with one or more sockets and responds to remote requests. HTTPServer(); // Add your application specific tasks here. ProcessIO(); // Giao tiếp với sensor trong hàm này. Đọc nhiệt độ/độ ẩm vào các biến // toàn cục để có thể view được từ web }
“If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds
Comment
-
Khởi động computer từ Internet (Wake Up Over Internet)
Chúng ta cùng cài đặt chức năng khởi động máy tính từ Internet (tạm đặt là Wake Up Over Internet).Máy tính đã có sẵn chức năng Wake on LAN tức là khởi động máy tính từ mạng LAN. Để sử dụng chức năng này ta vào CMOS setup và enable chức năng này lên. Và tất nhiên là máy tính đã cắm nguồn sẵn sàng và được nối network cable vào hub/switch của LAN hoặc ADSL modem.
Để kích hoạt máy tính khởi động thì từ mạng LAN, một máy tính bất kỳ (hoặc kit ethernet của chúng ta) phải gởi một UDP package 1024 bytes đến địa chỉ broadcast là 255.255.255.255 (0xFF.0xFF.0xFF.0xFF) với nội dung như sau:
- 6 bytes đầu tiên là 0xFF (0xFF,0xFF,0xFF,0xFF,0xFF,0xFF)
- Địa chỉ MAC của máy tính cần khởi động lặp 16 lần.
Để có được địa chỉ MAC ta gõ lệnh ipconfig /all trong console của Windows. Dòng Physical Address chính là địa chỉ MAC (00-11-0A-40-F7-92)
Các bạn có thể tải chương trình demo Wake On Lan viết bằng C# và bằng VB để xem cách hoạt động của nó.
Bây giờ quay lại bài toán của chúng ta. Ethernet kit sẽ hoạt động như một webserver, khi bạn từ ngoài Internet truy cập vào trang web sẽ có một button khi bấm vào PIC sẽ gởi một broadcast UDP package chứa địa chỉ MAC của máy tính cần khởi động.
Hàm WakeUpOnLAN được viết cho PIC bằng C18 dựa theo ví dụ UDPPerformanceTest trong TCP/IP stack v4.02 như sau
Code:#define WAKE_UP_PORT 0x2fff // port=12287 let's use this one rom BYTE buffer[1024]; //buffer to be send; 6 bytes 0xFF; 16 times of MAC 6 bytes (6+16*6), remaining bytes is zero int parseHex(char* hex) { int res; int val; char* ptr; res = 0; ptr = hex; while((*ptr)=='0') ptr++; while(*ptr) { if(!((*ptr<'0')||(*ptr>'9'))) { val = *ptr - '0'; } else if(!((*ptr<'a')||(*ptr>'f'))) { val = *ptr - 'a' + 10; } else if(!((*ptr<'A')||(*ptr>'F'))) { val = *ptr - 'A' + 10; } else { return -1; } res = res*16+val; ptr++; } return res; } // My MAC address is 00-11-0A-40-F7-92 void WakeUpOnLAN(const char* szMyMAC) { UDP_SOCKET MySocket; NODE_INFO Remote; int i, counter; const unsigned char delimiters[]=":- "; unsigned char * token; BYTE MAC[6]; // Set the socket's destination to be a broadcast over our IP // subnet // Set the MAC destination to be a broadcast memset(&Remote, 0xFF, sizeof(Remote)); // Open a UDP socket for outbound transmission MySocket = UDPOpen(0, &Remote, WAKE_UP_PORT); // Abort operation if no UDP sockets are available // If this ever happens, incrementing MAX_UDP_SOCKETS in // StackTsk.h may help (at the expense of more global memory // resources). if(MySocket == INVALID_UDP_SOCKET) return; // Make certain the socket can be written to if(!UDPIsPutReady(MySocket)) { UDPClose(MySocket); return; } memsetpgm(buffer,0,1024); //first 6 bytes should be 0xFF counter=0; for(i=0;i<6;i++) { buffer[i]=0xff; counter++; } i = 0; token = strtok(szMyMAC, delimiters); while (token!= NULL) { MAC[i]=parseHex(token); i++; token = strtok (NULL, delimiters); if(i>5) break; } //now repeate MAC 16 times for(i=0;i<16;i++) { memcpypgm((rom BYTE*)&buffer[counter],(rom BYTE*)MAC,6); counter+=6; } UDPPutROMArray(buffer, 1024); // Send the packet UDPFlush(); // Close the socket so it can be used by other modules UDPClose(MySocket); }
WakeUpOnLAN("00-11-0A-40-F7-92") hoặc
WakeUpOnLAN("00:11:0A:40:F7:92") hoặc
WakeUpOnLAN("00 11 0A 40 F7 92")
Để kiểm tra xem PIC có gởi UDP package lên LAN không ta dùng một công cụ để monitor package trên LAN gọi là Ethereal (Cái này mà cài ở máy tính dịch vụ thì có thể ngửi (sniff) password, email, chat của mấy máy tính trong dịch vụ).
Note: Mặc dù code trên khi chạy thì PIC có gởi UDP package vào LAN nhưng khi mình dùng Ethereal để monitor thì thấy nội dung không đúng yêu cầu là:
- 6 bytes đầu là 0xFF
- Địa chỉ MAC 6 bytes được lặp 16 lần (16*6=96 bytes)
- 922 bytes còn lại (1024 - 6 - 96) là 0x00
Các bác kiểm tra dùm mình xem sai ở chỗ nào nhé.Last edited by bxngoc; 09-08-2007, 16:59.“If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds
Comment
-
Nguyên văn bởi bxngoc Xem bài viếtKít của tớ cũng bắt chước của Olimex thui (xem attachment). Còn nếu dùng PIC giao tiếp với ENC mà không cần con 74HCT thì dùng PIC 18LF nó cũng chạy 3.3V giống ENC. Xem chi tiết tại đây.
Comment
-
Quá nóng đi nữa. Rờ vào con 7805 phỏng tay dù có tản nhiệt. Con ENC thì ấm ấm. Mạch này tiêu thụ dòng khác cao. Phải dùng adapter 9V/1A trở lên mới đủ.“If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds
Comment
-
Nguyên văn bởi batbatdieu Xem bài viếtBác có biết cách nào nhận biết RJ45 có sẵn biến áp ko , đo thử các pin của nó ? Bác đo thử rồi cho mình biết đc ko , mới tháo đc 1 RJ cái từ cái router wifi bị hỏng .
@ Minh Ha : cho em cái giá xịn của RJ45 đi anh .
Comment
-
Nguyên văn bởi VENUS_START Xem bài viếtHien tai mihn cung co vai cai RJ45 hang xin luon. Nhìn vao khe ho ban cung thay cuon day dong ben trong roi. Neu ko thi dung VOM kiem tra neu co bien ap thi phan ket noi vao rj45 va phan han len board mach ko bi noi tat.Last edited by batbatdieu; 11-09-2007, 11:46.
Comment
-
lâu lâu rồi không thấy mem nào update thông tin về mục này nhỉ. Ai có thông tin gì mời thì share cho anh em cùng biết. Ứng dụng trên nền Ethernet rất là hay và thực tế.Ethernet-RS232, PIC Webserver, RFID Reader
CallerID, Cảnh báo BTS, ...
0988006696
linhnc308@gmail.com
http://linhnc308.blogspot.com
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về test hipot cao ápbởi nguyendinhvanCách nghĩ của bạn là theo duy tâm thôi. Còn trong công việc thì phải theo duy lý.
Bạn vào goggle và gõ từ : tiêu chuẩn an toàn cách điện.
Bạn sẽ thấy vô vàn các quy định, VN cũng có , quốc tế cũng có. Mỗi vùng , mỗi khu vực,...-
Channel: Điện tử dành cho người mới bắt đầu
02-11-2024, 20:04 -
-
bởi lamvu0677Chào mọi người, ai làm về điện, đặc biệt biến áp xung, mâý con nho nhỏ gắn vào mạch nguồn, cho e hỏi tí ą, e cũng làm trong ty về biển áp thì đo kiểm thành phẩm sẽ kiểm cao áp, tức là kiểm xem có phóng điện giữa các cuộn dây với...
-
Channel: Điện tử dành cho người mới bắt đầu
01-11-2024, 21:05 -
-
bởi AaaabbbbbEm chào các anh chị ,cô chú . Em đang có 1 đề tài: Mô phỏng điều khiển động cơ 1 chiều và bộ điều khiển điện áp tự động (AVR) sử dụng MATLAB/Simulink và Arduino . Anh chị có thế giải thích hoặc định hướng giúp em với được không ạ . Em xin cảm ơn !!...
-
Channel: Vi điều khiển AVR
30-10-2024, 16:38 -
-
bởi 2embeyeuem mới nhập môn, bác nào có sơ đồ của mạch này và cách cắm mạch trên panel cho em xin với, em cảm ơn ạ
-
Channel: Điện tử dành cho người mới bắt đầu
30-10-2024, 15:52 -
-
bởi dqt21091997Hi mọi người,
Team mình hiện là đối tác phân phối cho 1 dịch vụ Proxy US chuẩn bị mở mang tên Proxy Compass. Mọi người có thể trải nghiệm ở đây: https://proxycompass.com/vi/free-trial/
Điểm mạnh của Proxy Compass là:
- 50 địa chỉ IP proxy
...-
Channel: Tổng quan về ngành viễn thông
30-10-2024, 14:46 -
-
Trả lời cho Thắc mắc về kiến thức điện xoay chiềubởi SteinsKMình nhớ là do điện AC không có chia cực cố định như DC, thêm vào đó thì ổ điện loại mà 2 lỗ thì cũng không có phân biệt chiều cắm, thành ra mình cắm chiều nào cũng được. Đây là em hiểu như vậy, có bác nào có ý kiến khác không ạ....
-
Channel: Điện tử dành cho người mới bắt đầu
30-10-2024, 09:57 -
-
bởi tivungvechào mọi người, em là sinh viên mới tìm hiểu về điện em có thắc mắc là tại sao điện AC ở nhà dùng có phích cắm khi cắm vào ổ điện thì cắm chiều nào cũng được, mà em đọc trên mạng thấy điện AC có dây trung tính và dây pha mà nhỉ...
-
Channel: Điện tử dành cho người mới bắt đầu
27-10-2024, 14:25 -
Comment