Thông báo

Collapse
No announcement yet.

giao tiếp ENC28J60 với mega

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giao tiếp ENC28J60 với mega

    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.

  • #2
    mong sao có ngày ra được thế nàyClick image for larger version

Name:	5-3.jpg
Views:	1
Size:	44.0 KB
ID:	1334444

    Comment


    • #3
      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


      • #4
        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

        Comment


        • #5
          Nguyên văn bởi dinhchithanh
          Hì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
          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.

          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


          • #6
            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


            • #7
              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
              Bác nói thế là sai rồi!
              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


              • #8
                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


                • #9
                  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


                  • #10
                    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.
                    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ị đó.

                    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


                    • #11
                      Nguyên văn bởi btbk244 Xem bài viết
                      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 đỡ
                      Đâ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.

                      Đố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 0011
                      n
                      ĐT: 0986 492 489

                      Tham khảo:

                      Comment


                      • #12
                        [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


                        • #13
                          cá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


                          • #14
                            Nguyên văn bởi girlyeu Xem bài viết
                            cá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 !!!!.......
                            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.

                            Comment


                            • #15
                              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ộ
                              Attached Files

                              Comment

                              Về tác giả

                              Collapse

                              btbk244 Tìm hiểu thêm về btbk244

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X