CC2430 Joystick硬體說明

2021-06-04 16:26:36 字數 1430 閱讀 7535

cc2430 joystick 硬體說明

1 目標

學習了cc2430的ad,uart和timer之後,感覺自己有點入門了,接著做一點人機互動的內容。在這裡我介紹一下joystick的硬體連線。

剛開始看joystick的硬體部分的時候,還很的覺得有點麻煩的,後來把這個電路分解為反相放大器,同相放大器之後,問題就好解決多了。

2 分解joystick的4個按鈕

剛開始拿到原理圖的時候,4個按鈕「糾結」在了一起,讓人實在是看不懂是。後來我「分解」了這四個按鍵,在proteus中重新繪製原理圖。proteus可以進行一定的**,我還模擬**了一下。建立的模型如下:

編號和原來圖紙有所出入,但是原件引數還是一樣的。每次按某個按鍵,u1:b就會輸出不同的電壓。這下我也放心了,至少原理就那麼回事——通過檢測不同的電壓判斷按鍵是否被按下。

3 反相放大器

觀察圖左邊的放大器,本質上就是乙個反相放大器。通過按下不同的開關,獲得了不同的放大倍數。另外,放大器的正輸入端還有乙個參考電壓,使得反相放大時不至於出現都負電壓的情況(但後來的計算發現還是出現了負電壓,不過沒有關係)。輸出和輸入的關係如下圖所示:

該圖來自《嵌入式系統中使用單電源運算放大器》一文,在microchip官網上找到。microchip提供的資料,簡單且易於理解,不乏經典的中文資料,應用手冊條理清楚,堪稱典範。

vout1(左邊放大器的輸出)存在這樣的關係:

vout1 = -(r2/r1)*vin + (1+(r2/r1))*vbias;

其中,vin為3.3v,r1為800k,400k,200k和100k其中的乙個;r2為50k。vbias有兩個電阻分壓得到,100/(100+220)*3.3v。這樣就可以很簡單的計算出4個按鈕按下時,反相放大器的輸出結果。但是需要注意的是,當r1為100k時,計算出的結果為-0.1v,小於0。由於放大器沒有使用雙電源,所以只能輸出大於0v的部分,理論計算小於0的部分,只能委屈一點當0了。

4 同相放大器

同相放大器電路就簡單一點了,計算公式如下圖所示。同樣來自《嵌入式系統中使用單電源運算放大器》一文。

這個放大器的放大倍數為3。實際的vout = 3*vout1。

5 總結

看的懂的覺得很簡單,但是「不說」。分析軟體的人要比分析硬體的多。我覺得這很難,好不容易看懂了,我就分享一下。具體的結果如下

up鍵按下                 2.67v

down鍵按下         0v(-0.31v)

left鍵按下下         1.39v

right鍵按下          2.24v

**也寫好了,一定公布。最近發現寫部落格還是很累人的,怪自己文筆太爛了。

最後,我的郵箱 [email protected]

CC2430基礎實驗 外部中斷

外部中斷實驗是使用兩個按鍵來翻轉led狀態,但這裡兩個按鍵不是做鍵盤用,二是產生中斷觸發訊號。p0ifg為p1口中斷標誌暫存器 ien1為中斷使能暫存器1。led管腳設定 即先全域性ea,然後p0中斷開啟,最後相應中斷位置開啟。p1inp 0x0c 有上拉 下拉 p2inp 0x40 選擇上拉 p1...

CC2430基礎 外部中斷分析

外部中斷實驗是使用兩個按鍵來翻轉led狀態,但這裡兩個按鍵,一是做鍵盤用,二是產生中斷觸發訊號。實驗共用到p1 p1 p0dir p1 p0sel p1 p0inp pictl ien1和p0ifg幾個個暫存器。其中前幾個的作用前面的文章裡應經介紹過了,這裡就不再重複說明了。這裡主要是講一下後幾個暫...

CC2430 串列埠使用詳解

為了完成課題,最近下定決心學習cc2430。網上的資料很多,重複的部分不做過多的介紹,沒有的部分做一下少許的補充,希望對大家有用!建議各位使用更新的cc2530,該晶元為cc2430的替代版本 全部 如下,先看一下整體!標頭檔案 include hal.h include stdio.h 函式宣告 ...