giao tiếp pc và pic qua usb

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • sphinx
    Đệ tử 3 túi
    • Jul 2005
    • 47

    #16
    Chết! Sao em vẫn nạp được con 4550 bằng cái mạch PGC2 nhỉ! Em dùng Winpic bản mới nhất! Các bác kiểm chứng cho cái! (hay là nạp được nhưng không chạy, em chưa thử chạy vì chưa làm phần cứng)
    PNLab Technologies
    Chuyên cung cấp mạch nạp, KIT cho ARM, PIC, AVR, 8051...
    Các loại IC, vi điều khiển, phụ kiện điện tử...
    www.pnlabvn.com - business@pnlabvn.com
    04.6285.2980
    PICKIT2 Programmer!!!

    Comment

    • phamthaihoa
      Đệ tử 3 túi
      • Jun 2005
      • 56

      #17
      Nguyên văn bởi bien_van_khat
      http://www.piccoder.co.uk/content/view/42/26/

      Một đề tài khá đơn giản dựa trên firmware có sẵn của mc. Cần có .NET framework 1.1 để chạy phần mềm. Nếu muốn sử dụng với VB6 thì cần phải biên dịch lại file MPUSBAPI.dll
      Có project hoàn toàn tương tự ở trang sixca, điều khiển động cơ bước, đọc AD. Muốn dùng với VB6 thì cần định nghĩa một số kiểu dữ liệu mới tương thích với kiểu dữ liệu của C++, tui đã làm kiểu này với Delphi.

      http://www.microchip.com/stellent/id...&part=DM163025
      các công cụ phát triển USB 2.0 full speed của mc.
      Bác giới thiệu cái này bằng thừa, bọn em nghèo lấy đâu tiền mua cái ấy
      Mà chỉ nhìn là làm được cái tương đương


      Một proj về USB firmware cho PIC18F2455 của tiến sĩ Bradley A. Minch,. Đây có thể coi là firmware nhỏ nhất trong tất cả các USB firmware cho dòng PIC USB 2.0
      Cái này là dùng PIC USB 2.0 để làm USB 1.1
      Sở dĩ nó nhỏ là tác giả phát triển theo kiểu ngắt, khá giống với firmware Microchip cung cấp viết bằng HTPIC viết cho dòng 16C745.

      Firmware USB 2.0 lớn bởi vì nó phát triển theo kiểu hỏi vòng.
      Cái firmware của em phát triển theo kiểu hỏi vòng = HTPIC sau khi dịch ra là 2.5K, có to không nhỉ ?

      À quên muốn nạp được bọn PIC USB các bác phải kiếm cái mạch ICD2
      PGC2 ko chơi được, còn GTP USB thì ko biết, mấy bác kiểm tra dùm .
      PG2C nạp tốt, GTP-USB cũng tốt, ICD2 thì càng tốt nữa

      Comment

      • phamthaihoa
        Đệ tử 3 túi
        • Jun 2005
        • 56

        #18
        Nguyên văn bởi bien_van_khat
        Tiện tay đang có hứng viết luôn. Làm sao PC biết được thiết bị USB nào ứng với cái driver nào?
        Khi bạn cắm thiết bị vào PC, 1 quá trình phức tạp diễn ra gọi là enumeration, mục đích là nhận dạng thiết bị. Sau quá trình này host có được vendor ID và product ID cùng với class ID của thiết bị. Hai giá trị VID và PID xác định duy nhất 1 dòng thiết bị vì vendor ID là duy nhất ứng với mỗi nhà sản xuất (muốn có phải đăng ký với USB.org + 1 ít money), product ID do nhà sản xuất gán. Nếu PC lục trong registry ko thấy cái VID + PID của thiết bị, nó sẽ load cái driver chung cho cái class của thiết bị, nếu class này được hỗ trợ, còn không nó bung cái popup hỏi driver đâu?

        Mỗi driver sẽ được đính kèm 1 file .inf. Bên trong file này có 1 số thông tin về thiết bị, nhưng quan trọng nhất vẫn là thằng VID + PID. Nếu bạn sửa 2 cái này đúng với cái VID + PID của hardware, windows sẽ OK ngay lập tức, nhưng nó có chạy hay ko thì không biết.
        Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ?

        Nguyên văn bởi bien_van_khat
        Vậy tui xài bất kỳ ngôn ngữ nào có hỗ trợ gọi API đều có thể giao tiếp được với hardware của tui một cách đúng nghĩa.
        Câu này đúng, không cần quan tâm đến kiểu firmware USB chỉ cần quan tâm đến EP, xem cái nào là endpoint in, thông thường là EP1,2, là xong. Windriver làm kiểu này.

        Comment

        • dunghpc
          Đệ tử 2 túi
          • Nov 2005
          • 39

          #19
          Minh ban tat ca cac linh kien phuc vu dien dan
          gia cua linh kien nhu sau:

          Đơn giá/1c (Nghin dong)

          Hàng nhập ngoại
          1 SX18AC 75,000 VND
          2 SX52BD 170,000 VND
          3 SX8AC/DP 96,000 VND
          4 SX Blitz 2,300,000 VND
          5 LCD40x4 430,000 VND
          7 PIC16F876 87,000 VND
          8 PIC16F876A-I/SP 86,000 VND
          9 PIC16F873 75,000 VND
          10 PIC16CE625 25,000 VND
          11 PIC16F627A 40,000 VND
          12 PIC16F688 40,000 VND
          13 PIC18F252 140,000 VND
          14a PIC18F2320I/SP 120,000 VND
          14b rfPIC12f675f (PIC phat song vo tuyen tan so 433MHz) 45,000 VND
          14c RF MODULE - RXM - 433- LC -S (Modul thu song vo tuyen tan so 433MHz) 270,000 VND
          15 DG419 DJ 53,000 VND
          16 DS1307 51,000 VND
          17 ADS1252 180,000 VND
          18 ULN2803 15,000 VND
          19 LTC1376 88,000 VND
          20 LTC485 85,000 VND
          21 LTC1966CMS8 87,000 VND
          22 LTC1624 IS8 (Ổn áp nguồn Swiching) 120,000 VND
          23 6N137 20,000 VND
          24 AD9201 160,000 VND
          25 AD7533 105,000 VND
          26 AD7233 195,000 VND
          27 AD7715 AN5 210,000 VND
          28 CY7C429 170,000 VND
          29 AM7201 220,000 VND
          30 ICL8038 245,000 VND
          31 IR2104 20,000 VND
          32 48 MHz Oscilator 60,000 VND
          33 73 M 223K (IC Modem hữu tuyến (thu phát sóng FSK)) 110,500 VND
          34 LT1930i 86,000 VND
          35 COP8 B1218BR8 HVA8 125,000 VND
          36 ES2C (Diode dán) 10,000 VND
          37 PANCE16V8H - 25 PC 49,000 VND
          38 PLCC 44 (Đế cắm 44 chân) 45,000 VND
          39 24LC256 (EEPROM) 55,000 VND
          40 Max1104 87,000 VND
          41 Max 758 87,000 VND
          42 Max 4106 ESA 50,000 VND
          43 74HC14 7,000 VND
          44 74HC133 9,000 VND
          45 74HC265 7,000 VND
          46 74HC1004 5,000 VND
          47 74HC138 5,000 VND
          48 HCS410 50,000 VND
          49 HMC1002 90,000 VND
          50 HS1101 90,000 VND
          51 TC1662 170,000 VND
          52 TC962 60,000 VND
          53 TC775 O. MOA 22,000 VND
          54 PB 1P Plastic Project box 45,000 VND
          55 GGD 01 Plastic Molded box 120,000 VND
          56 TDA 5051 ATD 90,000 VND
          57 MCP 602, MCP 6002 (8 chân) (Opam, khuếch đại) 25,000 VND
          58 MCP 1525 (3 chân) (Ổn áp 2,5V) 30,000 VND
          59 MCP 42010 (Chiết áp điện tử) 47,000 VND
          60 SMP 04 EP 190,000 VND
          61 TCF 40 - 18 TRI - Ultrasonic Presure (sensor siêu âm) 55,000 VND
          62 85A 24000 (IC 20 chân) 11,000 VND
          63 ISD 5116 (n/c âm thanh) 364,000 VND
          64 LT 1801 110,000 VND
          65 TCN75-5 (Sensor nhiet do) 25,000 VND
          66 MC1450 12P - ND 44,000 VND
          67 BC1333-ND (Sensor siêu âm) 244,000 VND
          68 OPA 2703 91,000 VND
          69 1,5 KE15 Cadict ND Surge Protector 15,000 VND
          70 1,5 KE6.8 Cadict ND Surge Protector 16,000 VND
          71 HE 200-ND 40,000 VND
          72 EL 320256 - FD6 (màn hình tinh thể lỏng) 6,920,000 VND
          73 SW Reg controler N-CH8 78,000 VND
          74 Sensor thermal SPI SV8 SOIC 26,000 VND
          75 595-THS1030CDW (IC đo lường 28 chân) 213,000 VND
          76 LTC 2Y 20 CS8 120,000 VND
          77 LTC 2Y 00 CS8 115,000 VND
          78 HCPL 4562 40,000 VND
          79 ES 2DTR 3,000 VND
          80 SW Reg Step DN 48,000 VND
          81 Camera 1,055,000 VND
          82 Encoder E6 B2 CWZ 6C 2,450,000 VND

          Co gi lien he voi minh
          Vuong Anh Dung, phong dien tu, cong ty dien tu tin hoc Hoang Phat 34 - 36 Thai Thinh - Dong Da - Ha Noi
          Dien thoai: 04 - 5373466
          Fax : 04 - 5373440
          Di dong : 0904182627
          E - mail : dungva@hoangphat.com.vn

          Co rat nhieu loai linh kien phuc vu cac ban minh chua dua het len nhu cac bong cong suat lon dieu khien cac dong co, cac sensor do am, bao chay... Tat ca cac linh kien tren duoc nhap truc tiep tu My, Anh, va Singapo ve, co giay hai quan nhap khau. Co gia uu dai voi khach hang co so luong lon

          Comment

          • bien_van_khat
            ...Damned...
            • Apr 2006
            • 522

            #20
            Nguyên văn bởi phamthaihoa
            Có project hoàn toàn tương tự ở trang sixca, điều khiển động cơ bước, đọc AD. Muốn dùng với VB6 thì cần định nghĩa một số kiểu dữ liệu mới tương thích với kiểu dữ liệu của C++, tui đã làm kiểu này với Delphi.
            cai API trong MPUSBAPI.DLL ko xai voi VB6 duoc vì calling convention ko phù hợp. Bắt buộc phải modify source rồi compile lại.

            Bác giới thiệu cái này bằng thừa, bọn em nghèo lấy đâu tiền mua cái ấy
            Mà chỉ nhìn là làm được cái tương đương
            Cai do la` software ko phải hardware, hardware thì làm dễ òm.

            Cái này là dùng PIC USB 2.0 để làm USB 1.1
            Sở dĩ nó nhỏ là tác giả phát triển theo kiểu ngắt, khá giống với firmware Microchip cung cấp viết bằng HTPIC viết cho dòng 16C745.
            bạn thử đọc source 1 lần đi. Tui chưa thấy 1 cái fw nào viết =C18 cho bọn PIC USB 2.0 mà dùng ngắt hết.
            PG2C nạp tốt, GTP-USB cũng tốt, ICD2 thì càng tốt nữa
            hì ko xài winpic800 bao giờ nên ko biết. ICD muôn năm.
            - Xin đọc trước khi post bài

            Xin đặt code trong thẻ [ code ] [ /code ]

            Comment

            • bien_van_khat
              ...Damned...
              • Apr 2006
              • 522

              #21
              Nguyên văn bởi phamthaihoa
              Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ?
              Tùy vào phần mềm của bạn xử lý, vì lúc đó có 2 instance của thiết bị. Bạn sẽ phải chọn instance nào chứ có gì đặc biệt đâu. Bạn cắm 2 cái USB flash disk y chang nhau vô cùng 1 máy thì nó vẫn chạy đó thôi.

              Hà hà đúng là cao nhân bất lộ tướng, có lẽ sẽ còn nhiêu nhân vật xuất hiện tiếp theo.
              - Xin đọc trước khi post bài

              Xin đặt code trong thẻ [ code ] [ /code ]

              Comment

              • Ngoc Du
                Đệ tử 1 túi
                • May 2006
                • 13

                #22
                Nguyên văn bởi phamthaihoa
                Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ?
                Hai thiết bị của cùng một nhà sản xuất và có cùng Product ID thì dùng chung driver chứ sao nữa. Các thiết bị này do được gán địa chỉ khác nhau và USB là bus dùng chung nên tại một thời điểm chỉ có một thiết bị được phép giao tiếp với host và việc máy tính giao tiếp với các thiết bị tất nhiên sẽ chẳng gặp rắc rồi gì.

                Comment

                • dohoangnam
                  Đệ tử 1 túi
                  • Mar 2006
                  • 22

                  #23
                  Đề tài về cái USB này hay đấy! Anh em nên tập trung vào làm mạnh cái này này, tương lai (mà ngay bây giờ) vô số cái đụng đến USB. Anh em nào có code hay sản phẩm cụ thể nào ứng dụng USB2.0 rồi post lên làm "quà tặng" hay khởi đầu để anh em nhào dô nhé!!!
                  Thân.

                  Comment

                  • thuyanh
                    Nhập môn đệ tử
                    • Sep 2005
                    • 8

                    #24
                    Nguyên văn bởi bien_van_khat View Post
                    Mỗi driver sẽ được đính kèm 1 file .inf

                    ?



                    Nếu bạn sửa 2 cái này đúng với cái VID + PID của hardware, windows sẽ OK ngay lập tức, nhưng nó có chạy hay ko thì không biết.
                    Đảm bảo khi windows nhận được thiết bị (tức là phần điểm danh của bạn ok) thì sẽ chạy, ổn định là cái chắc. Kiểm nghiệm rùi. Cái vấn đề tui muốn là viết mớtci driver và cái fw riêng. hummmm. mới cao hứng nghĩ thế thôi, có ai có kinh nghiệm và hướng mong gợi ý giúp.

                    Comment

                    • thuyanh
                      Nhập môn đệ tử
                      • Sep 2005
                      • 8

                      #25
                      Nguyên văn bởi bien_van_khat View Post
                      bạn thử đọc source 1 lần đi. Tui chưa thấy 1 cái fw nào viết =C18 cho bọn PIC USB 2.0 mà dùng ngắt hết.

                      Tui thấy việc viết fw thực ra là viết giao thức để truyền nhận các khung tin giữa mạch USB và Host USB, để Host điển danh, nhận thiết bị, rồi thì windows biết và quản lý mạch USB của mình... Cái fw trên PIC ý, là sử dụng ngắt USB của PIC. Tất nhiên có nhiều cách để viết fw, tùy vào mục đích, chức năng của thiết bị USB các bác làm. Thiết nghĩ ,chỉ đoen thuần tổng hợp cách viết fw theo 2 kiểu: dùng ngắt USB trên PIC (tui thấy phương pháp này tiện hơn) và dùng kiểu lập lịch hỏi vòng (thiết nghĩ pp này hơi phí).

                      Comment

                      • bien_van_khat
                        ...Damned...
                        • Apr 2006
                        • 522

                        #26
                        bạn thử đọc source 1 lần đi. Tui chưa thấy 1 cái fw nào viết =C18 cho bọn PIC USB 2.0 mà dùng ngắt hết.
                        Bữa post rồi, bị mất bài, nay làm lại. Câu trên này bvk sai. Ngắt hay ko ngắt chỉ là kt viết chương trình, hôm trước ăn thua với PTH nên viết ẩu quá.

                        Thiết nghĩ ,chỉ đoen thuần tổng hợp cách viết fw theo 2 kiểu: dùng ngắt USB trên PIC (tui thấy phương pháp này tiện hơn) và dùng kiểu lập lịch hỏi vòng (thiết nghĩ pp này hơi phí).
                        Tất nhiên thiết kế chương trình theo hướng bất đồng bộ thì bạn ko mất thời gian cho CPU hỏi vòng nhưng bù lại chương trình bạn phải viết cực hơn. Dù gì mà nói nếu mình chỉ chú trọng vào code để xử lý giao tiếp chẳng hạn thi cứ hỏi vòng cho khỏe. Khi code đã chạy tốt rồi thì chuyển qua cũng dễ.

                        Có mấy điều tớ thấy thế này
                        1 - Nếu bạn đã tham gia diễn đàn này có nghĩa là bạn có khuynh hướng theo về phần cứng, như vậy tớ nghĩ công việc viết fw phù hợp hơn với bạn.
                        2 - Tớ ko rõ lắm nhưng có thể chắc chắn một điều là phát triển driver rất phức tạp, việc debug nó chẳng đơn giản chút nào.
                        3 - Dù ko tự viết nhưng bạn vẫn có thể dùng driver open source, hoặc viết theo class HID
                        - Xin đọc trước khi post bài

                        Xin đặt code trong thẻ [ code ] [ /code ]

                        Comment

                        • thuyanh
                          Nhập môn đệ tử
                          • Sep 2005
                          • 8

                          #27
                          Nguyên văn bởi bien_van_khat View Post

                          3 - Dù ko tự viết nhưng bạn vẫn có thể dùng driver open source, hoặc viết theo class HID
                          DÙ cũng đã tìm hiểu về truyền tin USB, nhưng tớ mới chỉ dừng lại ở bước nạp mấy cái fw và dùng Tiousb chạy. Quả thực là mạch chạy hơi bị ổn. Có thể giới thiệu giúp tớ một chút về HID không?, hay windriver ? Có vẻ như windriver hứa hẹn nhiều lợi ích hơn.
                          Mong tin

                          Comment

                          • bien_van_khat
                            ...Damned...
                            • Apr 2006
                            • 522

                            #28
                            Windriver thì cậu tự mò đi. Trong tailieuvietnam có đó. Còn HID chỉ là 1 lớp thiết bị mà bọn USB.org nó định nghĩa ra, nghĩa là nó là chuẩn, microsoft nó cung cấp sẵn driver cho windows ròi. Cứ viết cho đúng, cắm vô là chạy vô tư, chẳng phải lo driver gì hết.

                            mà Tiousb là cái gì thế nhỉ?
                            - Xin đọc trước khi post bài

                            Xin đặt code trong thẻ [ code ] [ /code ]

                            Comment

                            Working...