[ENC28J60] Bài 1: Giới thiệu module ethernet enc28j60 – giao tiếp với ENC28J60

ENC28j60

Trong tutorial này, chúng ta sẽ làm quen với module ENC28J60 và giao tiếp với ENC28J60, module này có thể xử lý hầu hết các yêu cầu về giao thức mạng. Module kết nối trực tiếp tới hầu hết các vi điều khiển thông qua chuẩn giao tiếp SPI với tốc độ truyền/nhận lên đến 20MHz.

Theo dõi toàn bộ tutorial giao tiếp với ENC28J60 tại đây

Chuẩn bị cho chuỗi bài học giao tiếp với ENC28J60

Sau một hồi đắn đo, mình đã quyết định thực hiện toàn bộ tutorial giao tiếp với ENC28J60 trên công cụ mô phỏng Proteus do phần này hỗ trợ mô phỏng ic ENC28J60

Còn về vi điều khiển và trình dịch thì mình chọn làm việc trên chip Atmega328, trình dịch Codevision AVR bởi :

  • So với các dòng 8051, PIC, thì dòng AVR có tốc độ nhanh hơn, bộ nhớ cao hơn
  • Với STM8 thì chip này chưa hỗ trợ mô phỏng trên proteus
  • Với STM32 thì phải cài các phiên bản cao hơn mới hỗ trợ mô phỏng, tuy nhiên mô phỏng chip stm32 thì trình mô phỏng chạy rất chậm, hay đơ
  • Trình dịch AVR hỗ trợ tạo project sinh code rất tiện lợi, nó cũng hỗ trợ nhiều thư viện giúp ta có nhiều thời gian tập trung làm việc với chip ENC28J60 nhiều hơn mà không phải lọ mọ đi code từng thanh ghi trong chip avr
  • Khi mô phỏng chúng ta debug SPI, UART rất tiện lợi

Do vậy, các bạn chuẩn bị các công cụ sau để theo dõi khóa học này nhé !

  • Máy tính đã cài Winpcap
  • Phần mềm mô phỏng Proteus 8.4
  • Trình dịch CodeVision AVR

Vẽ chương trình mô phỏng

giao tiếp enc28j60

Khởi tạo project

Mở CodeVision AVR, vào File -> New, tích chọn Project -> OK

giao tiếp enc28j60

Chọn YES -> tích chọn AT90,ATtiny, ATmega,FPSLIC

Trong cửa sổ CodeWizardAVR, các bạn chọn tab Chip và chọn chip ATmega328P, chọn thạch anh tốc độ 16,000000 Mhz rồi tích vào biểu tượng răng cưa để tạo project

giao tiếp enc28j60

Phần mềm sẽ bắt ta lưu lại 1 số file, các bạn chọn vị trí lưu project với tên gì tùy các bạn ! Sau đó project sẽ được mở ra.

Xóa toàn bộ code phần mềm đã sinh cho các bạn rồi copy chỗ code mình đã khởi tạo sẵn cho các bạn vào

Ở đây mình có include thư viện <spi.h> <delay.h> đây là 2 thư viện phần mềm đã hỗ trợ sẵn cho chúng ta. Còn thư viện “uart.h” là do mình viết thêm, các bạn tải 2 file uar.huart.c về tại đây nhé !

Sau khi tải xong 2 file thư viện uart về thì các bạn bỏ nó vào cùng chỗ lưu project. Sau đó vào Project – > Configure

Click ADD và tiến hành Add file uart.c vào nhé !

giao tiếp enc28j60

Như vậy là thư viện uart đã được thêm vào project. Các bạn ấn vào icon Build để biên dịch chương trình

giao tiếp enc28j60

Sau khi biên dịch xong nhận được thông báo không lỗi , không cảnh báo là OK !

giao tiếp enc28j60

File hex sẽ được sinh ra trong thư mục exe, chạy thử code và được như này là OK !

giao tiếp enc28j60

Kết luận

Như vậy, chúng ta đã hoàn thành các bước chuẩn bị cho hành trình phá đảo module enc28j60, hành trình phía trước sẽ rất vất vả và dài hơi, các bạn hãy chú ý theo dõi từng bài một nhé !

Các bạn có thể tải project mình đã chuẩn bị sẵn tại đây !

Muốn học thì nhất định phải có tài liệu:

Bài tiếp theo trong chuỗi bài học giao tiếp với ENC28J60

 

Từ tác giả:

Nếu có bất kì thắc mắc nào trong bài viết, vui lòng để lại comment dưới mỗi bài ! Mình sẽ không trả lời thắc mắc của các bạn ở facebook hay email !

Nếu trong phần code bạn nhìn thấy nhưng thứ kiểu như &amp; thì đó là lỗi hiển thị, cụ thể 3 kí tự < > & bị biến đổi thành như thế
&amp; là &
&lt;  là <
&gt; là >

Giới thiệu Đào Nguyện 80 bài viết
DIY,chế cháo, viết blog chia sẽ kiến thức về lập trình,điện tử - IoT. Rất mong được giao lưu, kết bạn với các bạn cùng đam mê. Địa chỉ Facebook: https://www.facebook.com/nguyendao207

2 bình luận

Đã đóng bình luận.