對電子設(shè)計的有益追求,從來沒有比翻轉(zhuǎn)評論“如果......”更令人滿意的了。進入一個為您的想法注入生命的電路。然而,沒有什么比設(shè)計完美的電路更令人沮喪的了,當(dāng)太陽出來時,它變得完全沒用了。不管你喜不喜歡,很少有設(shè)計師能夠奢侈地知道他們的電路將在受控環(huán)境中使用。除了在工作臺上運行電路外,工程師還必須將其設(shè)計為在溫度、濕度、元件公差以及有時用戶情緒波動的規(guī)格范圍內(nèi)工作。
任何賽道都可以忍受的最糟糕的環(huán)境可能是在汽車引擎蓋下。在那里,電路受到振動、潮濕、化學(xué)物質(zhì)(令人討厭的)和巨大的溫度波動的影響??紤]到這一點,作者著手設(shè)計一個數(shù)據(jù)記錄儀,測量汽車引擎蓋下的溫度,平均一個月的駕駛時間 - 讓他準(zhǔn)確地看到引擎蓋下的溫度。該電路牢固地安裝在汽車的電池架上,無人看管,在英國非常平均的四月里,每十分鐘記錄一次溫度,白天和黑夜。傳奇,從概念到最終結(jié)果,詳述如下。
組件選擇
最初的概念電路由溫度傳感器、微控制器、非易失性存儲器、振蕩器、升壓控制器和UART組成。
選擇的溫度傳感器MAX6576提供PWM輸出,無需外部緩沖,與類似的模擬輸出器件相比具有優(yōu)異的抗擾度。因此,可以與簡單的微處理器(無需ADC或其他組件)建立簡單的接口。MAX6576的可編程脈沖寬度允許10us/°K、40us/°K、160us/°K和640us/°K的溫度讀數(shù)。對于此應(yīng)用,脈沖寬度設(shè)置為 160us/°K,因為這簡化了處理器代碼循環(huán)。其靜態(tài)電流典型值為 140μA,因而適合電池供電型數(shù)據(jù)記錄器。事實上,MAX6576的低靜態(tài)電流允許其由處理器的端口引腳供電,允許在不使用時輕松關(guān)斷器件。
圖1.升壓轉(zhuǎn)換器在其自舉模式下工作,從而提高了其效率。低功耗比較器降低了用于為微處理器提供時鐘的32kHz振蕩器的電流消耗。
基于閃存的 Atmel AVR AT90S2313 微控制器提供多功能指令集,使其易于在需要低處理器開銷的電路中使用。它包括一個8位定時器(在本設(shè)計中用于測量MAX6576的輸出)和一個16位定時器(用于測量采樣間隔2313分鐘)。處理器在低功耗模式下空閑,僅在中斷時喚醒,從而進一步降低電源電流。乍一看,'2313 似乎為這項任務(wù)提供了太多的 I/O;然而,考慮到電路以后可能需要擴展到更大的系統(tǒng)中,'<>提供了大量的“面向未來”。
AT90S2313的一個缺點是無法使用32kHz晶體工作。實際上,當(dāng)時鐘工作在1MHz與32kHz時,電源電流變化不大,但時鐘速度越快,定時環(huán)路就會變得棘手。為了解決時序問題,采用MAX931比較器設(shè)計了外部晶體振蕩器(見圖1)。該比較器僅消耗3μA靜態(tài)電流,因此在整個電路工作期間保持供電,而不會顯著縮短電池壽命。一個10MΩ電阻將比較器偏置到其線性區(qū)域,一個1MΩ電阻緩沖比較器輸出擺幅的晶體。
圖2.溫度傳感器、處理器、存儲器和上電復(fù)位監(jiān)控器,以及圖32所示的升壓轉(zhuǎn)換器和1kHz振蕩器,都包含在安裝在汽車發(fā)動機艙內(nèi)的數(shù)據(jù)記錄板上。
E2存儲器的選擇方式與許多組件的選擇方式相同 - 它位于組件機柜中(見圖2)。為了不使E2存儲器過載,選擇了十分鐘的采樣率;此外,該采樣率提供了足夠的分辨率,可以看到溫度變化。因此,內(nèi)存必須每小時保存 6 個結(jié)果、每天 144 個結(jié)果或每月(4464 天)保存 31 個結(jié)果。Atmel AT24C128 內(nèi)存芯片是 128k 位,排列為 16k 字節(jié),因此記錄器可以在溢出之前記錄 113 天的數(shù)據(jù)。存儲器在I2C總線上尋址,因此將來可以擴展電路,而無需額外的處理器I/O引腳。工作時消耗 2mA,待機時消耗 6μA。此外,該設(shè)備由Microchip二次采購,從而消除了生產(chǎn)周期中潛在的麻煩。
處理器上增加了一個上電復(fù)位監(jiān)控器,以確保在啟動和掉電條件后正常運行。由于靜態(tài)電流非常寶貴,因此選擇MAX6346UR46D3,因為它的靜態(tài)電流為1μA (最大值為1.75μA)。
UART和RS-232收發(fā)器被添加到單獨的電路板上,因為在記錄過程中不需要它們(圖3)。記錄板和UART板通過用處理器代碼編寫的SPI接口連接;記錄器的微控制器直接連接到UART的SPI接口。MAX3232E RS-232收發(fā)器使用比舊RS-232器件更快的電荷泵頻率,因此只需要0.1uF電容。該器件提供 ±15kV 的 ESD 保護。
圖3.UART和RS-232收發(fā)器安裝在插件板上。該板僅在從數(shù)據(jù)記錄器板中提取數(shù)據(jù)時才起作用。
設(shè)計過程
選擇元件后,對電路的電流消耗進行粗略估計,以確定使用哪種升壓轉(zhuǎn)換器以及要包含多少電池。由于做出這些選擇并不是一門精確的科學(xué),因此使用了小型低成本升壓轉(zhuǎn)換器,該轉(zhuǎn)換器具有足夠的能力為電路供電;該器件MAX1605可在30V時提供5mA電流(圖1)。為了確定是否需要一個或兩個電池為電路供電,必須估計從電池中排出的電流。該過程的第一步是將各種IC的靜態(tài)電流和工作電流相加;必須考慮這兩種電流,因為電路同時在待機模式和活動模式下工作。
處理器和 E2 內(nèi)存的電源電流均針對空閑模式和完全運行指定。假設(shè)溫度傳感器在室溫下給出約50ms的輸出周期,則假設(shè)處理器和內(nèi)存每100分鐘完全運行約10ms,對應(yīng)于0.016%的占空比。這兩個器件的全7mA工作電流構(gòu)成了電路工作電流的大部分,在整個占空比內(nèi)產(chǎn)生1.16μA的平均電流。因此,僅使用每個電路元件的待機電流之和來計算功耗,因為全工作電流對待機電流的加法可以忽略不計。
圖中顯示了電路中所有器件的靜態(tài)電流 下面:
表 1.
裝置 | 工作電流 | |
25°C | 最壞情況 | |
AT24C128 | 6μA | |
AT90S2313 | 750μA | 750μA |
MAX6346 | 1μA | 1.75μA |
MAX6576 | 140μA | 250μA |
MAX931 | 11μA | |
MAX1605 | 144μA |
表 1.雖然此表列出了每個IC的平均工作電流,但此處列出了AT24C128 EEPROM和AT90S2313微控制器的待機電流,因為它們僅在獲取溫度讀數(shù)的短時間內(nèi)處于活動狀態(tài)。
確定MAX1605的靜態(tài)電流凸顯了低功耗領(lǐng)域關(guān)于如何指定元件靜態(tài)電流的爭論。應(yīng)將其指定為器件的“獨立”電流還是在典型電路中工作時?MAX1605數(shù)據(jù)資料列出了18μA的靜態(tài)電流,該電流流入MAX1605的Vcc引腳,反饋引腳被迫略高于其調(diào)節(jié)電壓。這是器件的獨立電流 - 衡量器件電流消耗的良好指標(biāo),與其外部組件無關(guān)。然而,為了更好地了解電路的靜態(tài)電流,必須在無負載工作時測量電路,從而考慮開關(guān)損耗和元件功耗。該測量結(jié)果為上表中列出的144μA工作電流。
圖4.構(gòu)成該數(shù)據(jù)記錄板的元件的緊湊布局減少了在測試和實際工作條件下遇到問題的機會。
將每個器件在5V時的電流消耗相加,可以猜測電池最壞情況下的電流消耗。所有由 5V 電源軌供電的器件的總電流消耗為
6μA + 750μA + 1.75μA + 250μA + 11μA = 1.02mA。
當(dāng)兩節(jié)電池為電路供電時,假設(shè)平均電池電壓為2.8V。要將上述功耗圖轉(zhuǎn)換為電池必須提供的電流,必須首先將其乘以 5/2.8。假設(shè)效率約為 80%,則結(jié)果必須除以 0.8。MAX1605的電流消耗(144μA,由電池電壓供電)相加。因此,預(yù)計電池的電流消耗為2.42mA。請注意,如果僅使用一個電池,則此電流大約是該數(shù)字的兩倍。
為了交叉驗證上述假設(shè),測量了電池的電流消耗,發(fā)現(xiàn)為1.88mA,證明該理論與實踐相去不遠。
現(xiàn)在可以確定用于為一個月的日志記錄數(shù)據(jù)供電的電池。金霸王AA堿性電池的容量為2.7A小時。串聯(lián)的兩個電池具有與單個電池相同的電池容量,因為流過兩個電池的電流量相同。因此,當(dāng)對數(shù)電路消耗2.42mA時,電路可以記錄數(shù)據(jù)的最長時間為
2.7A-小時/(2.42mA × 24 小時) = 46 天。
將電池數(shù)量減少到一個將使電池排出的電流增加一倍,電池壽命僅為 23 天;需要兩個單元格。然而,鑒于上面計算的電流消耗是近似值,允許 46 天的記錄時間應(yīng)該確保在 31 天內(nèi)有足夠的電池電量 - 盡管對電路存在其他威脅,如電池自泄漏、溫度對電池的影響或環(huán)境溫度超過 85°C 大幅增加。
當(dāng)電源連接到電路的其余部分時,輸出鉭電容兩端的輸出電壓為5.04V,紋波電壓為60mVpk-pk。該紋波電壓與MAX400輸出端電解電容測得的1605mV紋波電壓形成鮮明對比,表明在任何DC/DC轉(zhuǎn)換器電路中都需要使用低ESR電容。由于MAX1605是自舉的(由其自身的輸出電壓供電),并且芯片不直接接觸輸入電壓,因此我們可以對輸入電容規(guī)格更加寬松;使用33uF電解電容器。在MAX1605直接連接到輸入電壓的情況下,鉭電容應(yīng)與0.1uF陶瓷電容并聯(lián),并靠近Vcc引腳放置。
順便提一下,選擇MAX1605的自舉工作模式是因為MAX1605內(nèi)部FET的電壓增加,因此該模式的轉(zhuǎn)換器效率略高于非自舉模式。此外,一旦器件啟動,它就會由自身的5V供電,允許電池電壓在轉(zhuǎn)換器停止工作之前衰減到低得多的電壓,從而使自舉模式成為電池操作的理想選擇。MAX1605的啟動電壓為2.3V(數(shù)據(jù)資料規(guī)定最大啟動電壓為2.4V),但一旦工作,輸入電壓可以降至1.0V,轉(zhuǎn)換器繼續(xù)工作。這進一步保證了電池可以在不影響電路運行的情況下顯著放電。
軟件
代碼是作為一系列子例程編寫的,這使得它更易于閱讀、編寫和調(diào)試。為了節(jié)省電量,處理器在僅運行其內(nèi)部計時器的情況下空閑,并且如上所述,每十分鐘喚醒一次以記錄溫度。處理器在被計時器溢出中斷時喚醒,計時器溢出是通過用正確的數(shù)字預(yù)加載處理器的 16 位計時器來創(chuàng)建的,以使寄存器在 10 分鐘后溢出。使用 32.768kHz 晶體意味著每 19 分鐘需要 10 萬個時鐘周期。16 位計數(shù)器在 65536 計數(shù)后溢出,因此添加了 1024 預(yù)分頻器。10 分鐘后,添加預(yù)分頻器,計時器計數(shù)為 19200([60 × 10 × 32768]/1024)。為了確保計時器在 10 分鐘后溢出,它預(yù)加載了 (65536 - 19200) = 46336:相當(dāng)于 B5十六進制被加載到頂部 8 位寄存器中。
一旦進入中斷程序,處理器等待MAX6576輸出端出現(xiàn)上升沿,然后啟動8位定時器。由于 8 位定時器只能計數(shù)到 256,因此還必須為該定時器選擇合適的預(yù)分頻器。記錄儀預(yù)計看到的最高溫度估計為100°C。 MAX6576設(shè)置為160us/°K輸出時,輸出周期為59.68ms。這個周期相當(dāng)于 1955 個時鐘周期的計數(shù)。使用預(yù)分頻器8可將計數(shù)減少到244,但同時降低了測量的分辨率。在沒有預(yù)分頻器的情況下運行允許處理器將溫度分辨率為 1/5 度 (1/[160us × 32768]);使用預(yù)分頻器,分辨率降至8/5°C。 不過,預(yù)分頻器引起的精度下降不會顯著影響電路的精度。然而,在溫度圖中可以清楚地看到8/5°C的分辨率。
測量結(jié)果并將其加載到E2存儲器中。I2C例程是作為一系列子例程編寫的,用于處理數(shù)據(jù)和確認的讀取和寫入操作。然后將這些子例程合并到另外兩個子例程(Writemem 和 Readmem)中,因此在執(zhí)行過程中只需要調(diào)用這兩個子例程,這使得 I2C 噩夢變得微不足道。由于E2存儲器需要10ms進行編程,因此在寫入周期結(jié)束時增加了一個延遲例程。
最后,從以前的項目中竊取了一個通用的UART例程;程序中的變量根據(jù)需要進行了更改。
測試
電路組裝完畢,留置2天記錄數(shù)據(jù)。記錄器每天增加約30秒,這并不完全達到預(yù)期的<>ppm;目前正在對此進行進一步調(diào)查。
處理器軟件允許通過選擇端口引腳(引腳 4)來寫入或讀取 E2 存儲器。該引腳在記錄期間焊接得很低,在回讀期間焊接得很高。溫度結(jié)果與預(yù)期不符。發(fā)現(xiàn)這個問題是由于MAX0缺少1.6576uF旁路電容造成的。由于該電容器,溫度傳感器上電和記錄其結(jié)果之間需要延遲。此延遲的長度取決于端口引腳的電流限制,該限值與定時電容器的值一起決定了定時電容器的充電時間。一旦插入電容器并增加延遲,記錄器就被設(shè)置為再記錄兩天。第二次下載顯示了一組與作者期望一致的結(jié)果。
表 2.
計數(shù) | 溫度/°C |
192 | 20 |
191 | 18 |
191 | 18 |
191 | 18 |
191 | 18 |
溫度 °C = [(計數(shù)/160us) × (8/32768)] - 273
表 2.該數(shù)據(jù)表示記錄電路連續(xù)獲取的五個讀數(shù),以及相應(yīng)的溫度。
一旦從電路中清除了所有錯誤,插入電池座,牢固地安裝電路并連接電池。時間是7年30月18日晚上2001點3分。初始電池電壓測量為19.<>V。
然后將電路牢固地安裝在提交人汽車的引擎蓋下,緊挨著電池。汽車電池安裝在發(fā)動機最涼爽的部分之一,以防止電解液沸騰,因此可以保證電路不會變成木炭混亂。
然后等待開始了...
結(jié)果
30天后,取出數(shù)據(jù)記錄儀并進行檢查。它(令人驚訝)被發(fā)現(xiàn)完好無損,每10分鐘記錄一次。電池電壓已降至2.62V,證實了最初的計算,即電路中將留下足夠的壽命。電池已斷開,端口B引腳4焊接為高電平以防止內(nèi)存損壞。數(shù)據(jù)被下載到PC中(作者使用了一個粗糙的Visual Basic例程)并加載到一個文件中。數(shù)據(jù)是使用Microsoft Excel繪制的。
結(jié)果符合預(yù)期,盡管沒有注意到極端溫度。這可能是由于記錄儀安裝在發(fā)動機艙相對涼爽的區(qū)域,以及2001年144月下旬和25月上半月英國的溫和天氣。取讀數(shù)的平均值(每<>個結(jié)果的平均值,即一天)使我們能夠確定環(huán)境溫度的變化。測量溫度在第<>天明顯升高。這確實與當(dāng)時英格蘭南部的溫和熱浪相對應(yīng)。
圖7.此溫度與時間的關(guān)系圖顯示了收集的各個溫度讀數(shù)以及這些讀數(shù)的 1 天移動平均值。
進一步發(fā)展和結(jié)論
毫無疑問,所使用的處理器不是市場上功耗最低的設(shè)備。但是,它為該任務(wù)提供了一個方便的解決方案。如果需要更長的記錄時間,或者如果 2 芯堿性電池組不可行,市場上有些設(shè)備消耗的功率要少得多。保持盡可能低的時鐘頻率也會降低這種電流。
在整個日志記錄過程中,無法確定內(nèi)存是否已損壞。對軟件的簡單修改可以允許在連續(xù)日志之間下載E2內(nèi)存,以確保數(shù)據(jù)完好無損。
該電路最初旨在提供一個通用數(shù)據(jù)記錄平臺,以評估各種模擬和數(shù)字傳感器。因此,包括DC/DC轉(zhuǎn)換器,為所有電路提供恒定的5V。如果傳感器不需要 5V,則處理器和內(nèi)存可以直接在電池電壓下工作,前提是相應(yīng)地更改上電復(fù)位監(jiān)控器。
該電路按預(yù)期工作,令人驚訝地承受了應(yīng)用工程師擁有的汽車的振動。結(jié)果顯示了良好的數(shù)據(jù)分布,有趣的是,沒有觀察到預(yù)期的極端溫度(100°C +)。但是,如果在埃及的夏日重復(fù)此實驗,結(jié)果可能會略有不同。
圖8.在數(shù)據(jù)記錄的第一周獲取的數(shù)據(jù)圖中,可以明顯看出8/5°C的溫度分辨率。
審核編輯:郭婷
-
溫度傳感器
+關(guān)注
關(guān)注
48文章
2892瀏覽量
155793 -
接口
+關(guān)注
關(guān)注
33文章
8447瀏覽量
150723 -
微處理器
+關(guān)注
關(guān)注
11文章
2244瀏覽量
82267
發(fā)布評論請先 登錄
相關(guān)推薦
評論