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.

Thế này người ta gọi là ăn không ngồi rỗi, down&build đấy bác ạ. Mà tôi thấy chả ở đâu mà động một tí là người ta xin code. Thường thì người ta chỉ đưa lên những đoạn code và các lỗi gặp phải để hỏi, hoặc xin góp ý cho thiết kế mà thôi.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
-
Bác nói thế là sai rồi!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
-
Trong atmega88 có thanh ghi clock prescale, mục đích là để giảm tần số clock, giúp giảm bớt tần số hệ thống, giảm tiêu hao năng lượng khi mức độ xử lý không yêu cầu cao. Đối với các uC khác không có thanh ghi này, uC phải được setting ở một tần số biết trước dựa vào fulse bit. Việc set bit như thế nào thì tùy từng uC, bạn nên xem trong datasheet để biết giá trị. Tôi dùng STK500, nên không quan tâm lắm đến giá trị các bit mà chỉ cần set ở mode nào thì nó sẽ đẩy xuống giá trị đó.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
-
Đây chính là lệnh chia tần số dao động để lấy tần số dao động cho hệ thống. Ví dụ nếu dùng thạch anh 8M nối vào 2 chân XTAL1 và XTAL2. và phép chia CLKPR = 1 tức là chia 2, khi đó 8M/2 = 4M là tần số thực mà CHIP sử dụng chứ không phải là 8M nữa.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
-
trớ!sao bạn không mở luồng khác mà vào đây hỏi,như thế này thì ít người biết đến câu hỏi của bạn lắm.Mình cũng đả làm về cái này rồi,vài hôm nữa rãnh rỗi sẽ giúp bạn.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 mèomướpDạ chú rủ cô ấy đi ăn uống, cà phê, xem phim...nhớ nắm tay, rồi thì ôm hôn,...trong vòng 1 tuần mà ko nắm tay được, 1 tháng mà ko ôm đc thì dẹp ngay và luôn ạ. Nhắn tin, gọi điện ít thôi ạ, trả lời quá lâu hoặc ko trả lời cũng dẹp ngay ạ. Nên thể hiện chú là người có điều kiện nữa ạ...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 18:50 -
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
07-02-2026, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -

Comment