ASM 板


LINE

看板 ASM  RSS
USB HID EP0理論上可以每 1ms傳送 64B (B for Byte, b for bit) 等於是 64KBps, 用 UART來傳需要 640,000bps才作得到, 這個是 full speed device就有的,現在有提供 USB interface 的 MCU幾乎都有做到 full speed. 我實作了一個,測出 58KBps,很可能是受到 CPU忙碌程度的影響? 也許是軟體效率不夠高? 為什麼不用 UART? 因為 COM Port 需要安裝 driver,而 HID 幾乎 所有的 OS都不用安裝 driver, 起碼主流的那幾個都不需要。 如果你作的系統經常會拿到新電腦上使用,用這招比隨身帶著 FT232R driver package方便多了 :) 所以我實作的東西,報給 OS的是 HID Keyboard, 但實際上是一個 MCU + ADC for sensors. 既然沒有keyboard的部分,所以回報 keyboard 的 firmware code都不用寫了。 比較麻煩的是軟體的部分,COM Port的應用程式在這邊相對簡單, 就是百年不變的寫法,但 HID會需要一些很底層的 API, 如果不想 鍛鍊那樣深的功力,可以直接使用網路上的資源,最有名的是 libusb。 還有很多個人分享的 DLL可以使用。 其實寫一次就知道了,幾乎各家 DLL的程序都差不多,首先要找到 device, 比對 PID, VID, 確認你要的 device, 執行 endpoint0 上的 SetFeature, GetFeature。前者是傳資料給 device, 後者是傳資料給host (PC) firmware上實作Set Feature, Get Feature, 才能跟software配合上。 以上做完後,你就可以用 USB標準協定傳資料了。 補充一下,這樣做其實開發階段很不方便,一旦你用 break point停止 MCU 工作,理論上不會回應 USB了,所以 Host可能直接把裝置斷線,resume MCU後 又要重來一次 USB enumeration... 所以開發時候把 UART拉出來,走 USB + UART + JTAG 三重路線也不錯啦 orz --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.221.214
1F:推 wuonline:推! 07/10 22:37
2F:推 ksmrt0123:推推! 07/11 00:39
3F:推 deo2000:推!對複雜的USB又多點認識,不過最後四行完全不懂 07/11 00:40
4F:推 ruemann:最後面是說,DEBUG時,有可能會設定斷點,一旦進入斷點 07/11 12:49
5F:→ ruemann:OS會認為USB已經離線了,如果你要繼續使用USB的話,要重新 07/11 12:50
6F:→ ruemann:從頭跑一次 07/11 12:50
7F:推 ksmrt0123:64B/1mS應該是interrupt transfer的限制, control 07/12 01:26
8F:→ ksmrt0123:transfer應該可更快. 要再快就要用 bulk 因為 device 07/12 01:27
9F:→ ksmrt0123:端通常bulk有double buffering 07/12 01:28
10F:→ ksmrt0123:請問為何用 set feature, clear feature(?) 來實作想要 07/12 01:29
11F:→ ksmrt0123:的功能? 怎不自己定義vendor command就好? 還是HID不允 07/12 01:30
12F:→ ksmrt0123:許自訂vendor command? (抱歉我對HID不熟) 07/12 01:31
13F:推 ksmrt0123:hmm.... 我看到MS HIDClass Support Routines列表了... 07/12 01:48
14F:→ ksmrt0123:上面的問題當我沒問... 抱歉 07/12 01:48
15F:→ govert:其實不用另外Driver的常用方式就是3種. HID, MassStorage, 07/12 23:21
16F:→ govert:跟Printer class. 都大同小異. 用習慣就好。 07/12 23:22
17F:→ govert:不過data量要大的話,的確用bulk比較好,data可以到65535 07/12 23:23







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP