轉載--happysaisai的博客
為了實現(xiàn)人機交互,實現(xiàn)人機通信,方便學生做實驗,我們在基于ADSP-21369的實驗教學系統(tǒng)上設計了一個鍵盤,它可以實現(xiàn)實驗數據的輸入,由于鍵盤的多樣性,結合實際需要,首先需要進行方案選擇工作。
(1)方案選擇
本實驗系統(tǒng)采用4*4鍵盤,用于實驗數據輸入。4*4鍵盤共有16個按鍵,排列成4行4列的矩陣形式的分布,如果使用I/O端口掃描的形式來實現(xiàn)對16個按鍵的識別,那么需要8個I/O端口,為了節(jié)省系統(tǒng)資源并且提高系統(tǒng)效率,本系統(tǒng)使用芯片控制鍵盤掃描,鍵盤掃描的產品選型有CH451和CH452兩種,它們都是鍵盤掃描控制芯片,都可以直接進行鍵盤掃描,并且可以中斷,大大節(jié)省了系統(tǒng)時間。除此之外它們還有數碼管LED顯示驅動的功能,驅動數碼管LED顯示,并且能同時進行顯示驅動和鍵盤掃描,也能為日后擴展提供方便。雖然CH451和CH452都可以支持3.3V和5V電源電壓,但是CH451用于3.3V時要外接震蕩電阻才能避免顯示閃爍,而且CH452兼容I2C的兩線接口,因此我們選定CH452,并且選擇2線串行接口,28腳貼片的封裝CH452A。
CH452的2線串行接口,包含2個主要信號線:串行數據時鐘輸入線SCL、串行數據輸入和輸出線SDA;以及2個輔助信號線:串行接口的地址選擇線ADDR、串行接口的中斷輸出線INT#。其中,SCL、ADDR 是帶上拉的輸入信號線,SCL用于提供串行時鐘,CH452 在其上升沿后的高電平期間從SDA輸入數據,在其下降沿后的低電平期間從SDA輸出數據,默認高電平。
在SCL為高電平期間發(fā)生的SDA下降沿定義為串行接口的啟動信號,CH452只在檢測到啟動信號后才接收并分析命令,所以在DSP I/O 引腳資源緊張時,不但INT#引腳可以省掉而改用SDA 引腳的脈沖中斷方式,而且在保持SDA引腳狀態(tài)不變的情況下,SCL 引腳也可以與其它接口電路共用。
(2)DSP和CH452芯片的連接
ADSP-21369的DPI接口有一個TWI接口,TWI接口完全兼容I2C總線標準。DSP通過串行接口控制CH452芯片,CH452的串行接口是由硬件實現(xiàn)的,DSP可以頻繁地進行高速操作,而絕對不會降低CH452的工作效率。2線串行接口的中斷輸出INT#接DSP的外中,2線串行接口的數據時鐘SCL和DSP的DPI12_TWI_CLK相連,2線串行接口的數據輸入和輸出SDA和DSP的DPI11_TWI_DATA相連,此外由于I2C接口的輸出端是漏極開路或集電極開路,默認高電平,所以必須在I2C接口處接上拉。鍵盤掃描期間,SEG7~SEG0 引腳都帶有內部下拉電阻,用于行掃描輸入;DIG7~DIG0 引腳用于列掃描輸出。由于我們是4*4鍵盤,因此只選用SEG3~SEG0和DIG3~ DIG0 引腳。另外,在CH452的DIG0~DIG3引腳與鍵盤矩陣之間需要串接限流阻值2KΩ的電阻,是為了防止鍵被按下后在SEG信號線與DIG 信號線之間形成短路。鍵盤部分設計電路圖如下圖所示。
鍵盤設計電路圖
Keyboard connection circuit |