菜鳥,請(qǐng)你們真愛生命,遠(yuǎn)離Proteus
*注:此文專為21IC而著,可以轉(zhuǎn)載,但需保留本說明,否則將可能導(dǎo)致版權(quán)追究
Proteus可能是本版面最受爭議的軟件之一,我罵他,同時(shí)也因?yàn)榱R他而受別人罵,所以今天我就來告訴新同學(xué)們?yōu)槭裁碢roteus是菜鳥殺手(老鳥請(qǐng)自覺跳過本帖,你們用不用Proteus都是那么回事)。
嚴(yán)重聲明:本人與地球上任何銷售軟/硬件仿真器的公司、組織、利益團(tuán)體或個(gè)人沒有任何利益瓜葛。本文觀點(diǎn)僅代表個(gè)人見解,不承擔(dān)圍觀者因本帖而導(dǎo)致的任何技術(shù)錯(cuò)誤、軟硬件損失、經(jīng)濟(jì)損失、精神損失;因新同學(xué)圍觀本文導(dǎo)致的仿真軟/硬件設(shè)計(jì)、制造和利潤下滑情況與本人無關(guān)!
為什么老鳥用Proteus與我無關(guān),因?yàn)樗麄冎朗裁词怯布?,而菜鳥不知道。為了說明這個(gè)問題,我們先跑題到達(dá)芬奇畫雞蛋的故事上去,這個(gè)故事告訴我們,世界上沒有兩個(gè)長相完全一樣的雞蛋。
OK,現(xiàn)在我要告訴你,世界上同樣沒有兩個(gè)長相完全一樣的硬件系統(tǒng)。不信么?你找一張光盤,把它復(fù)制一張,然后用計(jì)算機(jī)程序來校驗(yàn),程序會(huì)告訴你,他們完全一致(說俗一點(diǎn)就是他們上面0和1的排列順序是一樣的)。那么現(xiàn)在請(qǐng)你找兩只電阻,兩只標(biāo)稱阻值都是10k的電阻,請(qǐng)你量一下他們的阻值相同么?什么?你說相同?那是因?yàn)槟愕?位半萬用表不夠精確,你用10位半的量一下呢,但是在電路圖上,他們都是10k,或者至多再標(biāo)個(gè)±5%之類,Why?這就是硬件——世界上沒有兩個(gè)完全一樣的硬件。
可以說,當(dāng)一個(gè)軟件被編寫完成之后,他的一切行為就是確定的了(具有事件驅(qū)動(dòng)架構(gòu)的程序除外,本括號(hào)僅為避免被其他老鳥痛批,新同學(xué)請(qǐng)無條件跳過),燒錄進(jìn)10000個(gè)單片機(jī)去,都是同一個(gè)軟件。但是當(dāng)一個(gè)單片機(jī)產(chǎn)品被設(shè)計(jì)出來后,生產(chǎn)線上所加工出的每一個(gè)產(chǎn)品,都有著不同的特性。比如三端穩(wěn)壓器7805,不是每一個(gè)的輸出電壓都在5.000000000V上的,有5.01的,有5.03的,如果你的單片機(jī)系統(tǒng)有設(shè)計(jì)缺陷,對(duì)5.01V的可以工作,對(duì)5.03V的就要出錯(cuò),這就是硬件的特點(diǎn)——離散性!
硬件設(shè)計(jì)中很大的一部分工作就是在“容差”,就是說我們明知道構(gòu)成系統(tǒng)的每一個(gè)元器件都有誤差,卻能夠通過概率統(tǒng)計(jì)、理論計(jì)算,讓系統(tǒng)工作起來,這是一項(xiàng)很繁雜的工作,有很多老鳥在設(shè)計(jì)中會(huì)用“經(jīng)驗(yàn)”二字來代替計(jì)算,這通常是沒有什么問題的,放生產(chǎn)實(shí)踐上看,出個(gè)萬分之一的廢品率也就不得了了,但是對(duì)正在學(xué)習(xí)工程思想的菜鳥就是毀滅性的。
如果你不服上面的話,請(qǐng)自己看21IC的帖子,有多少菜鳥在把Proteus設(shè)計(jì)移植到現(xiàn)實(shí)中發(fā)生了困難!我甚至還見過LED數(shù)碼管不加限流電阻就在Proteus里點(diǎn)的。
如果你還是堅(jiān)定不移的認(rèn)為Proteus是神圣不可侵犯的話,我再給你說一個(gè):
單片機(jī)從休眠狀態(tài)喚醒,對(duì)晶體和匹配電容的要求是很高的,如果激勵(lì)不足,將導(dǎo)致無法喚醒,設(shè)計(jì)上除了要選擇激勵(lì)功率合適的晶體和仔細(xì)匹配晶體所需的匹配電容,還要在高、低電源電壓,高、低環(huán)境溫度的組合中做休眠喚醒實(shí)驗(yàn)以確認(rèn)激勵(lì)合適。
請(qǐng)問哪一個(gè)仿真軟件可以完成上述工作?元器件這么多自然屬性(精度、溫漂、離散、老化、寄生參數(shù))請(qǐng)問哪個(gè)仿真軟件可以對(duì)每個(gè)元件建立精確的數(shù)學(xué)模型?
最后,再說下Proteus是拿來干什么的。應(yīng)該說這個(gè)軟件是給老鳥偷懶用的,比如調(diào)個(gè)串口通訊,寫個(gè)I2C時(shí)序啥的還成,因?yàn)槔哮B要的只是功能驗(yàn)證,硬件容差的原理他們已經(jīng)在N年前就知道了。不過這個(gè)軟件的作者也不厚道,起碼應(yīng)該在啟動(dòng)界面里做個(gè)“**”的標(biāo)志吧!
末了,診斷自己是否菜鳥的方法是:問實(shí)際電路能運(yùn)行,Proteus里不能仿真之類問題的是老鳥,反之,是菜鳥。
菜鳥請(qǐng)遠(yuǎn)離Proteus,老老實(shí)實(shí)去拿烙鐵吧!