1. 程式人生 > >我的現代電子系統設計(一):學習總結

我的現代電子系統設計(一):學習總結

短短兩週的現代電子系統設計就這樣結束了,有些意猶未盡啊。

關於PSoC部分的總結已經單獨列出來了, 這裡再補充幾點吧。

一:USB HID例程很好,可以仔細分析一下,可以實現插上電腦就能輕易搜尋和拷貝電腦上的資料,搜尋所有的doc檔案拷貝到移動盤,真是非常黑客的應用啊。xcopy /s/e "F:\A" "C:\A\"或者如果是win7,還可以用 robocopy,用法功能更多,也可以用 /? 取得用法的幫助簡單的就是robocopy a:\xxx :\xxx /sc盤的xxx目錄自動建立。

二:中斷的使用方法很簡單,也是圖形化的使用方法,拖出來再初始化就能用。

三:小心供電的時候,如果不採用標配的電源介面卡的話,而採用直接用5V穩壓去連VCC和GND引腳來供電會非常危險,萬一穩壓模組一壞,輸出了6V,板子立刻燒掉,我們就這樣燒了兩塊PSoC。

四:按鍵可能是壞的,可以採用手動用線抽插電源來獲得按鍵的效果。當然得軟體防止抖動。

總的來說,PSoC使用簡單,圖形化介面友好,BUG少,是創新實驗和做其他實驗的首選板子。

再說說ARM的部分吧,用的板子是ARM Cortex M4系列的LM4F232H5QD板子,例程裡面qs_logger和SD_card都太長了,沒有什麼用處,倒是sine_demo可以仔細看看學一學使用那個螢幕。不過qs_logger裡面的那個三軸加速度感測器可能有用,SD_card對於攝像頭存資料可能有用。有時間可以做一做。

提高實驗的那個電機很厲害,直接自帶碼盤,直接使用Systick就能測轉速了。

綜合實驗做的測脈搏,硬體得弄好,直到示波器可以看到脈搏為止,然後程式方面很麻煩,由於波動很大,所以閾值也就很難確定,比如開始脈搏訊號是50mV到100mV,手指稍稍移動,訊號就變成了150mV到300mV,因此要確定脈搏,首先得確定閾值,我開始的做法是測量96個點(剛好是整個顯示屏的橫畫素點個數),算出均值,作為閾值,然後給一個長度為96的陣列,若值高於閾值則賦值為1,低於則賦值為-1,等於則為0。由此得到脈搏。(當然得簡單濾一下波)

結果發現這樣還是測不準,因為閾值在96個點內就會改變,更好的做法是測96個點,然後給一個長度為95的陣列,將兩點間的差值的正負存進去,上升為1,下降為-1,不變為0,然後濾波就能畫出趨勢圖了。

總的來說,ARM的CCS並不太好除錯,找BUG很難,另外一點題外話,千萬不要隨便解除安裝軟體,不然就沒法用以前的東西了。

FPGA部分由於對Verilog入手很麻煩,所以還是用的VHDL,基於Nios的設計只是懂了一點點皮毛,並沒有完全懂,然後做的LCD和RAM二位加法器,LCD開始一直不顯示,後來發現是一個引腳LCD_ON要接高,另外關鍵是RAM的時序,差1/4個週期都是讀不出來的,時序弄清楚然後做DS18B20就順利多了。

創新實驗主要是對數字舵機的控制,波特率和ID號弄明白,靠那個偵錯程式,然後就很順利了,加藍芽模組,加超聲波模組,加加速度計,然後就OK。