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