一個(gè)美女工程師的回顧:我的半年技術(shù)路
當(dāng)年報(bào)考計(jì)算機(jī)科學(xué)與技術(shù)系,并非出于興趣愛(ài)好,高中時(shí)候的我根本就沒(méi)見(jiàn)過(guò)電腦,甚至連PC機(jī)與電腦是什么關(guān)系都不知道。僅是因?yàn)猷徏腋绺绲囊痪湓?huà)“女孩子不適合做這行,這行更新太快,太苦?!迸⒆佑惺裁床贿m合的,我不怕苦也不怕累,偏要選這行!年少的輕狂與倔強(qiáng)一不小心成就了我一生的方向。
初到公司第一天,經(jīng)理安排一個(gè)藍(lán)牙項(xiàng)目的同事帶我。他給我講了一下充電鋰電池的保護(hù)芯片,其中有過(guò)充過(guò)放等許多我第一次聽(tīng)說(shuō)的名詞。然后給我一個(gè)指甲大小的保護(hù)芯片讓我往上焊元器件。在這之前我就不知道有鉻鐵這個(gè)家物事,更別說(shuō)焊接了。我清楚的記得那一個(gè)下午我費(fèi)了九牛二虎之力只焊上了四個(gè)0402的電阻。在19度的制冷空調(diào)下,我硬是出了一頭的汗。
大概經(jīng)理也從中看出了我的硬件功底確實(shí)等于零,便又安排了一個(gè)超級(jí)負(fù)責(zé)超級(jí)有耐性的略偏軟件的單片機(jī)工程師帶我。他用AVR單片機(jī),先給我一張電路圖,讓我照著這張圖自己焊一塊AVR開(kāi)發(fā)板。那只是一個(gè)實(shí)現(xiàn)AVR基本功能的電路圖,除了使MEGA16L正常工作的晶振、下載接口與電源(USB)外,另有一個(gè)上電復(fù)位電路、用MAX232電平轉(zhuǎn)換的DB9還有4 個(gè)LED燈??蓱z我當(dāng)時(shí)也是第一次看電路圖,將我腦海中所有高中時(shí)候?qū)W的物理知識(shí)全調(diào)出來(lái),也還是看不懂,只有依葫蘆畫(huà)瓢。哦,還沒(méi)有元器件。于是我又第一次去了新賽格。劉姥姥進(jìn)大觀(guān)園一樣,瞅啥都新鮮。于是我認(rèn)識(shí)了電阻電容晶振和自鎖非自鎖按鍵,還學(xué)會(huì)從電阻上面的圈圈的顏色讀出阻值、uF與pF之間的換算關(guān)系,還知道了LED燈是有正負(fù)的串口線(xiàn)是分直通的和交叉的。
不到50個(gè)元件的插件開(kāi)發(fā)板,我足足焊了三天,板背面亂糟糟如蜘蛛網(wǎng)一樣五顏六色的飛線(xiàn)自是羞于見(jiàn)人,但是好歹這塊板子可以正常工作了。可喜可賀。下一步是用C語(yǔ)言寫(xiě)程序。輕舒一口氣,終于到一個(gè)我學(xué)過(guò)見(jiàn)過(guò)的東西了,雖然在學(xué)校的時(shí)候?qū)W得也不那么扎實(shí),但與那些我沒(méi)聽(tīng)過(guò)沒(méi)見(jiàn)過(guò)的東西相比,還是讓我找到些感覺(jué)與自信??粗前藗€(gè)LED燈在我的控制下忽明忽暗,我竟興奮得手舞足蹈。:P真是讓人見(jiàn)笑了。
俗話(huà)說(shuō):頭三腳難踢,如果說(shuō)跑馬燈程序的完成標(biāo)志著我入行的第一腳,那么接下來(lái)安排給我的SMBUS偵聽(tīng)就是第二腳了。
MEGA16L與24C02與模擬IIC通信倒是容易些,看懂通信原理,知道通信協(xié)議基本可以成功,沒(méi)遇到什么大的困難,但是偵聽(tīng)就不那么容易了。要先弄懂串口通信原理,借助串口調(diào)試軟件,將偵聽(tīng)到的數(shù)據(jù)發(fā)送到PC端的調(diào)試軟件上。這時(shí)我搬到了工廠(chǎng)附近住宿,這樣就有大量的時(shí)間去玩那個(gè)SMBUS了。我?guī)缀趺刻於际寝k公室最后一個(gè)走的,每天都泡在電腦前的C語(yǔ)言里。帶我的那個(gè)單片機(jī)工程師在我的辦公桌的前一個(gè)位置,在這段時(shí)間里也再次鑒證了他極大的耐性與責(zé)任心。太多時(shí)候,我自己都沒(méi)有心情繼續(xù)下去,煩躁得直跟他吵。我自己都覺(jué)得過(guò)意不去了,人家也不該你不欠你的,那樣一心一意毫無(wú)保留的教你,你還這事那事的對(duì)人家發(fā)脾氣,確實(shí)是太過(guò)分了,但我當(dāng)時(shí)又控制不住情緒總?cè)滩蛔“l(fā)火沖他吼叫。他卻從來(lái)不生氣,頂多說(shuō)一句“我不管你了,你自己弄吧?!钡沁^(guò)不了多久,又不放心還是回過(guò)頭看看我這邊進(jìn)行得怎么樣了。呵呵,真是很可愛(ài)。真的很感謝他。
在這位超級(jí)耐心的工程師的超大力的指導(dǎo)下,在我始終不棄不舍的辛勤努力下,終于在2005年10月25日,在串口調(diào)試軟件上收到了一串串正確的數(shù)據(jù)。初戰(zhàn)告捷,長(zhǎng)舒一口氣。雖然我用了近兩個(gè)月的時(shí)間才將這個(gè)別人大概兩天就可以搞定的問(wèn)題解決,但是我知道自己在困難面前是揚(yáng)頭走過(guò)的,沒(méi)有留下任何遺憾。
稍事休息,放松一下心情后,經(jīng)理又交給我一個(gè)任務(wù):將一個(gè)96*16的單色OLED點(diǎn)亮。這個(gè)東東部門(mén)的同事誰(shuí)都沒(méi)玩過(guò),只能靠自己了。
查一下OLED的資料與spec,知道要點(diǎn)亮OLED需要用鋰電池提供3.3V和10V兩個(gè)電壓,3.3V為芯片驅(qū)動(dòng)電壓,10V為像素點(diǎn)亮電壓。初步選用NCP1406提供10V,外圍電路有一個(gè)6.8uH的電感,和一個(gè)MBR0520和幾個(gè)電容電阻。 XC6204 提供3.3V,外圍只有兩個(gè)電容。而OLED與外部的通訊用的是IIC,我用AVR單片機(jī)發(fā)通訊指令,我的數(shù)據(jù)線(xiàn)的電平是5V,OLED的是3.3V.又需要一個(gè)GTL2002做通訊電平轉(zhuǎn)換。大概思路理順后,就開(kāi)始學(xué)Protel 99E,用它來(lái)畫(huà)電路圖,做各種封裝,生成網(wǎng)絡(luò)表,走線(xiàn)。最后給PCB廠(chǎng)家做板,我就寫(xiě)程序。10天后,板子回來(lái)了,我的程序也寫(xiě)好了。開(kāi)始焊板,由于為了讓板子盡量小,我布的是雙面板,而且大都用的是0402的封裝,這一回再次考驗(yàn)了一次我的焊接術(shù)。一個(gè)拇指大小的板子,我足足焊了一整天。而一些引腳特密的像OLED等都是求我們另外一個(gè)硬件工程師幫我焊的。
呼呼焊完板后,燒進(jìn)程序,沒(méi)有反應(yīng)。我就在程序上找原因,反反復(fù)復(fù)的調(diào)試,未果。這時(shí)同事建議我不要只在軟件上找原因,要確保硬件的正確性。我就又開(kāi)始測(cè)硬件,經(jīng)理過(guò)來(lái)幫忙測(cè)試,結(jié)果把我頭天辛苦焊到23點(diǎn)的元器件都給拆了。555。最后發(fā)現(xiàn)那個(gè)6.8 uH的電感沒(méi)有起作用。這時(shí)要么換芯片要么換電感,但是都需要一定時(shí)間。于是就直接用DCPower供電。并發(fā)現(xiàn)OLED的1腳位置定反了。重新試過(guò),還是不亮。找OLED廠(chǎng)家的技術(shù)支持,又重新仔細(xì)的看了看spec,知道了這個(gè)芯片工作前是要reset的。如果不reset,它就不會(huì)工作。開(kāi)始用一個(gè)電容與一個(gè)電阻做一個(gè)簡(jiǎn)單復(fù)位,依舊是沒(méi)有什么反應(yīng)。實(shí)在是找不到什么原因了,就在一籌莫展的時(shí)候,它奇跡般的突然亮了。“奶奶的?!本科涓矗瓉?lái)是我將reset的時(shí)序弄錯(cuò)了。應(yīng)該是先reset再運(yùn)行程序,我卻給它先運(yùn)行程序再reset鬼才會(huì)亮。點(diǎn)亮后顯示數(shù)字與字符就很簡(jiǎn)單了,一天搞定。
這時(shí)就要想法讓電池供電了,不能總是帶著兩個(gè)大DCPower去檢測(cè)呀,那個(gè)10V的IC最終決定用TC1044S替代。問(wèn)經(jīng)理要把這個(gè)OLED顯示檢測(cè)設(shè)備做成什么樣的呀,他說(shuō)了一句非常經(jīng)典的話(huà):你想怎么玩,愛(ài)怎么玩,就怎么玩吧!這就是他的領(lǐng)導(dǎo)風(fēng)格,從不約束我們的思想,總是盡量的讓我們依著自己的想法去做事。很慶幸遇到這樣的經(jīng)理。于是我就窮盡所思地去設(shè)計(jì)這塊板。當(dāng)然我的硬件功底不行,我就頻頻去請(qǐng)教我們的硬件工程師,他更是知無(wú)不言言無(wú)不盡,經(jīng)常是你問(wèn)他一個(gè)問(wèn)題,他會(huì)連帶著把周?chē)?0公里以?xún)?nèi)的東西都告訴你。唉,小女子真是三生有幸,怎么竟遇到這些優(yōu)秀的同事呀。對(duì)他們給予我的莫大幫助我真的是感激涕零,發(fā)自肺腑的。
電路最終設(shè)計(jì)完成。硬件部分:有兩個(gè)電源供電,一個(gè)是3.6V鋰電池給OLED供電,一個(gè)是5V直流電源給AVR單片機(jī)供電,兩個(gè)電源共用一個(gè)開(kāi)關(guān)。鋰電池部分用R1114N轉(zhuǎn)換3.6Vto3.3V,用TC1044轉(zhuǎn)換3.6V-10V。在10V的輸出端加了一個(gè)MOS1130,用單片機(jī)的PD7腳來(lái)控制。5V電源部分用USB和7805兩種可選方式提供,根據(jù)DJ0702的2、3腳插入的時(shí)候斷開(kāi),不插入的時(shí)候連通的特性,將第三腳連接USB的地線(xiàn),使USB與12V穩(wěn)壓器不能同時(shí)供電。OLED的reset部分用一個(gè)NPN三極管連接到單片機(jī)的PD6,上接一個(gè)上拉電阻,通過(guò)單片機(jī)給一個(gè)高電平復(fù)位。I2C部分就用GTL2002DP作電平轉(zhuǎn)換。軟件部分:復(fù)位后先是棋盤(pán)格滾動(dòng)顯示效果,調(diào)用Timer0中斷檢測(cè)一個(gè)非自鎖按鍵是否按下,來(lái)切換顯示效果,可以切換到英文、中文、數(shù)字等。用另一個(gè)非自鎖按鍵通過(guò)INT0中斷關(guān)閉顯示。
Everything is OK,2006年1月21日,交了工,請(qǐng)假回家,舒舒服服的過(guò)了一個(gè)新年。至此為止,我的頭三腳總算是踢出去了,總算是拿到了一張此行業(yè)的入行券。真心感謝我的經(jīng)理和我周?chē)耐聦?duì)我的耐心與寬容,我會(huì)永遠(yuǎn)將同事的這份無(wú)私情誼放在心中,永遠(yuǎn)記得他們給我的幫助。此時(shí)我感慨最深的就是四個(gè)字“學(xué)無(wú)止境”,尤其是在這一行,好似一葉孤舟行在茫茫大海,永遠(yuǎn)看不到盡頭,永遠(yuǎn)摸不清方向,唯有逆流而上,奮力航行。