概述
這個專案的靈感來源是稚暉君的客製化鍵盤專案,看到瀚文就覺得很震撼,就想自己也做一把試試。正好最近也正好在學嵌入式,順便鞏固一下最近所學的知識、也可以多瞭解一點技術棧。不過由於技術首先所以先做一把小鍵盤試試手。
專案整體思路
整個專案大致可以分為三個部分,首先是鍵盤的核心板,這裡承載了鍵盤的主控等核心電路和一個usb擴充套件介面;然後是鍵盤的按鍵與掃描電路模組;第三個部分是鍵盤的擴充套件板,使用spi、iic等介面使得鍵盤的功能可以得到擴充套件。這樣分模組的好處就是方便後續迭代。在pcb設計並沒有完全成熟的時候,分模組可以極大程度上降低試驗成本(也可以更好地白嫖嘉立創的打樣)。
主體部分電路設計
首先是核心板這裡。鍵盤的主控我選擇了比較經典的stm32f103cxt6 (別的我要還沒怎麼用過)。mcu周圍的時鐘電路和電源電路等要求不是很高,可以直接參考了官方以及一些廠商的原理圖(下面這個是我找淘寶客服要的)
核心板另一部分就是usb擴充塢,我選擇了sl12.a,選擇這個是因為資料多,也有官方樣例,同時比較好買,可以嘉立創直接下單。核心電路也同樣沒什麼特殊要求,所以也是直接用了官方的樣例。不過要注意sl12.a的一個埠要連線核心板上的usb介面,這個在米醋核心電路設計的時候也要留出來;然後就是全速usb裝置要在dp線上接一個上拉電阻到3v3,阻值1.5k左右(實測1k電腦也可以識別),這個一定不要忘記,不然電腦不識別usb裝置(別問我是怎麼知道的。。)還有就是,typec 兩條cc線要接5.1k下拉電阻。
擴充部分目前還沒有想好,大致考慮使用spi與iic介面(pcb均已留出)。大致考慮給螢幕、mpu6050、編碼器等。因為稚暉君無刷電機foc實現可調旋鈕的方案涉及到電池充放電和升壓,考慮到技術不行和我的人生安全,這個暫時不考慮接入。
掃描電路上我沒有選擇稚暉君用並轉串的1*n掃描方案,還是使用了比較傳統的行列掃描方案,每個按鍵和掃描線路之間設定二極體,以解決鬼鍵問題。(因為是小鍵盤,按鍵數量還是比較少,所以行列掃描產生的線路並沒有很多)
pcb設計
這個板子比較簡單,pcb設計難度並不是很大,合理排布一下元件位置和導線即可。usb差分線路最好可以做到等長。(不過這個速率的實測不做等長也沒事;我第一版pcb沒設計等長,還是可以用的)。
正面(usb擴充塢):
背面(核心板):
整體實際尺寸大概比大拇指稍大一點。
(鍵盤pcb就先不放了,也很簡單)
感想
這一版pcb其實還有很多問題,一個主要的問題是usb dp線上的1.5k上拉電阻。然後就是一些小問題,像按鍵掃描pcb沒有做vcc(供電是直接mcu引腳內部上拉電阻供電的,這裡用開樓輸出所以沒問題,但是這導致對後續使用並轉串等方案帶來不便),還有就是非可控led(如果led可以透過引腳開關可以便於除錯)。其他問題暫時想不到了,但是可以最佳化的空間也還有,不過就等以後了吧。
( ̄~ ̄;)