踏浪而行,偶爾回首,雖不見印記,卻也能望見遠(yuǎn)處的海岸。
從15年畢業(yè),恍然已八年。
硬件工作了八年。也是愛的深沉。
還記得大學(xué)的時(shí)候在學(xué)生會(huì)認(rèn)識(shí)的朋友,他有一天突然跟我推薦單片機(jī)開發(fā)板,那時(shí)候大二,打聽過,單片機(jī)應(yīng)該是下學(xué)期開始的課程。當(dāng)時(shí)我覺得是一種命運(yùn)的安排,就斥巨資購買了郭天祥的單片機(jī)開發(fā)板。鬼使神差的,竟然在大學(xué)那松散的時(shí)光里,我可以學(xué)習(xí)到深夜一兩點(diǎn)!也是因?yàn)橐粔K開發(fā)板,我考了兩次的計(jì)算機(jī)二級(jí)(雖然后來知道沒啥用),就很自然的過了。以前不是很理解的硬件知識(shí),也通暢了。后來參加了學(xué)校組織的以及國家級(jí)的多次比賽,硬件開始讓我愛不釋手。在當(dāng)時(shí)我也成為了我們班的專業(yè)代表,然而畢業(yè)始終給人猝不及防。
后來,經(jīng)過一番忙碌,進(jìn)入了現(xiàn)在的企業(yè)。
還記得簡歷上不敢寫面試硬件工程師,最終寫了個(gè)PCB工程師。或許也比較懷疑自己的硬件設(shè)計(jì)能力吧。
剛?cè)肼?,大多是熟悉產(chǎn)品,于是我維修了公司的陳年舊板,看原理圖,查資料,大部分還是需要自主去弄的。然后PCB的設(shè)計(jì),學(xué)習(xí)cadence軟件,設(shè)計(jì)第一塊接口板。
恍惚一年多,五六層板也很輕松了。記得有一次評(píng)估PCB尺寸和接口位置,對(duì)應(yīng)產(chǎn)品外觀。逼不得已學(xué)習(xí)了最簡單的SolidWorks操作。也算是初涉結(jié)構(gòu)設(shè)計(jì),后來我們結(jié)構(gòu)設(shè)計(jì)工程師離職,我就攬下了這個(gè)工作。自古硬件結(jié)構(gòu)不分家。PCB與結(jié)構(gòu)的搭配產(chǎn)生了完美的產(chǎn)品。
就這樣一晃就是四年,作為干硬件的竟然連原理圖都沒弄過,挺遺憾的,正當(dāng)要得過且過的時(shí)候,也不知為啥我的領(lǐng)導(dǎo)開始瘋狂輸出各種原理圖設(shè)計(jì)給我,并且算得上的手把手教學(xué)了,但是時(shí)間只給了我一個(gè)月,因?yàn)樗x職了,并且讓我接替。有種悲喜交加的感覺。喜的是升職加薪,悲的是剛好兩個(gè)項(xiàng)目來了。原理圖、PCB、結(jié)構(gòu)...
就從原理圖認(rèn)真開始吧,反正也只能這樣。于是參考著參考設(shè)計(jì),本想著刪刪減減就大功告成的,然而就在刪電容的時(shí)候就卡住了,腦海中全是疑問:這個(gè)電容為什么選這個(gè)容量的?為什么耐壓值是這個(gè)?這里沒標(biāo)注電容的材料?。堪??為啥這個(gè)地方要這么多種類的電容???算了還是刪電阻吧,然后又是疑問:多大電阻?多少精度?多大封裝?后來還有電感...
最終的結(jié)果是全部保留原樣的,反正能用,就不改了。最終導(dǎo)致了bom成本,板卡做的很大等問題。
第一次可以這樣做,第二次也可以,但是等產(chǎn)品出來了,市面上同類產(chǎn)品,我們的定價(jià)頗高,于是老板請(qǐng)我去他辦公室喝茶了。意思很簡單,降bom成本。
路漫漫修遠(yuǎn)以下是面包板社區(qū)“瑞薩RA6M4 MCU 評(píng)估板”評(píng)測活動(dòng)的評(píng)測連載,分享于此,希望對(duì)你有所參考。
一、開發(fā)板開發(fā)環(huán)境構(gòu)建
1.1、硬件
基于CPK-RA6M4評(píng)估板,板載有Jlink、USB、兩個(gè)PMOD接口等,交互方面有一個(gè)按鍵和一個(gè)LED,傳感器方面有一個(gè)電位器和一個(gè)光傳感器,另外大部分IO接口已通過排針引出。在進(jìn)行DSP方面測試需要接個(gè)串口,通過串口打印輸出調(diào)試信息。(注意:開發(fā)板上設(shè)計(jì)有24M外部晶振輸入,實(shí)際沒焊接,時(shí)鐘配置時(shí)需要注意換成內(nèi)部時(shí)鐘)。
1.2、FSP軟件配置
FSP軟件是開發(fā)配置軟件,第一步需要配置時(shí)鐘,如1.1所述,由于外部晶振沒有焊接,需要采用內(nèi)部晶振,配置如下圖1所示:

