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
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 08:56 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
-
Trả lời cho Hỏi cách điều chế xungbởi nguyendinhvanCó gì mà khó ?
Răn cưa vuông đây
...-
Channel: Kỹ thuật điện tử tương tự
15-12-2024, 23:36 -
-
Trả lời cho hỏi về tụ điệnbởi ndp62Chữ " VENT" không phải là tên hãng sx tụ đâu ,vó thế là 1 ký hiệu liên quan tụ lowesr ?
-
Channel: Điện thanh
15-12-2024, 18:24 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi bqvietTrừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 22:02 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi namlangnhoE thử 3 cái nguồn nó đều giống nhau. Nên e làm tiếp địa luôn.
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 19:58 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi mèomướpDạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 18:51 -
-
bởi namlangnhoXin chào mọi người. E có sử dụng 1 cục nguồn tổ ong 12v-30A chạy đèn led xe trà sữa. Mà thợ thi công bị rò điện nên điện rò ra khung xe. E dùng đồng hồ đo điện ở khung xe và cả output thì thấy có dòng điện xoay chiều hơn 100v. Nên chạm...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 00:12 -
-
bởi Manh.n.trCác bác cho em hỏi cách điều chế xung răng cưa sang xung vuông với ạ. Em đang thấy khó ạ...
-
Channel: Kỹ thuật điện tử tương tự
13-12-2024, 20:46 -
-
Trả lời cho hỏi về thiết kế mạch tuần tự trên proteusbởi Hatruong1309
-
Channel: Hỗ trợ học tập
12-12-2024, 00:33 -
Comment