Mình mở ra luồng này để chúng ta trao đổi vấn đề giao tiếp mega với ethernet cụ thể ở đây sử dụng chíp ENC28J60.Bác nào đả làm hoặc đang có ý định làm về vấn đề này thì xin cho mọi người một ít những hướng dẫn ban đầu.
Thông báo
Collapse
No announcement yet.
giao tiếp ENC28J60 với mega
Collapse
X
-
Giới thiệu với mọi người một trang web rất hay:http://tuxgraphics.org/electronics/2...cle06061.shtml
Mọi người nhớ tích cực đóng góp ý kiến nha.
Có ai cùng làm với tớ không:http://tuxgraphics.org/electronics/2...cle06111.shtml
Có ai đã lamg về giao tiếp ethernet thì giúp mình với.Last edited by sphinx; 02-11-2008, 20:07.
Comment
-
Nguyên văn bởi dinhchithanhHình như mấy anh đi trước dấu nghề, hoắc là không ai biết.Ai viết phần mềm giao tiếp với ethernet sử dụng con enc28j60 bằng C#.net hay VB.net chưa
chỉ cần điều khiển on hoặc off một con led thôi post lên cho anh em tham khảo với
Nếu bác tin rằng đọc vài ngàn dòng code mà hiểu ra vấn đề của mình thì tôi cũng vái bác vài cái. Và cũng chả có ai đi trước hay sau, quan trọng vẫn là có dám đọc và dám làm hay không. Chả có lý do gì những người đọc sách, build code, làm mạch test... mờ mắt (mà chưa chắc đã thành công) lại có thể nói tồng tộc tất tần tật những gì phải làm cho một người khác, trong khi đó, những người ít tuổi hơn (cứ tạm cho là thế) có nhiều thời gian hơn lại ngồi vểnh râu và bảo giấu nghề hay chia sẻ cả.
Tôi cũng định post tiếp luồng này về TCP/IP cộng với ENC. Bởi tôi cũng đang làm nó. Source của ENC đầy trên mạng, nhưng thà mất thời gian mà có chút hiểu biết vẫn hơn down&build, để rồi sau đó vỗ ngực "ta cũng đã làm TCP/IP" mà thực ra chả biết IP là cái gì.
Kiến thức cơ bản về TCP/IP có lẽ chả ai nói được trong vài bài post, bởi đơn giản là sách hướng dẫn về nó đã là cả nghìn trang. Và một khi đã biết các giao thức trong TCP/IP thì việc ghép nối với ENC chỉ là trò vặt. Tôi chỉ có thể nói rằng, trong giao thức mạng, không phải ghép nối SPI là khó, mà khó là ở các protocol như:
- ARP: Address resolution protocol
- IP: Internet Protocol
- ICMP: Internet control message protocol
- TCP: Transmission control protocol
- UDP: User datagram protocol
Và rồi muốn sử dụng lệnh ping trong windows, phải biết ping sử dụng giao thức nào, UDP hay TCP; muốn để nhận IP tự động phải biết gửi đến DNS server protocol nào (ở đây là DHCP)...
Các khung (frame, stream hay datagram) đều không khó, mà khó ở chỗ: thứ nhất là có quá nhiều khung, do đó lập trình phải chuẩn (vì vậy mà assembly rất khó sử dụng); thứ 2 đó là phải biết ứng dụng của mình giới hạn ở mức nào.
Tôi chỉ là người đi sau, nhưng chưa bao giờ có suy nghĩ người đi trước giấu nghề, tôi chỉ đơn giản phục họ ở ý chí tự đọc tự làm. Và đã là người làm sau người khác, thì sẽ không có chuyện copy của người khác để làm của mình. Phần cứng thì có thể, nhưng firmware, hãy để nó là do mình gõ và suy nghĩ.
Một chút nho nhỏ về ENC hay RTL8019 hay vv..v. đó là, tất cả những con IC gọi là Ethernet Controller, luôn làm nhiệm vụ trên 2 lớp physics. Các bác chỉ cần gửi dữ liệu theo một protocol nào đó vào thanh ghi của ENC, nó sẽ tự biết phải làm gì.
Thanh ghi của ENC chia ra làm 3 loại, Thanh ghi điều khiển (control register) thường bắt đầu bằng chữ E, ví dụ: ETH, ECOCON, ECON1, ECON2, ESTAT...; thanh ghi MAC bắt đầu bằng chữ MA, thanh ghi MII bắt đầu bằng chữ MI. 2 thanh ghi MAC và MII được sử dụng như thanh ghi trung gian để truy cập đến thanh ghi vật lý physics. Và cũng giống như những IC phức-tạp-hóa của Microchip, phải select bank trước ghi đọc và ghi. Việc select bank được dựa trên việc ghi vào thanh ghi (mà ở bank nào cũng có) là ECON1.Mồm chó vó ngựa
Comment
-
Hihi, phải có xúc tác như thế này thì luồng này mới sôi nổi đc.
Riêng em thì hổng có đi xin code đâu, chỉ có điều các anh biết cách làm rồi thì có thể nói các bước cho người chưa biết j hiểu sơ sơ một tý. . Trước đây tôi củng hay lên hỏi trên room này, nhưng thấy không có nhận được sự nhiệt tình của những người đi trước. Mổi khi mấy cụ này lên room là đánh đá nhau, không có tính cộng đồng nên tôi chuyển qua mấy room bên nước ngoài rồi. Ở đó họ sẵn sàng chia sẻ tất cả mọi thứ, những phần mềm mà chỉ có họ ***** cho riếng họ. Mấy người như bác củng chẳng phải tài ba j, củng lên mạng tìm code, tìm thuật toán, sample chứ các bác phát minh ra chắc. Rồi do tính ích kỷ có sẳn của người Việt Nam nên họ chẳng cho ai bao giờ.
Tóm lại là có giúp hay là không giúp mà thôi, còn mức độ như thế nào thì tùy mổi người. Nếu em đi xin bác code hoàn chỉnh thì em cho bác chủi em. Kỹ sư hiện nay không cần coding nũa, chỉ cần thuật toán và....build.Đăng ký Dropbox có ngay 2GB lưu trữ online miễn phí:
Comment
-
Trước đây tôi củng hay lên hỏi trên room này, nhưng thấy không có nhận được sự nhiệt tình của những người đi trước. Mổi khi mấy cụ này lên room là đánh đá nhau, không có tính cộng đồng nên tôi chuyển qua mấy room bên nước ngoài rồi. Ở đó họ sẵn sàng chia sẻ tất cả mọi thứ, những phần mềm mà chỉ có họ ***** cho riếng họ. Mấy người như bác củng chẳng phải tài ba j, củng lên mạng tìm code, tìm thuật toán, sample chứ các bác phát minh ra chắc
Tôi không biết bác tham gia vào diễn đàn nào. Bản thân tôi chỉ tham gia avrfreaks.net. Và nguyên tắc của diễn đàn là: không yêu cầu source, không giúp cho những dự án mang tính thương mại, v...vvv kèm theo các yêu cầu về tôn trọng bản quyền. Và bác thử lên đó hỏi rằng: ai biết làm xyz có thể chỉ cho tôi làm như vậy với điều kiện tôi chưa biết gì, xem phản ứng của họ thế nào?
Thật ra bác cũng nên phân biệt tách bạch ra một chút. Có những người có tinh thần cầu tiến và chăm chỉ. Nhưng cũng có người chỉ biết ngồi và xin xỏ. Và ở đối tượng 1 thì chả cần dạy, người ta tự biết search google để tìm ra phương án. Còn đối tượng 2, có nói trời nói biển thì câu cuối cùng vẫn là: "có code không cho xin tham khảo".
Và chốt lại, tôi cũng muốn diễn đàn việt này khác với diễn đàn khác, không phải dịch tiếng Anh sang tiếng Việt là thành một bài. Tôi tuy chả có tí gắn bó gì với diễn đàn, nhưng luôn giới thiệu nó cho những người cần nơi bắt đầu. Thêm nữa, làm gì đi nữa thì cuối cùng vẫn phải tự vấn :"thế này có ra tiền không?". Mất thời gian cho một công việc khó có thể sinh lời là một sự lãng phí, cho dù nó hoạt động thật đấy nhưng ai sẽ mua sản phẩm của mình lại là chuyện khác.
Tôi làm uC không vì lợi nhuận hay tiền bạc. Vì thế sẽ chả có gì giúp tôi thích thú nếu chỉ là làm theo người khác. Bác nói rằng những người "như tôi" kô tự làm mà chỉ build. Thì cũng là chuyện bình thường vì mỗi người một cách nghĩ. Mình làm thế nào thì nghĩ người khác thế vậy. Âu cũng là chuyện dễ hiểu.
Mà thôi, hy vọng tôi và bác dù có nhiều khác biệt, nhưng sẽ có những bài dài đôi ba dòng, thay vì chỉ đủ 50 char. Ít ra thì người khác search google dễ tìm ra diễn đàn hơn phải không?Mồm chó vó ngựa
Comment
-
Chán các pác ghê,làm gì mà ăn nói to tát thế,chẳng phải là người Trung Quốc với các công nghệ bắt chước và ăn cắp,mà không ít các đại gia điện tử Việt Nam luôn lên mồm phê phán.Thế mà bây giờ họ đã phóng được tàu vũ trụ,đưa được người lên mặt trăng,và ngay chính cái máy tôi đang sử dụng để post bài lên diễn đàn này hình như cũng "Made in China" thì phải.
Ngay từ đầu tôi đả nói rằng "xin hướng dẫn thôi mà"
Ngày trước với tinh thần đam mê hễ làm vấn đeef gì là tôi hì hục lao vào làm mạch,lập trình cuối cùng thì cũng chạy ngon nhưng thật sụ là phải làm đi làm lại ->mất thời gian,tốn tiền(sinh viên lấy đâu ra tiền),Chính vì vậy mà bây giờ tôi muốn tham khảo kinh nghiệm của mấy pác đi trước thôi.
Nhân tiện các pác cho em hỏi,câu lệnh này trong mega88 có ý nghĩa gì nhỉ:
CLKPR=(1<<CLKPCE); // change enable
CLKPR=0; // "no pre-scaler"
mà sao trong mega128,hay 16,32 không có thanh ghi CLKPR ,có phải thay thì thiết lập thế này,trong mega 128,16,32 người ta set fuls bit.
Rất mong được giúp đỡ
Comment
-
members.home.nl/bzijlstra/software/examples/enc28j60.htm
benshobbycorner.nl/?p=57
http://members.home.nl/bzijlstra/sof...s/enc28j60.htm
@btbk244: Bạn chịu khó tìm trên internet trước các thông tin bạn cần, tôi đảm bảo sẽ tìm thấy. Gửi bạn mấy cái link tham khảo về làm ENC28J60 với AVR, dùng ngôn ngữ BASCOM-AVR, tuy nhiên bạn có thể xem cách họ làm để viết chương trình C tương ứng.
Việc điều khiển thiết bị thông qua Internet dùng ENC28J60 và PIC tôi đã làm xong từ lâu rồi, không quá khó đâu.
Chúc thành công.Ethernet-RS232, PIC Webserver, RFID Reader
CallerID, Cảnh báo BTS, ...
0988006696
linhnc308@gmail.com
http://linhnc308.blogspot.com
Comment
-
Nhân tiện các pác cho em hỏi,câu lệnh này trong mega88 có ý nghĩa gì nhỉ:
CLKPR=(1<<CLKPCE); // change enable
CLKPR=0; // "no pre-scaler"
mà sao trong mega128,hay 16,32 không có thanh ghi CLKPR ,có phải thay thì thiết lập thế này,trong mega 128,16,32 người ta set fuls bit.
2 câu lệnh trên được thực hiện để bắt đầu quá trình thay đổi prescale. Theo đó, trước khi thay đổi phải ghi 1 vào bit CLKPCE và ghi 0 vào thanh ghi CLKPR. Sau đó, trong 4 cycles tiếp theo phải ghi giá trị prescale muốn đặt vào thanh ghi CLKPR và ghi 0 vào bit CLKPCE.Mồm chó vó ngựa
Comment
-
Nguyên văn bởi btbk244 Xem bài viếtNhân tiện các pác cho em hỏi,câu lệnh này trong mega88 có ý nghĩa gì nhỉ:
CLKPR=(1<<CLKPCE); // change enable
CLKPR=0; // "no pre-scaler"
mà sao trong mega128,hay 16,32 không có thanh ghi CLKPR ,có phải thay thì thiết lập thế này,trong mega 128,16,32 người ta set fuls bit.
Rất mong được giúp đỡ
Đối với một số AVR có số chân cẳng >= 40 chân , ATMEL không thêm tính năng này nữa (tôi cũng không rõ nguyên nhân vì sao) và lúc đó mặc định phép chia tần là 1, và không phải thiết lập fusebit này.
Giải thích lệnh trên của bạn:
CLKPR=(1<<CLKPCE); // change enable
CLKPR=0; // "no pre-scaler"
Lệnh này tương đương với lệnh:
CLKPR=0x80 ; // cho phép thay đổi phép chia tần số bằng cách cho bit CLKPE = 1 và các bit còn lại = 0( xem thêm trong datasheet)
CLKPR=0; // ghi giá trị cần chia ở đây ( ở đây đã chọn phép chia = 1) (chú ý bit CLKPE phải đưa xuống mức 0)
Ví dụ chia tần số dao động bằng 8
CLKPR=0x80; //1000 0000
CLKPR=0x03; //0000 0011n
ĐT: 0986 492 489
Tham khảo:
Comment
-
[QUOTE=yankazaz;145180]
Tôi cũng định post tiếp luồng này về TCP/IP cộng với ENC. Bởi tôi cũng đang làm nó. Source của ENC đầy trên mạng, nhưng thà mất thời gian mà có chút hiểu biết vẫn hơn down&build, để rồi sau đó vỗ ngực "ta cũng đã làm TCP/IP" mà thực ra chả biết IP là cái gì.
Kiến thức cơ bản về TCP/IP có lẽ chả ai nói được trong vài bài post, bởi đơn giản là sách hướng dẫn về nó đã là cả nghìn trang. Và một khi đã biết các giao thức trong TCP/IP thì việc ghép nối với ENC chỉ là trò vặt. Tôi chỉ có thể nói rằng, trong giao thức mạng, không phải ghép nối SPI là khó, mà khó là ở các protocol như:
- ARP: Address resolution protocol
- IP: Internet Protocol
- ICMP: Internet control message protocol
- TCP: Transmission control protocol
- UDP: User datagram protocol
Và rồi muốn sử dụng lệnh ping trong windows, phải biết ping sử dụng giao thức nào, UDP hay TCP; muốn để nhận IP tự động phải biết gửi đến DNS server protocol nào (ở đây là DHCP)...
Các khung (frame, stream hay datagram) đều không khó, mà khó ở chỗ: thứ nhất là có quá nhiều khung, do đó lập trình phải chuẩn (vì vậy mà assembly rất khó sử dụng); thứ 2 đó là phải biết ứng dụng của mình giới hạn ở mức nào.
QUOTE]
Pác yankazaz kính mến pác có thể nói rõ thêm về :ARP,IP,ICMP...được không
Comment
-
Nguyên văn bởi girlyeu Xem bài viếtcác pác ơi. giúp em với. em có bài tập lớn môn vi điều khiển .dề tài : thiết kế đồng hồ đo điện áp dải 2.5V, 25V, 250V. sai số 10% .dung vi điều khiển .co pác nao biết chỉ gium em cách làm với . thanks nhiều !!!!.......
Comment
-
Cái này có vẻ rất hay.
Để thuận tiện cho ngâm cứu về cái này, thay vì mua từng linh kiện về hàn lên mạch, mình cần một module giao tiếp ENC như hình sau (là một phần trong mạch đã đưa).
Rack RJ45 + ENC + nguồn 3.3V + các thứ linh tinh. Phần chuyển đối 5V sang 3V3 ở trên module này luôn.
Các chân ra dạng rào cắm 1 hàng chân 8 pin:
+5V, GND,
CLKout (3), INT (4), SO (6), SI (7), SCK(6), CS (9) để giao tiếp với uC.
Bác nào làm được báo giá cho mình với.
Không biết có bác nào tham gia hưởng ứng không (số lượng nhiều -> giá thành hạ).
Số lượng đặt hàng: 10 bộ
Comment
Bài viết mới nhất
Collapse
-
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
hôm nay, 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
Hôm qua, 22:44 -
-
bởi yname11 E có 1 laptop bị hỏng màn hình, e tháo ra thì thấy nó có 4 lớp , lớp ngoài cùng là 1 lớp nhựa rất mỏng màu hơi đen ( chắc là 1 loại film dán), tiếp theo là 1 lớp thủy tinh bị vỡ (màu đen) , đến 1 lớp thủy tinh trắng ( lớp này có...
-
Channel: Thiết bị điện tử cá nhân
18-11-2024, 19:12 -
-
Trả lời cho Mua anten ở đâu?bởi tmcodonAnten bạn thu nguồn sóng nào vậy? Nếu xem truyền hình thì giờ k làm đc anten nữa rồi
-
Channel: Ăng ten và truyền sóng
16-11-2024, 15:34 -
-
Trả lời cho Mạch nguồn đôi dùng 7812 và 7912bởi tmcodonThank bác nhá. Tìm mãi mới thấy. Giờ vọc đã xem sao...
-
Channel: Hỗ trợ học tập
16-11-2024, 10:39 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
15-11-2024, 08:27 -
Comment