Thông báo

Collapse
No announcement yet.

USART giữa 2 atmega

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

  • USART giữa 2 atmega

    Trong USART có cho phép truyền giữa 2avr qua chân RX va TX, có bác nào làm chưa vậy?
    có thể cho mình lời khuyên với, mình khai báo hoài mà con slaver ko nhận được.

  • #2
    Nguyên văn bởi vud2 Xem bài viết
    Trong USART có cho phép truyền giữa 2avr qua chân RX va TX, có bác nào làm chưa vậy?
    có thể cho mình lời khuyên với, mình khai báo hoài mà con slaver ko nhận được.
    Bạn có thể truyền nhiều AVR với nhau thông qua cổng UART được. Lưu ý chân TXD của AVR này phải đấu vào chân RXD của AVR kia và ngược lại.
    Nếu nhiều con( >2 con) lúc đó thiết lập 1 Master và còn lại là các Slave. Các Slave đấu chân TXD và RXD song song với nhau, sau đó mới đấu chéo chân vào con Master. Dùng ngắt nhận để nhận byte dữ liệu bình thường.
    n
    ĐT: 0986 492 489

    Tham khảo:

    Comment


    • #3
      Để giao tiếp các MCU với nhau người ta dùng chuẩn I2C, dùng các chân SDA, SCL và Codevison có hỗ trợ cho chúng ta rồi. Chúng ta sẽ dùng các chân RX, TX cho mục đích giao tiếp khác, với PC chẳng hạn.
      Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
      Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

      Comment


      • #4
        Mình đang định làm mạch dùng 1 con mega8 và 1 con tiny2313, để cả 2 port ISP ra để nạp thì choáng chỗ quá, dự tính gom lại thành 1 port lập trình chung vừa kết nối luôn:
        VCC--VCC-->
        GND--GND-->
        MOSI--MOSI-->
        MISO--MISO-->
        RESET 1-->
        RESET 2-->


        Test hoài vẫn chưa chạy được. Có lẽ phải dùng UART hay I2C thôi.
        Đẹp từng kilomét

        Comment


        • #5
          Nguyên văn bởi Kilodeth Xem bài viết
          Mình đang định làm mạch dùng 1 con mega8 và 1 con tiny2313, để cả 2 port ISP ra để nạp thì choáng chỗ quá, dự tính gom lại thành 1 port lập trình chung vừa kết nối luôn:
          VCC--VCC-->
          GND--GND-->
          MOSI--MOSI-->
          MISO--MISO-->
          RESET 1-->
          RESET 2-->


          Test hoài vẫn chưa chạy được. Có lẽ phải dùng UART hay I2C thôi.
          Trong trường hợp này bạn dùng TXD của AVR này nối vào RXD của AVR kia và ngược lại (đấu chéo). Truyền nhận bình thường và dễ dàng không phải lo nghĩ về phần cứng ( chú ý với khoảng cách <1m bạn có thể nối trực tiếp không cần thông qua MAX232). Chúc thành công.
          n
          ĐT: 0986 492 489

          Tham khảo:

          Comment


          • #6
            Nguyên văn bởi minhhieu Xem bài viết
            Bạn có thể truyền nhiều AVR với nhau thông qua cổng UART được. Lưu ý chân TXD của AVR này phải đấu vào chân RXD của AVR kia và ngược lại.
            Nếu nhiều con( >2 con) lúc đó thiết lập 1 Master và còn lại là các Slave. Các Slave đấu chân TXD và RXD song song với nhau, sau đó mới đấu chéo chân vào con Master. Dùng ngắt nhận để nhận byte dữ liệu bình thường.
            Mình cũng làm như vậy, nhưng ko được. Mình làm như trong datasheet set bit MPCM trong USCRA con slaver nhưng sao nó không nhận dữ liệu từ con master. Ai làm rồi cho mình ý kiến với. Bình thường ít dùng chân này để giao tiếp 2 vdk nhưng nó đã có thì mình thử xem sao.

            Comment


            • #7
              Cũng không cần thiết khai báo slave và master. Cứ đấu chéo chân như các bác đã nói ở trên. Mình nghĩ chắc là do chương trình của bạn có vấn đề. Bạn port lên mọi người sẽ góp ý.

              Comment


              • #8
                Mình cũng đang làm truyền nhận giữa 2 con Atmega,truyền qua RS485 nhưng mà chỉ dc 1 chiều,cứ đổi chiều là nằm im,có ai giúp với...hic,mình dùng codevision
                Thực hiện đơn giản,truyền 1 mảng đi,sau đó nhận lại.Trong 1 thời điểm chỉ 1 con truyền,1 con nhận

                Comment


                • #9
                  - Bất kể khi truyền hay nhận, bạn nên cho phép cả hai hướng luôn, set một lần và đừng đụng tới RXEN và TXEN nữa
                  - Thử tách ra và nối từng modul với máy tính thử, trừ phi bạn cài đặt sai, hiếm khi nào thu được mà không phát được lắm
                  Đẹp từng kilomét

                  Comment


                  • #10
                    IC chuyển đổi SN75176 hoặc Max485 có cặp chân cho phép chuyển đổi dữ liệu theo hướng truyền hoặc nhận. Thường cặp chân này được nối chung đến một chân của VDK để điều khiển hướng. Khi truyền thì cặp chân này được đưa lên mức cao. nhận thì mức thấp.
                    - Đối với Master: Khi cần truyền dữ liệu Xuống các Slave.
                    Đưa 2 chân này lên mức cao---> Đẩy hết dữ liệu ra ngoài--->(.....)---> Đưa 2 chân này xuống mức thấp--->đợi nhận lệnh từ Slave gửi về.
                    - Đối với Slave: Đưa 2 chân này xuống mức thấp---> Nhận được dữ liệu---> xử lý dữ liệu(nếu đúng là gửi cho nó)--->Đưa 2 chân này lên mức cao---> đẩy hết dữ liệu cần thiết về cho Master--->(.....)--->Đưa 2 chân này xuống mức thấp để có thể nhận được dữ liệu tiếp theo.
                    - Trong dấu ngoặc nên để một thời gian trễ chừng 2ms để dữ liệu được đẩy hết rồi mới chuyển IC sang trạng thái kế tiếp. Cái này có thể lý giải là do thời gian chuyển đổi dữ liệu của IC chậm hơn so với thời gian xử lý của VDK.
                    - Cái này bạn có thể dùng proteus để kiểm tra lại.

                    Comment


                    • #11
                      Mình cũng có thử bằng protues rồi,nó ko nhận được,có để trễ rồi.Mang nạp thử vào Kit thì chỉ đc 1 chiều...>_<...Cái này chắc do code,mới dùng codevision nên vẫn chưa hiểu lắm
                      Bạn nào làm đc rồi cho mình hỏi 1 chút,nói qua yahoo cho được nhiều,yahoo:vchau161003
                      Bạn hungnp làm đc chưa vậy,cho mình xin yahoo đi,thanks

                      Comment


                      • #12
                        Bạn nên post code lên cho mọi người cùng bình luận, nói thôi thì hơi khó hiểu.

                        Comment


                        • #13
                          Bạn gửi Code vào hungnp82@gmail.com mình sẽ kiểm tra dùm bạn. Gửi kèm cả file proteus.

                          Comment


                          • #14
                            Làm cách nào có thể ghi dư liệu từ máy tính vào Atmega qua cổng COM và chỉ có RX,TX,GND.

                            Ai giúp tui với. thấy có người ghi dữ liệu như vậy rồi nên Dũng hỏi, Lạ quá.

                            Comment


                            • #15
                              Nguyên văn bởi vandungevn Xem bài viết
                              Làm cách nào có thể ghi dư liệu từ máy tính vào Atmega qua cổng COM và chỉ có RX,TX,GND.

                              Ai giúp tui với. thấy có người ghi dữ liệu như vậy rồi nên Dũng hỏi, Lạ quá.
                              Dũng ah. Em nói rõ hơn đi. Ghi dữ liệu tức là như thế nào? dữ liệu đưa vào eeprom nội hay là nạp phần mềm vào flash của AVR.....???????????
                              n
                              ĐT: 0986 492 489

                              Tham khảo:

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X