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