圖1 時(shí)鐘配置
第二步配置接口(LED)相關(guān),LED接在P106端口上,需要使能P106引腳,配置如下圖2所示:第三步配置串口,為方便調(diào)試輸出,需要使用串口打印功能,串口配置如圖3a和圖3b所示:驅(qū)動(dòng)包括LED燈、串口驅(qū)動(dòng)程序:LED燈驅(qū)動(dòng)程序如下所示:簡單測試個(gè)求數(shù)組元素的絕對(duì)值:圖5 數(shù)字信號(hào)處理求絕對(duì)值結(jié)果
二、快速傅里葉變換(FFT)測試
2.1. 快速傅里葉變換
快速傅里葉變換 (fast Fourier transform), 即利用計(jì)算機(jī)計(jì)算離散傅里葉變換(DFT)的高效、快速計(jì)算方法的統(tǒng)稱,簡稱FFT??焖俑道锶~變換是1965年由J.W.庫利和T.W.圖基提出的。采用這種算法能使計(jì)算機(jī)計(jì)算離散傅里葉變換所需要的乘法次數(shù)大為減少,特別是被變換的抽樣點(diǎn)數(shù)N越多,F(xiàn)FT算法計(jì)算量的節(jié)省就越顯著。
例程以 y=16+10sin(100πt)+4sin(300πt)+6sin(700πt)
為測試序列,采樣率為6400Hz,基波頻率為工頻50Hz,采樣點(diǎn)數(shù)為128點(diǎn),直流分量為16,基波分量為10,3次諧波分量為4,7次諧波分量為6,通過FFT輸出各次諧波幅值并與序列諧波幅值對(duì)比。
2.2. CMSIS-DSPCMSIS-DSP庫是Arm針對(duì)各種Arm Cortex-M處理器(例如Cortex-M4,Cortex-M7,Cortex-M33,Cortex-M35和Cortex-M55處理器)優(yōu)化的豐富的DSP函數(shù)的集合。Arm Developer網(wǎng)站包含有關(guān)這些處理器的更多信息和支持資源。CMSIS-DSP在行業(yè)中得到了廣泛使用,并能夠通過各種第三方工具優(yōu)化C代碼生成。例程所使用的是DSP開發(fā)包中的TransformFunctions實(shí)數(shù)快速傅里葉變換。串口輸出值,包括直流分量到63次諧波幅值如圖6所示:圖6 RA6M4單片機(jī)FFT輸出結(jié)果為了方便直觀的查看數(shù)據(jù),將單片機(jī)FFT變換結(jié)果通過串口輸出,導(dǎo)入到MATLAB中進(jìn)行繪圖,并將結(jié)果與MTALAB變換結(jié)果進(jìn)行對(duì)比,得到如下圖7結(jié)果,可以看到標(biāo)準(zhǔn)的正弦波疊加直流分量后,值均大于0;標(biāo)準(zhǔn)的正弦波疊加3次和7次諧波后,波形發(fā)生畸變;對(duì)比RA6M4變換結(jié)果和MATLAB變換結(jié)果,對(duì)應(yīng)頻率處幅值一樣,證明RA6M4的FFT結(jié)果正確。需要特別注意的是:基于ARM CMSIS DSP FFT處理后,得到的各個(gè)頻率幅值并不是原信號(hào)在該頻率處的真實(shí)幅值,若要恢復(fù)原始信號(hào)的幅值,直流分量需要對(duì)應(yīng)除以FFT長度,而其他頻率則除以FFT長度的一半。如測試程序一樣,F(xiàn)FT長度為128,則直流幅值除以128,其他頻率幅值除以64。


點(diǎn)擊閱讀原文,免費(fèi)申請(qǐng)