Thông báo

Collapse
No announcement yet.

Dùng chung 2 thiết bị bằng 1 đường UART

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

  • Dùng chung 2 thiết bị bằng 1 đường UART

    Xin chào các bác, em hiện tại đang phát triển 1 kit GSM PIC mua ở Hlab và hiện tại đang bị mắc ở 1 chỗ. đề tài của em là GSM sẽ truyền dữ liệu qua con PIC 16F887 trong KIt và con PIC này lại truyền sang 1 Module PIC 18F khác. Cái khó ở đây là em tra datasheet thì con 16f887 chỉ có 1 đường UART và nó đã nối tiếp với con Sim GSM và nối tiếp với chân RC6 RC7 (2 chân TX và RX ấy ạ). vậy nếu em dùng 2 chân RC6 và RC7 để nối với con PIC kia thì có bị ảnh hưởng tới con GSM không. Ngoài ra có cách nào mình lập trình 2 thiết bị chung 1 đường uart không ạ, ví dụ như định địa chỉ như bus ^^ em cũng không rành lắm nên mong anh em chỉ dẫn. xin cảm ơn anh em

  • #2
    Nguyên văn bởi akin01 Xem bài viết
    Xin chào các bác, em hiện tại đang phát triển 1 kit GSM PIC mua ở Hlab và hiện tại đang bị mắc ở 1 chỗ. đề tài của em là GSM sẽ truyền dữ liệu qua con PIC 16F887 trong KIt và con PIC này lại truyền sang 1 Module PIC 18F khác. Cái khó ở đây là em tra datasheet thì con 16f887 chỉ có 1 đường UART và nó đã nối tiếp với con Sim GSM và nối tiếp với chân RC6 RC7 (2 chân TX và RX ấy ạ). vậy nếu em dùng 2 chân RC6 và RC7 để nối với con PIC kia thì có bị ảnh hưởng tới con GSM không. Ngoài ra có cách nào mình lập trình 2 thiết bị chung 1 đường uart không ạ, ví dụ như định địa chỉ như bus ^^ em cũng không rành lắm nên mong anh em chỉ dẫn. xin cảm ơn anh em
    Cổng UART của vi điều khiển chỉ có thể truyền trực tiếp 1-1 thôi,đó là cổng truyền thông chứ không phải cổng giao tiếp bus chung đâu.Trường hợp của bạn có 2 cách giải quyết:
    - Dùng 1 chip PIC khác có 2 cổng UART khác nhau (mình nhớ là có đấy)
    - Nếu không thì truyền thông với PIC 18 kia qua cách khác, dùng giao thức I2C chẳng hạn,code cũng rất sẵn mà
    Chúc thành công.

    Comment


    • #3
      vấn đề là mấy cái này được đóng gói thành module cứng hết nên cũng khó thiết kế. ^^ để em tra lại tiếp, cảm ơn bác nhiều

      Comment


      • #4
        Nguyên văn bởi akin01 Xem bài viết
        Xin chào các bác, em hiện tại đang phát triển 1 kit GSM PIC mua ở Hlab và hiện tại đang bị mắc ở 1 chỗ. đề tài của em là GSM sẽ truyền dữ liệu qua con PIC 16F887 trong KIt và con PIC này lại truyền sang 1 Module PIC 18F khác. Cái khó ở đây là em tra datasheet thì con 16f887 chỉ có 1 đường UART và nó đã nối tiếp với con Sim GSM và nối tiếp với chân RC6 RC7 (2 chân TX và RX ấy ạ). vậy nếu em dùng 2 chân RC6 và RC7 để nối với con PIC kia thì có bị ảnh hưởng tới con GSM không. Ngoài ra có cách nào mình lập trình 2 thiết bị chung 1 đường uart không ạ, ví dụ như định địa chỉ như bus ^^ em cũng không rành lắm nên mong anh em chỉ dẫn. xin cảm ơn anh em
        Phải truyền bất đồng bộ mới được. Dữ liệu từ GSM truyền đến chân RxD của PIC16F887, còn chân TxD của PIC16F887 sẽ truyền dữ liệu đến PIC18.

        Comment


        • #5
          Dùng 1 UART mềm , một UART cứng ... tôi làm 5 UART trên con PIC 16F887 cũng được !

          --- Hoặc dùng hoàn toàn bằng UART mềm ( chân nào làm UART cũng được hết ) ! ...

          UART cứng thì tốc độ nhanh ... nhưng bị phụ thuộc ... UART mềm dùng thạch anh 4 Mhz chạy 9600 baud cũng chạy phà phà ... đủ dùng ... cần tốc độ cao hơn thì dùng thạch anh cao hơn : 18.432 Mhz chẳng hạn !

          --- mà giao tiếp giữa 2 IC thì thiếu gì cách giao tiếp ... cứ gì phải UART ???

          vẫn có cách thiết kế 1 UART ... nối vào 2 chỗ ( cùng chân cẳng ) ... nhưng mình không muốn bàn sâu ... nó khó với bạn !
          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

          Comment


          • #6
            Nguyên văn bởi queduong Xem bài viết
            Dùng 1 UART mềm , một UART cứng ... tôi làm 5 UART trên con PIC 16F887 cũng được !

            --- Hoặc dùng hoàn toàn bằng UART mềm ( chân nào làm UART cũng được hết ) ! ...

            UART cứng thì tốc độ nhanh ... nhưng bị phụ thuộc ... UART mềm dùng thạch anh 4 Mhz chạy 9600 baud cũng chạy phà phà ... đủ dùng ... cần tốc độ cao hơn thì dùng thạch anh cao hơn : 18.432 Mhz chẳng hạn !

            --- mà giao tiếp giữa 2 IC thì thiếu gì cách giao tiếp ... cứ gì phải UART ???

            vẫn có cách thiết kế 1 UART ... nối vào 2 chỗ ( cùng chân cẳng ) ... nhưng mình không muốn bàn sâu ... nó khó với bạn !
            Anh cho em hỏi là em đang muốn thiết lập UART mềm trên PIC16F630, thì ý tưởng để thiết lập 1 UART mềm là thế nào ạ? Các thông số như baudrate , frame, parity... phải thiết lập ra sao ạ?
            Em định dùng thạch anh 20M có được không ạ?
            Cám ơn anh!

            Comment


            • #7
              Nguyên văn bởi nqtpro Xem bài viết
              Anh cho em hỏi là em đang muốn thiết lập UART mềm trên PIC16F630, thì ý tưởng để thiết lập 1 UART mềm là thế nào ạ? Các thông số như baudrate , frame, parity... phải thiết lập ra sao ạ?
              Em định dùng thạch anh 20M có được không ạ?
              Cám ơn anh!
              Cái này cũng hay đấy. Mình chưa làm bao giờ. Khống bít ý tưởng thế nàu có đúng không.
              Phần truyền
              - Với tốc độ baudrate : Dùng 1 timer tạo ngắt có chu kỳ tương ứng với thời gian truyền 1 bit tương ứng với tốc độ cần thiết
              - Frame : Dùng 1 biến 2 byte để lưu dữ liệu, nhưng thực tế không dùng hết 16 bit mà tùy theo start bit + data bit + parity bit + stop bit

              Quá trình truyền : cứ 1 lần ngắt timer xảy ra ta lại thay đổi trạng thái chân TX(do ta quy định) tương ứng với bit 0 hoặc bit 0 trong data cần truyền

              Giải pháp điện tử của bạn

              Comment


              • #8
                thật ra tui từng làm 1 con master, 5 con slave dùng uart, truyền tốt chán, khác là mình tự set cho nó cái địa chỉ(mật mã) thôi, tựa như I2C, không co gì khó cả, còn uart mềm cũng không có gì khó, dễ hơn I2C mềm nhiều, tóm lại, 1 MASTER 2 SLAVE chạy tốt với uart
                TamPhieuLuuKy@yahoo.com
                092 2838 712 --->>

                Comment


                • #9
                  Nguyên văn bởi superhieu1 Xem bài viết
                  thật ra tui từng làm 1 con master, 5 con slave dùng uart, truyền tốt chán, khác là mình tự set cho nó cái địa chỉ(mật mã) thôi, tựa như I2C, không co gì khó cả, còn uart mềm cũng không có gì khó, dễ hơn I2C mềm nhiều, tóm lại, 1 MASTER 2 SLAVE chạy tốt với uart
                  Mình cũng nghĩ như bạn. Nhưng đấy là các master và slave mình tự lập trình. Có thể tự quy ước giao thức. Còn trường hợp bạn akin01 đưa ra thì phần giao tiếp với modul gsm lại tuân theo tập lệnh AT, ta khó định nghĩa giao thức truyền phù hợp. Còn chiều còn lại với pic18 thì không có gì phải bàn rồi.
                  Với uart mềm theo mình phần truyền không khó nhưng phần nhận sẽ khó khăn hơn.

                  Giải pháp điện tử của bạn

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X