Giao tiếp giữa hai con 16f877a qua max485

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • pictd03
    Nhập môn đệ tử
    • Apr 2008
    • 8

    #1

    Giao tiếp giữa hai con 16f877a qua max485

    Mình đang làm mạch giao tiếp giữa hai con 16f877a qua max485, đã dùng thử một số sơ đồ trên mạng và các tài liệu khác nhưng vẫn không chạy.
    Mục đích là gửi một gói dữ liệu từ con này qua con kia, con kia nhận được và sẽ trả lời là nhận được và gửi một gói dữ liệu trả về.Thực tế thì gửi trực tiếp giữa hai con thì kết quả báo đúng.Nhưng khi cho giao tiếp qua max485 (để truyền đi xa) thì hầu như không chạy.Mình củng đã thay đổi nhiều loại điện trở đầu cuối của max485 cho phù hợp với tổng trở của dây dẫn nhưng vẫn không được.
    Bạn nào đã từng làm mạch này chạy rồi giúp mình với, hoặc đã từng biết qua mạch này củng được xin cho mình ý kiến, thanks!
    đang cấn gấp
  • namqn
    Trưởng lão PIC bang
    • Feb 2006
    • 3020

    #2
    Nguyên văn bởi pictd03 View Post
    Mình đang làm mạch giao tiếp giữa hai con 16f877a qua max485, đã dùng thử một số sơ đồ trên mạng và các tài liệu khác nhưng vẫn không chạy.
    Mục đích là gửi một gói dữ liệu từ con này qua con kia, con kia nhận được và sẽ trả lời là nhận được và gửi một gói dữ liệu trả về.Thực tế thì gửi trực tiếp giữa hai con thì kết quả báo đúng.Nhưng khi cho giao tiếp qua max485 (để truyền đi xa) thì hầu như không chạy.Mình củng đã thay đổi nhiều loại điện trở đầu cuối của max485 cho phù hợp với tổng trở của dây dẫn nhưng vẫn không được.
    Bạn nào đã từng làm mạch này chạy rồi giúp mình với, hoặc đã từng biết qua mạch này củng được xin cho mình ý kiến, thanks!
    đang cấn gấp
    Bạn đã hỏi ở đây, và tôi cũng đã có ý kiến về việc bổ sung thông tin:


    Bạn không đưa thêm thông tin (sơ đồ mạch) mà lại tạo ra luồng mới này, với cùng nội dung đã hỏi. Đề nghị bạn xem lại cách làm việc.

    Thân,
    Biển học mênh mông, sức người có hạn.

    Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
    http://www.picvietnam.com/forum/showthread.php?t=1263

    Comment

    • pictd03
      Nhập môn đệ tử
      • Apr 2008
      • 8

      #3
      sorry,mình không thường xuyên up bài lên các forum nên chưa rành lắm, có gì chỉ bảo mình với.Mình sẽ up sơ đồ nguyên lý lên khi về nhà(hiện tại ko có ở nhà), anh em có gì giúp đỡ.Mình chỉ mới tìm hiểu PIC chủ yếu là tự vọc.

      Comment

      • david
        Đệ tử 4 túi
        • Aug 2006
        • 81

        #4
        Giao tiếp giữa 2 con PIC theo RS485 không có vấn đề gì cả !
        Vì bản chất vẫn là giao tiếp theo RS232 :
        từ PIC1 đến MAX485_1 là RS232
        từ MAX485_1 đến MAX485_2 là RS485
        từ MAX485_2 đến PIC2 là RS232
        Bạn không cần bận tâm đến giữa 2 con MAX nó trao đổi thế nào
        Với PIC bạn xuất và nhận theo RS232 bình thường
        Chỉ có lưu ý là bạn nối 2 chân RE và DE lại để điều khiển : nhận dữ liệu thì cho chân điều khiển bằng 0 và ngược lại

        Comment

        • rongluavt7
          Nhập môn đệ tử
          • May 2009
          • 1

          #5
          Bạn nào cho mình biết Max485 ban ở đâu được không? Mình đi hỏi khắp cả chợ trời và chợ nhật tảo rồi mà chẳng có, Ai biết thì giúp mình nhé. gửi mail cho mình vào địa chỉ
          khongquannhandanvietnnam@gmail.com nhé, cám ơn nhiều.

          Comment

          • sit_alone76816
            Đệ tử 2 túi
            • Aug 2008
            • 38

            #6
            uhm Max485 thì bạn kiếm hổng thấy đâu, có thì cũng có đó, tại bạn chưa hỏi đúng chỗ thôi, tốt nhất bạn hỏi con SN75176 con này tương đương với Max485 mà.

            Mình chưa hiểu cách mắc giữa con Max485 với PIC như thế nào, mình có mắc thử, nhưng chăng thấy tín hiệu gì hết. Ai có thi share cho mình với nha. Cảm ơn nhiều !

            Comment

            • nhanh0112
              Đệ tử 4 túi
              • May 2007
              • 81

              #7
              @rongluavt7:Max485 thì ra 17a Hàn Thuyên (Hà nội). Tui vẫn mua ở đó mà.
              @sit_alone76816: Chân RO(1) nối vào TX của PIC, Chân DI(4) nối vào TX của PIC, Chân DE(3) và RE(2) nối chung với nhau và nối vào 1 PIN in/out nào đó để điều khiển truyền nhận. Khi phát thì cho chân điều khiển lên 1, khi thu thì cho về 0.
              Tham khảo:

              Comment

              • sit_alone76816
                Đệ tử 2 túi
                • Aug 2008
                • 38

                #8
                Chân thành cảm ơn bạn nhanh0112, cái này mình tìm hoài mà hổng thấy, cảm ơn bạn đã share.
                Cho mình hỏi thêm giả sử mình mắc cho con 89V51 thì cái chân DE của MAX485 mình cũng mắc vào chân R\D\ của 89V51 luôn hay là vào chân khác, mình thấy hình như là mắc vào chân INT1 của 89V51 thì phải ?

                Thứ 2 : là mình muốn mắc thêm vài con PIC nữa thì con PIC kia cũng mắc như trên hả, có cần thay đổi gì không vậy ?

                Mong được sự giúp đỡ !

                Comment

                • nhanh0112
                  Đệ tử 4 túi
                  • May 2007
                  • 81

                  #9
                  Nguyên văn bởi sit_alone76816 View Post
                  Chân thành cảm ơn bạn nhanh0112, cái này mình tìm hoài mà hổng thấy, cảm ơn bạn đã share.
                  Cho mình hỏi thêm giả sử mình mắc cho con 89V51 thì cái chân DE của MAX485 mình cũng mắc vào chân R\D\ của 89V51 luôn hay là vào chân khác, mình thấy hình như là mắc vào chân INT1 của 89V51 thì phải ?

                  Thứ 2 : là mình muốn mắc thêm vài con PIC nữa thì con PIC kia cũng mắc như trên hả, có cần thay đổi gì không vậy ?

                  Mong được sự giúp đỡ !
                  Chân DE bạn mắc vào chân In/out bất kỳ thôi (chân trên port in/out). Trường hợp bạn lắp vào chân INT là khi bạn muốn nhận sự kiện (Module 485 khác gửi đến, khi nào nhận đc dữ liệu thì mới xử lý). Còn tất cả các module mắc song song với nhau vào chân AB thôi.

                  Comment

                  • sit_alone76816
                    Đệ tử 2 túi
                    • Aug 2008
                    • 38

                    #10
                    Thế vậy chân DE mắc vào chân bất kỳ làm gì vậy bạn, nếu mắc mà không xử lý gì thì mắc làm gì, mong bạn giải thích giùm !

                    Comment

                    • nhanh0112
                      Đệ tử 4 túi
                      • May 2007
                      • 81

                      #11
                      Nguyên văn bởi sit_alone76816 View Post
                      Thế vậy chân DE mắc vào chân bất kỳ làm gì vậy bạn, nếu mắc mà không xử lý gì thì mắc làm gì, mong bạn giải thích giùm !
                      Như tui đã nói ở post #7 là: "Chân DE(3) và RE(2) nối chung với nhau và nối vào 1 PIN in/out nào đó để điều khiển truyền nhận. Khi phát thì cho chân điều khiển lên 1, khi thu thì cho về 0." RS458 chạy ở chế độ bán song công mà (half duplex - 1 thời điểm chỉ có thể hoặc là phát hoặc là nhận), nên việc chọn chế độ thu hay phát là cần thiết.
                      Tiện đây cũng xin đính chính lại cho post trên là chân này ko cần thiết phải lắp vào chân INT vì chân này là chân bị điều khiển, ngắt để bắt sự kiện chính là ngắt nối tiếp, sorry

                      Comment

                      • sit_alone76816
                        Đệ tử 2 túi
                        • Aug 2008
                        • 38

                        #12
                        Cảm ơn bạn, Vậy còn việc truyền với máy tính, với shematic ở trên mình có thể truyền qua máy tính tốt đẹp chứ phải không bạn, có cần làm gì nữa không nhỉ ?

                        Comment

                        • nhanh0112
                          Đệ tử 4 túi
                          • May 2007
                          • 81

                          #13
                          Nguyên văn bởi sit_alone76816 View Post
                          Cảm ơn bạn, Vậy còn việc truyền với máy tính, với shematic ở trên mình có thể truyền qua máy tính tốt đẹp chứ phải không bạn, có cần làm gì nữa không nhỉ ?
                          Đúng vậy, phần cứng thì chỉ cần vậy là đủ. Việc còn lại là làm việc với phần mềm thôi. Tìm thêm cho bạn cái hình dùng tranzitor để tự chuyển mạch khi phát hay nhận (giao tiếp với máy tính chỉ cần TX,RX,GND). Việc này giúp bạn tiết kiếm dây (nếu cần)

                          Như trong hình bạn có thể bỏ dây nối vào chân 12,13 của RS232 (kích điều khiển từ máy tính). Nếu không nó sẽ đc kích bởi chính chân gửi dữ liệu (chân 9).
                          Mạch đã chạy thử thực tế, chứ ko nói mò
                          Chúc thành công!

                          Comment

                          • sit_alone76816
                            Đệ tử 2 túi
                            • Aug 2008
                            • 38

                            #14
                            Nguyên văn bởi nhanh0112 View Post
                            Đúng vậy, phần cứng thì chỉ cần vậy là đủ. Việc còn lại là làm việc với phần mềm thôi. Tìm thêm cho bạn cái hình dùng tranzitor để tự chuyển mạch khi phát hay nhận (giao tiếp với máy tính chỉ cần TX,RX,GND). Việc này giúp bạn tiết kiếm dây (nếu cần)

                            Như trong hình bạn có thể bỏ dây nối vào chân 12,13 của RS232 (kích điều khiển từ máy tính). Nếu không nó sẽ đc kích bởi chính chân gửi dữ liệu (chân 9).
                            Mạch đã chạy thử thực tế, chứ ko nói mò
                            Chúc thành công!
                            Chân thành cảm ơn bạn !

                            Mà sao mình thất 2 mạch có vẻ khác nhau nhiều quá , như sau:

                            1. + Mạch dưới chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> TX của cổng COM.
                            + Mạch trên thì khác chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> RX của cổng COM
                            1 cái thì vào TX, 1 cái thì vào RX như vậy là sao ?

                            Và chân 4 của max485 cũng thế, 2 hình ngược nhau ! Bạn giải thích giùm. Hoặc bạn có thể giải thích cách truyền nhận của Max485 được không vậy ?

                            Comment

                            • nhanh0112
                              Đệ tử 4 túi
                              • May 2007
                              • 81

                              #15
                              Nguyên văn bởi sit_alone76816 View Post
                              Chân thành cảm ơn bạn !

                              Mà sao mình thất 2 mạch có vẻ khác nhau nhiều quá , như sau:

                              1. + Mạch dưới chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> TX của cổng COM.
                              + Mạch trên thì khác chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> RX của cổng COM
                              1 cái thì vào TX, 1 cái thì vào RX như vậy là sao ?

                              Và chân 4 của max485 cũng thế, 2 hình ngược nhau ! Bạn giải thích giùm. Hoặc bạn có thể giải thích cách truyền nhận của Max485 được không vậy ?
                              Hic, so sánh 2 sơ đồ thì cách nối chân la lá như nhau mà bạn (chân 4 của max485 nối vào chân 9 của max232 đó thôi).Còn cổng CN1 trên sơ đồ là cổng kết nối của module convert 232-485 này, chứ ko phải cổng COM trên PC. Việc đấu nối thế nào thì tùy thuộc vào người thiết kế thôi (đấu cáp thẳng hoặc cáp chéo).
                              Miễn sao đảm bảo: chân 8 (hoặc chân 13) nối vào TX của PC (đây là chân RX của module); và chân 7 (hoặc chân 14) nối vào RX của PC (đây là chân TX của module). Bạn có thể xem datasheet của Max232 thể thấy rõ hơn.
                              Đại để của việc truyền dữ liệu trên 485 là so sánh sự chêch lệch điện áp trên 2 dây A và B. Nhưng mình ko cần quan tâm đến phần này, chỉ cần qua tâm là đưa dữ liệu vào TX con 1, và nhận lại toàn bộ dữ liệu trên RX con 2 là đc.

                              Comment

                              Working...