加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于LPC5516的SDVX手臺(tái)技術(shù)分享-自制音樂游戲控制器

05/17 09:01
2199
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
電路板圖(3)
相關(guān)方案
  • 方案介紹
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

本感覺一個(gè)鍵鼠復(fù)合設(shè)備沒啥好講的,但是應(yīng)不住日天兄再三之邀,寫下此文。

首先簡(jiǎn)單科普一下USB的速度,對(duì)于USB2.0來說,一共有3種速度

低速(USB1.0):1.5Mbit/s

全速(USB1.1):12Mbit/s

高速(USB2.0):480Mbit/s

對(duì)于大部分支持USB2.0的單片機(jī)來說,一般都是支持的全速模式,高速模式是比較少見的,而這次使用的LPC5516是全速模式與高速模式都支持的。

我們先看一下手臺(tái)的USB類型。

可以看到,識(shí)別出來的是高速USB,但是事實(shí)上對(duì)于鍵盤鼠標(biāo)這種低速設(shè)備來說,完全是大才小用了,這里我就是屬于弄著玩玩,看起來比較酷炫。

手臺(tái)本身由兩部分組成,鍵盤與鼠標(biāo),可以看到配置描述符里面有兩個(gè)接口

分別就是鼠標(biāo)跟鍵盤了

USB鼠標(biāo)部分:

鼠標(biāo)發(fā)送給PC的數(shù)據(jù)每次4字節(jié)

BYTE1 --

|--bit7~3: 無意義

|--bit2: 中鍵,1按下 0抬起

|--bit1: 右鍵

|--bit0: 左鍵

BYTE2 -- X坐標(biāo)變化量,負(fù)數(shù)表示向左移,正數(shù)表右移。用補(bǔ)碼表示變化量

BYTE3 -- Y坐標(biāo)變化量,負(fù)數(shù)表示向下移,正數(shù)表上移。用補(bǔ)碼表示變化量

BYTE4 -- 滾輪變化,0x01表示滾輪向前滾動(dòng)一格;0xFF表示滾輪向后滾動(dòng)一格;0x80是個(gè)中間值,不滾動(dòng)。

USB是一個(gè)主機(jī)向從機(jī)查詢的協(xié)議,對(duì)于鼠標(biāo)來說,查詢的速度越快,連續(xù)性越好,這里我程序設(shè)置的主機(jī)輪詢速度為2ms,也就是鼠標(biāo)部分1S通信500次。

這個(gè)參數(shù)在鼠標(biāo)上叫回報(bào)率,也叫刷新率,簡(jiǎn)單理解就是1S能上傳多少次數(shù)據(jù)到電腦,一般鼠標(biāo)是125Hz。我的鼠標(biāo)測(cè)試(羅技 M90)

手臺(tái)數(shù)據(jù)測(cè)試

500Hz的回報(bào)率對(duì)手臺(tái)來說完全足夠。

USB鍵盤部分:

鍵盤發(fā)送給PC的數(shù)據(jù)每次8個(gè)字節(jié)

定義分別是:

BYTE1 --

|--bit0: 左Ctrl,1為按下 0為抬起

|--bit1: 左Shift

|--bit2: 左Alt

|--bit3: 左GUI

|--bit4: 右Ctrl

|--bit5: 右Shift

|--bit6: 右Alt

|--bit7: 右GUI

BYTE2 -- 保留

BYTE3--BYTE8 -- 普通按鍵

所以說一般的USB鍵盤只考慮軟件的話只能做到6鍵無沖,如果需要更多,那只能加點(diǎn)接口,也就是那些支持多鍵無沖的鍵盤(需要硬件支持)。

對(duì)于手臺(tái)來說,上面只有7個(gè)按鍵,這7個(gè)按鍵是直接接到IO上的。硬件完全支持無沖。而且其中一個(gè)按鍵還是確定鍵,平時(shí)使用中軟件只要保證6鍵無沖即可。

同時(shí)按下6鍵,可正常識(shí)別。

鍵盤另一個(gè)比較重要的就是反應(yīng)速度了,也就是按下按鍵到電腦反應(yīng)的時(shí)間(其實(shí)我覺得完全不重要,因?yàn)殒I盤又不像鼠標(biāo)一樣是個(gè)連續(xù)的過程,人的反應(yīng)速度才多少)。

軟件上配置的主機(jī)輪詢速度就是4ms,也就是理論上,按下按鍵到電腦有反應(yīng),最長要4ms。

這個(gè)只能說,主觀感受是完全沒問題的。

對(duì)于LPC5516來說這種應(yīng)用只能說是毛毛雨了,150MHz的主頻,完全輕輕松松。

按鍵與編碼器

按鍵、編碼器通通外部上拉加電容消抖,軟件部分沒添加消抖,使用中未出現(xiàn)按鍵抖動(dòng)的問題。

編碼器代碼采用外部中斷的方式寫的,穩(wěn)定性還可以,就是買的編碼器分辨率太低了,效果不太理想。

WS2812:

代碼上使用了SPI去模擬,沒有做按鍵與燈的綁定代碼,目前只支持全彩漸變呼吸燈的效果。目前板子硬件上有11個(gè)燈,驅(qū)動(dòng)毫無壓力。

代碼是用了mgn的程序改巴改巴搞出來的,原地址: https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&tid=620562

程序開發(fā)上,NXP官方提供了很詳細(xì)的例程,很方便就能上手,手臺(tái)的軟件部分的開發(fā)時(shí)間加起來不超過2小時(shí)。MCUXpresso Config Tools確實(shí)好用,配IO配時(shí)鐘不要太簡(jiǎn)單,

最后總結(jié)一下:對(duì)于鍵鼠設(shè)備來說,全速USB就完全足夠,因?yàn)殒I鼠是走中斷傳輸模式的,速度的提升到了1ms之后的意義就不大了,太快反而給主機(jī)帶來了負(fù)擔(dān)。比如現(xiàn)在我在使用的鍵盤就是全速USB的,能查到的鼠標(biāo)信息,好的游戲鼠標(biāo)的回報(bào)率就是500Hz或者1000Hz了,換算到USB速度上,差不多也就是全速USB的水平吧(手上沒有這么高級(jí)的玩意,猜的速度,歡迎有大佬在帖子留下自己鼠標(biāo)的測(cè)試記錄)。

對(duì)于我這個(gè)手臺(tái)來說LPC5516可以說性能嚴(yán)重過剩。還是得想個(gè)辦法逼出極限性能來啊。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
Q13FC1350000400 1 Seiko Epson Corporation Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, CERAMIC, SMD, 2 PIN

ECAD模型

下載ECAD模型
$0.36 查看
NX3215SA-32.768K-STD-MUA-8 1 Nihon Dempa Kogyo Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT PACKAGE-2
$1.98 查看
TLP5771(TP,E 1 Toshiba America Electronic Components LOGIC OUTPUT OPTOCOUPLER

ECAD模型

下載ECAD模型
$2.24 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