DIY一把屬於自己的機械鍵盤(三)

硬件篇


  上篇講完鍵盤配列,這篇更新下我的硬件電路。首先,明確一下需要的功能:(需求明確是一個項目最重要的開端,可以說是項目的指導綱領,在需求合理的情況下一切按需求辦事,不僅能避開不必要的問題和責任,還能使項目生命週期健康推進,這也是大公司和小公司的區別之一。)

  1. 設備採用USB接口;
  2. 支持背光顯示, 亮度可調;
  3. 適當增加背光動畫,不必太花哨;
  4. 按鍵響應速度快;
  5. 支持全鍵無衝;

一、硬件方案

1. USB接口

  USB接口有兩種方案:一是採用外圍USB驅動芯片,如CH9329串口轉USB,傻瓜式配置即可實現USB鍵盤功能,這種方案雖然減少了軟件開銷和難度,但是增加了硬件成本,且降低通信速率;二是使用帶有USB接口的單片機,通過軟件實現USB鍵盤功能,減少了硬件成本但增加了軟件負擔。
  本着軟件能解決的問題就不使用硬件的原則,選擇使用帶有USB接口的單片機,這裏用的是最熟悉的STM32F103。
  這是STM32F103C8T6最小系統原理圖:
在這裏插入圖片描述

2. 背光顯示

  爲了實現LED背光和亮度調整,單純使用IO是無法驅動的,必然要使用外圍器件增加驅動能力,那麼就有兩種方案:一是使用晶體管元件,二是使用集成驅動芯片。相比之下,使用集成驅動IC,不管在成本上,還是軟、硬件開銷都優於分立元件搭的驅動電路。經過選型,選用了TM1629A這顆芯片,芯片大致參數如下:
在這裏插入圖片描述
在這裏插入圖片描述
  這顆芯片的驅動電流已經完全夠用,因此不需要外部元件增加驅動能力,況且太亮的話反而影響使用體驗。原理圖如下:
在這裏插入圖片描述

3. 按鍵掃描

  爲了增加按鍵響應速度,按鍵掃描電路應儘可能便於掃描,再普通矩陣鍵盤的基礎上每一行增加一個上拉電阻,這樣只要掃描一次就能得出鍵值,而不需要行列轉換掃描,原理圖如下:
在這裏插入圖片描述

4.全鍵無衝

  全鍵無衝屬於軟件問題,這裏大概講一下USB硬件接口。Micro USB的引腳定義如下:

PIN 名稱 描述
1 VBUS 電源正5 V
2 D- 數據線負
3 D+ 數據線正
4 ID OTG模式下檢測ID腳狀態高低,從而判斷爲主設備或從設備
5 GND 信號地線

  這裏不需要OTG功能,因此ID腳懸空處理。
  由於USB2.0是向下兼容USB1.X的,即USB2.0支持高速、全速、低速的USB設備(HIGH-SPEED,FULL-SPEED,LOW-SPEED),而USB1.X不支持高速設備。因此如果高速設備接在USB1.X的hub上,也只能工作在全速狀態。因此對速度的識別是很重要的,否則沒辦法以想要的速度通信。全速設備和低速設備的識別取決於設備端的一個上拉電阻,如果D-上拉1.5K電阻則是低速設備,D+上拉1.5K電阻則是全速設備。高速是基於全速設備基礎上,通過握手信號進一步識別,這裏就不詳細說明。USB接口原理圖如下:
在這裏插入圖片描述


  至此,硬件原理基本設計完了,下一篇講一下程序設計。

DIY一把屬於自己的機械鍵盤(四)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章