Thông báo

Collapse
No announcement yet.

AVR connect to PC via USB

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

  • AVR connect to PC via USB

    Em đang muốn làm giao tiếp giữa AVR và PC thông qua USB (AVR thu thap thong tin va gui len PC tong qua USB, và PC cung gui thong tin xuong VDK). Em đã làm với RS232 rồi ,do đó để đơn giản em muốn giao tiếp USB nhờ FT232. Em chưa từng làm cái này bao giờ, mong mọi người chỉ giùm với :
    -Sơ đồ nguyên lý
    -PC có cần fair cài driver gì để nó nhận USB không
    -Phânmeemf trên PC em viết bằng VB, có khác biệt nhiều hơn khi giao tiếp với RS232 ko ?
    Mong mọi người chỉ giáo !! Thanks all!
    |

  • #2
    Nguyên văn bởi nguago Xem bài viết
    Em đang muốn làm giao tiếp giữa AVR và PC thông qua USB (AVR thu thap thong tin va gui len PC tong qua USB, và PC cung gui thong tin xuong VDK). Em đã làm với RS232 rồi ,do đó để đơn giản em muốn giao tiếp USB nhờ FT232. Em chưa từng làm cái này bao giờ, mong mọi người chỉ giùm với :
    -Sơ đồ nguyên lý
    -PC có cần fair cài driver gì để nó nhận USB không
    -Phânmeemf trên PC em viết bằng VB, có khác biệt nhiều hơn khi giao tiếp với RS232 ko ?
    Mong mọi người chỉ giáo !! Thanks all!
    Nếu dùng dạng RS232 --> USB mình nghĩ ko khó lắm, vì nó chỉ là mạch chuyển đổi serial --> USB thôi. Sơ đồ nguyên lý bạn tham khảo datasheet của chip FT232. Ngoài ra có thể dùng low speed RS232-USB sử dụng Mega8 để làm mạch, cũng khá đơn giản với một vài con trở, cái này bạn cứ lên mạng search là sẽ thấy.

    Tuy nhiên khi lập trình với VB dùng cách này sẽ gặp 1 số trở ngại, mình ko phải là dân điện tử chính gốc nên mình chưa giải thích đc, nếu có thể mong ai đó trong diễn đàn giải thích hộ mình:
    - Chip FT232 mình chưa thử với VB để nhận tín hiệu
    - Dây chuyển đổi RS232-USB ngoài thị trường hay dùng low speed RS232-USB giao tiếp với VB đều gặp hiện tượng nhận sai tín hiệu:
    VD: truyền liên tục đoạn nội dung: "200A 100B" thì VB chỉ nhận được nội dung "B" hoặc có khi "100B", rất ít khi VB nhận được đủ cả chuỗi.
    Mình có sử dụng VB .Net 2008 cũng gặp hiện tượng tương tự, sau một số cố gắng thì cũng có kết quả khả quan hơn, tuy nhiên nếu giữa 2 lần truyền tín hiệu nhỏ hơn 100ms thì sẽ gặp lỗi. (mặc dù dùng Terminal thì nhận đủ hết tín hiệu)
    Do đó bạn nên cân nhắc phương thức truyền nhận khi làm với AVR-USB-PC.

    Comment


    • #3
      Mong mọi người hướng dẫn cụ thể cho e với, e amater lắm.
      |

      Comment


      • #4
        Tốt nhất bạn nên dùng FT232, ổn định, tốc độ cao, bạn lên trang http://www.alldatasheet.com tìm datasheet của nó, có hướng dẫn rất chi tiết, bảo đảm ráp chạy ngay. Nếu bạn ko muốn làm thêm mạch giao tiếp USB-RS232 bằng con FT232 này thì bạn mua luôn sợi dây chuyển đổi hoặc các mạch chuyển đổi người ta bán sẵn dùng con PL2303( chừng 23-30 ngàn thôi, con FT232 70 ngàn).
        Về phần giao tiếp với máy tính dùng VB, viết tương tự như là giao tiếp với RS232 thông thường. Chú ý : từ VXL gửi tín hiệu vào PC thì có thể gửi cả một chuỗi, nhưng trường hợp ngược lại khó thự hiện do tốc độ xử lý của 2 bên là 1 trời 1 vực, trước khi gửi từ PC ra VXL, bạn cần xử lý tách chuỗi ra thành từng ký tự riêng biệt, sau đó gửi từng ký tự đó. Để kết thúc chuỗi cần gửi từ PC, bạn gửi ra 1 ký tự nào đó không dùng tới, chẳng hạn ".,:;[]\..." để VXL biết đã hoàn tất gửi chuỗi. Nếu bạn gửi từ PC một chuỗi dài thì thường ở VXL chỉ nhận được 1 ký tự cuối.
        Hướng dẫn cụ thể cho AVR tại đây :
        Hãy nhấn vào nút "Cảm ơn" để em biết rằng em đã giúp được một ai đó.

        Comment


        • #5
          Em hơi băn khoăn ở khoản lập trình VB cho máy tính. Bình thường nếu làm RS232 ta có MSCOMM.dll thì phải, nó có sẵn các hàm rồi, còn đối với USB thì mình phải dùng cái ji ah ?
          Mọi người có thể chỉ cho e đc ko, có ví dụ minh họa thì tốt quá..
          Thanks all!
          |

          Comment


          • #6
            Nguyên văn bởi nguago Xem bài viết
            Em hơi băn khoăn ở khoản lập trình VB cho máy tính. Bình thường nếu làm RS232 ta có MSCOMM.dll thì phải, nó có sẵn các hàm rồi, còn đối với USB thì mình phải dùng cái ji ah ?
            Mọi người có thể chỉ cho e đc ko, có ví dụ minh họa thì tốt quá..
            Thanks all!
            Mình đã nói rồi mà, nếu dùng USB-RS232 thì viết trên VB như là giao tiếp COM thôi, vẫn dùng MSComm1.output, input... không khác gì hết, chỉ khác là số thứ thự cổng COM ko phải là COM1 nữa mà là COMx nào đó, khi cắm mạch chuyển đổi vào USB, cài driver, vào phần Manage để xem nó là COM mấy thôi.
            Hướng dẫn cụ thể cho AVR tại đây :
            Hãy nhấn vào nút "Cảm ơn" để em biết rằng em đã giúp được một ai đó.

            Comment


            • #7
              sơ đồ khối mạch giao tiếp của e tạm thời như file đính kèm.
              Như vậy là chỗ kết nối với PC là cổng USB chứ không phải là cổng COM nữa đúng không ah. Do đó trên VB có thể còn dùng được MSCOMM truy cập vào cổng USB đc ko ? tất nhiên là không đc, bây giờ giải quyết vấn đề này ra sao ah ? Bác nào biết thì nói chi tiết hộ em với nhé, e gà lắm.
              Attached Files
              |

              Comment


              • #8
                Nguyên văn bởi nguago Xem bài viết
                sơ đồ khối mạch giao tiếp của e tạm thời như file đính kèm.
                Như vậy là chỗ kết nối với PC là cổng USB chứ không phải là cổng COM nữa đúng không ah. Do đó trên VB có thể còn dùng được MSCOMM truy cập vào cổng USB đc ko ? tất nhiên là không đc, bây giờ giải quyết vấn đề này ra sao ah ? Bác nào biết thì nói chi tiết hộ em với nhé, e gà lắm.
                Đúng mà ko đúng.
                Đúng là bạn cắm dây kết nối vào cổng USB của PC.
                Ko đúng là vì khi bạn sử dụng dạng USB-RS232 như FT232 hay bất kì IC nào khác có chức năng tương tự, máy tính sẽ nhận ra USB của bạn là một cổng COM ảo (Virtual COM), lúc này mặc dù tín hiệu truyền nhận qua cổng USB nhưng các thao tác khác thì vẫn thực hiện như với một cổng COM bình thường.

                Do đó khi sử dụng USB-RS232 bạn vẫn có thể sử dụng thư viện MSCOMM như sử dụng với cổng COM thật của máy tính.
                Theo mình tốt nhất là bạn nên làm mạch thật, chịu khó đọc Datasheet, thử thực tế, có gì ko hiểu thì post lên dd. Ko bắt tay vào làm ko biết đc mình sai chỗ nào đâu.
                Chúc bạn nhanh chóng nắm bắt đc vấn đề.

                Comment


                • #9
                  Sao cứ làm com ảo mãi thế, cố gắng làm nghiên cứu thẳng usb luôn đi, thế giới người ta sắp lên usb3.0 rồi kìa

                  Comment


                  • #10
                    Nguyên văn bởi catsini Xem bài viết
                    Sao cứ làm com ảo mãi thế, cố gắng làm nghiên cứu thẳng usb luôn đi, thế giới người ta sắp lên usb3.0 rồi kìa
                    Bác thông cảm, mới đầu học ai chả học COM, mà khổ mấy con main đời mới bây giờ nó làm gì có cổng COM, chưa kể các em sv giờ sang lắm, đi lên giảng đg toàn laptop .
                    Thực ra mình thấy mấy cái mày VN mình nhập về vẫn có máy dùng cổng COM thôi, mấy con máy CN mình thấy vẫn COM ầm ầm, chưa kể HDH Win98 nữa . Nói chung là cái gì dùng đc hay và hiệu quả thì ta vẫn nên dùng, chứ nói thật USB mình cũng chơi rồi, nhg nó mắc cái quả bản quyền + phức tạp, đau đầu lắm nên trong các ứng dụng mình vẫn dùng COM mỗi tội COM ảo

                    Comment


                    • #11
                      Thanks mọi người nhé !
                      Bây giờ e đã hiểu cách làm hơn rồi. Tiện thể mọi người cho e hỏi : ở HN chỗ nào bán chip FT232 ah?
                      Thanks all!
                      |

                      Comment


                      • #12
                        ở đây có bác nào sài visual 2010 ko? thấy nó bắt mắt hơn nhưng mỗi tội chả biết dùng thế nào cho phải, bác nào biết chỉ em với, hay cho em xin tài liệu cũng đc, thank các bác!

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X