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
-
bởi bqvietServo cuối cùng vẫn chỉ là điều chỉnh tốc độ và đọc phản hồi vị trí
Qua cổng song song LPT cổ
https://www.electronicsforu.com/elec...eed-controller
Qua cổng USB - xem thêm đám FT232RL-
Channel: Điện tử công nghiệp
22-11-2024, 15:56 -
-
bởi thiennam0703Em đang tìm hiểu cách xây dựng chương trình điều khiển động cơ Servo Yaskawa bằng máy tính tuy nhiên khi tìm kiếm trên mạng các hướng dẫn thì thường là điều khiển bằng vi điều khiển hoặc điều khiển bằng PLC hay điều khiển động cơ...
-
Channel: Điện tử công nghiệp
22-11-2024, 15:32 -
-
Trả lời cho Tổng hợp các thông tin về mạch nạp cho AVRbởi bacthoMình cũng bị như vậy mà chưa biết ở đâu
-
Channel: Vi điều khiển AVR
21-11-2024, 21:00 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi nhathung1101Câu trả lời là không dùng được.
Hai lớp dán mặt trước và mặt sau, gọi là film phân cực. Muốn hiểu rõ về nó thì chịu khó search nhé. Ở đây có rất nhiều chó cứ ngửi thấy phân là sủa nhặng, nên không giải thích nhiều....-
Channel: Thiết bị điện tử cá nhân
21-11-2024, 16:20 -
-
Comment on Tổng hợp các thông tin về mạch nạp cho AVRbởi Memem
-
Channel: Vi điều khiển AVR
21-11-2024, 15:10 -
-
Trả lời cho Tổng hợp các thông tin về mạch nạp cho AVRbởi MememMọi người ơi cho em hỏi cái này ạ, hiện tại em đang làm btl về hiển thị giá trị nhiệt độ trên led 7 thanh sử dụng atmega16, code em chạy trên mô phỏng rất oke nhưng khi lắp qua mạch thực thì bị lỗi ở led đầu tiên bị lỗi như thế này...
-
Channel: Vi điều khiển AVR
21-11-2024, 15:10 -
-
bởi mantruongepuNhờ cả nhà tìm giúp mình thông tin IC này với, thấy ghi 943B W58BAL mà mình tìm mấy ngày nay không được, nó được đóng gói dạng TSSOP 8. Cám ơn cả nhà....
-
Channel: Điện tử dành cho người mới bắt đầu
20-11-2024, 14:40 -
-
bởi TherulCảm ơn bạn đã chia sẻ câu chuyện và quá trình phát triển sản phẩm của mình. Trước tiên, thật may mắn khi bạn vượt qua tai nạn và vẫn giữ được niềm đam mê cũng như khả năng sáng tạo trong lĩnh vực kỹ thuật. Việc bạn tiếp tục...
-
Channel: từ PIC tới dsPIC
20-11-2024, 07:20 -
-
Trả lời cho Em muốn hỏi mọi người về nguyên lý hoạt động, tần số của mạch công suất trong máy rửa siêu âm ạ.bởi nguyendinhvanBạn nên nghiên cứu cái chấn lưu đèn ống Compact fluorescent lamp hay đèn compact trước đã. Nó rẻ đỡ tốn kém.
Sau khi hiểu rõ rồi thì chuyển sang cái mạch này.
Ở cái chấn lưu, tần số của nó linh tinh lắm, tùy điện áp nguồn, tùy...-
Channel: Hỗ trợ học tập
19-11-2024, 22:44 -
Comment