簡介
電阻的特點是阻擋電能,電阻的關鍵參數有尺寸、阻值、精度和功率。電阻的應用場景非常多,都是圍繞着電阻的特性來使用的。我們重點講一下實際工作中遇到的電阻的功能,理論知識和計算公式就不贅述了。在初學者心目中,電阻就是拿來分壓用的,但是實際項目中,絕大部分電阻都不是當作分壓用的。
電阻的特點是阻擋電能,電阻的關鍵參數有尺寸、阻值、精度和功率。電阻的應用場景非常多,都是圍繞着電阻的特性來使用的。我們重點講一下實際工作中遇到的電阻的功能,理論知識和計算公式就不贅述了。
在初學者心目中,電阻就是拿來分壓用的,但是實際項目中,絕大部分電阻都不是當作分壓用的。
我們統計過,一個Android智能平台的硬體電路中,大約20%的電阻是做上拉下拉使用,30%的電阻做EMC和ESD使用,40%的電阻占位置和跳線,5%的電阻用來做電壓采樣,剩下的最多隻有兩三顆是用來做正經的分壓用途。
且聽我們一一道來:
1上拉下拉
上拉,就是把電路拉高到電源,下拉,就是把電路拉高到地。下面有幾張參考圖。

↑ 圖:上拉電阻
↑I2C總線的上拉電阻,R709和R710。使I2C在無控狀态下保持高電平。
↑ 圖:上拉電阻
↑SDIO總線的上拉電阻,R610,R611,R613、R614。提升外設驅動能力。
↑ 圖:下拉電阻
↑NMOS開關控制腳的下拉電阻,R732。使MOS管在無控狀态下保持關閉。
↑ 圖:下拉電阻
↑LDO開關的下拉電阻,R759。使LDO在無控狀态下保持關閉。
上下拉的主要作用,一是讓線路在無人控制的情況下維持在固定的狀态,二是提升驅動能力。
關于無人控制,很多人會認為,系統開機之後,我配置了這個GPIO口,就可以控制了呀,為什麼存在無人控制的情況呢?
對,開機之後都可以控制,但是系統剛上電,未開機,或者開機過程中,GPIO口卻都是在無控狀态。如果隻供電但還沒有開機,電源的控制腳是一個預設内部上拉的GPIO口,電源就被打開了,經常導緻電流灌進還沒有運作起來的其他GPIO内,導緻上電漏電。
如果開機,開機的過程一般是:上電-複位-電源初始化-跑引導程式-核心運作-應用運作,使用者配置代碼要麼在核心中,要麼在應用程式中,改不到引導程式的。雖然前面無控的時間非常短,可能隻有幾百毫秒,但是有可能導緻某些GPIO口的預設狀态不對導緻外部電源被意外打開,一樣有可能出現漏電的情況。如果是燈的開關,就有可能在開機一瞬間燈亮一下,跑到程式設定的地方才會被關閉。
是以,對于開關腳(EN,enable),選擇GPIO的時候要選擇預設是關閉狀态的GPIO口,保險起見應當預留一個開關上下拉的電阻,用來確定開關腳的預設狀态是對的。
這類開關上下拉電阻,通常用于電源晶片的開關、燈的開關、模拟開關等控制腳上。
這種用法也會用在中斷信号上,通過外加一個上拉電阻,使中斷腳在沒有輸出的情況下保持高電平,一旦輸出低電平,就會被拉下來。反之亦然。
這些上下拉電阻,通常在10KR-100KR之間,電阻小了會導緻漏電大或者GPIO控制不了,電阻大了會導緻和晶片内部上下拉沖突。GPIO輸出電阻一般在10kR以下,内部上下拉一般在100KR上下。(實際上也是兩個電阻分壓的原理)
至于I2C的上拉,是協定要求的。I2C兩根線要求預設是高電平,一旦被拉到低電平就會認為有資料要發送了。在I2C主機和從機都沒有控制的情況下,需要維持在高電平。而I2C硬體上都是OC門,沒辦法自己上拉,是以需要外部上拉電阻。這種情況算是個特例。
SDIO接口,就是接SD卡、TF卡的接口,增加10KR-33KR的上拉電阻有助于提高驅動能力。某些小廠生産的比較水的SD卡和TF卡,會不容易被識别到,增加上拉能夠減小不讀卡的機率。
後面還會繼續講解:電阻的用法之ESD,EMC,0歐姆,跳線等使用方式
2. 0歐姆電阻用法
簡介
沒有比電阻更便宜的元器件了,是以電阻被廣泛用于占位置和預留位置。如果沒出問題,就繼續用電阻,如果出了問題,再換成電感、磁珠等其他元器件。通常在電源線上,可以預留0R電阻。本身電阻的寄生電感就可以降低EMC輻射,以及減小電源被外部幹擾的情況。如果0R電阻扛不住,那就換成相同尺寸的磁珠即可,能夠把EMC能力再提升很多。磁珠比電阻貴10-15倍。
圖:硬體工程師理論基礎
沒有比電阻更便宜的元器件了,是以電阻被廣泛用于占位置和預留位置。如果沒出問題,就繼續用電阻,如果出了問題,再換成電感、磁珠等其他元器件。
↑ 圖:Camera電源線上預留0R電阻
通常在電源線上,可以預留0R電阻。本身電阻的寄生電感就可以降低EMC輻射,以及減小電源被外部幹擾的情況。如果0R電阻扛不住,那就換成相同尺寸的磁珠即可,能夠把EMC能力再提升很多。磁珠比電阻貴10-15倍。
電源為什麼會有輻射出來?因為裝置工作的時候并不是固定不變的功耗,從微觀時間來看,裝置工作電流會随着時鐘而抖動,電源則會跟着裝置工作電流的變動而抖動。是以電源上必定會保留去耦電容,大部分時候會預留0R電阻或磁珠。對于一些超高頻的供電,如CPU供電,還需要做電源高頻阻抗仿真。
預留的0R電阻,還能夠當作測試點,友善測量到信号。(如果線路走在PCB内層,就沒有辦法直接測量了)還可以通過斷開0R電阻,來斷開線路,或者飛線調試。0R電阻對于電路調試和測試也是很重要的。
不過這個設計并非沒有弊端,如果線路走在PCB内層,能夠防止電路對外輻射信号,也能夠防止外面的靜電打進來。布置在PCB外層的預留電阻本身也可能成為一個幹擾源。并且前面也講了,電阻雖然便宜,但SMT也要花錢的,預留電阻不可太多,夠用即可。
3.電阻的之跳線
簡介
跳線大家都不陌生,電腦主機闆上,開發闆上,都會留有很多插針式的跳線,用于手工切換線路。但是智能硬體普遍都比較小,留不下插針式的跳線。且多為一次性切換,SMT的時候選擇好就行了,無需使用者自己手工選擇。是以普遍使用0R電阻來做跳線。
跳線大家都不陌生,電腦主機闆上,開發闆上,都會留有很多插針式的跳線,用于手工切換線路。但是智能硬體普遍都比較小,留不下插針式的跳線。且多為一次性切換,SMT的時候選擇好就行了,無需使用者自己手工選擇。是以普遍使用0R電阻來做跳線。
↑ 圖:插針式的跳線
↑ 圖:插針式的跳線
↑ 圖:PCM和I2S相容跳線,以及電源選擇跳線
如上圖,分别是藍牙PCM和音頻CODEC的I2S之間做一個二選一,以及LDO1和LDO4供電二選一。選擇哪一路,SMT的時候就貼那一路的0R電阻,不選的那一路補貼即可。
圖中的DNI是don’t need install的意思,也有DNP(do not present)和NC(not connect)的說法。總之就是SMT的時候無需貼片,出BOM的時候也不需要列出來。
跳線電阻是比較占電路闆面積的,一根走線要配2個電阻的面積,對于4根走線的要8個電阻。如果空間比較小,可以采用下圖的共用焊盤的跳線電阻的方式,兩個電阻有一個焊盤是公用的。這樣可以節約1/3左右的面積。
↑ 圖:省空間的跳線電阻Layout示意圖
跳線有時候會被稱為“相容設計”,就是一種電路闆設計方案可以同時支援幾種不同的配置。
在電路設計的時候,我們很難做到所有的方案都提前驗證好,不管是沒有開發闆,還是飛線飛不出來,或者是沒時間。經常會有幾種備選方案,例如GPIO口選哪個比較好?供電用内部的還是外部的?這顆晶片和另外一顆晶片哪個更好用?
PCB闆一旦投下去,就是成本,還有動辄半個月一個月的時間,是以在猶豫不決的地方要做“相容設計”。既然不知道哪個接口比較好用,那就兩個都留着吧,萬一這個有問題了,重新焊一下就解決了,不需要再花費大半個月的時間改PCB闆了。
硬體設計中,用過的、測過的才是相對準确的。僅理論可行但沒有用過的設計,一定要小心。要有做相容設計的思維,才能保證項目風險可控,才能不因為設計錯誤導緻硬體報廢重做。
4 采樣電阻
簡介
電壓或電流的采樣,是電阻最正統的使用方式之一。雖然用的很少,但是嚴格遵循了安培定律,大家在國中實體上學的知識有用武之地了!這是4.2V锂離子電池充電電路,前面的PMOS和二極管先不用看,隻看後面這顆0.2ohm 1%的電阻。電阻兩端,一端是IS(I Sense),電流檢測的意思,另一端是VBAT,就是電池。IS和VBAT都會接入到系統的ADC,I charge =(Visense-Vbat)/
電壓或電流的采樣,是電阻最正統的使用方式之一
雖然用的很少,但是嚴格遵循了安培定律,大家在國中實體上學的知識有用武之地了!
↑ 圖:充電電流采樣電阻
這是4.2V锂離子電池充電電路,前面的PMOS和二極管先不用看,隻看後面這顆0.2ohm 1%的電阻。電阻兩端,一端是IS(I Sense),電流檢測的意思,另一端是VBAT,就是電池。IS和VBAT都會接入到系統的ADC,I charge =(Visense-Vbat)/0.2。
這個方式通常用于1A以下的充電電流檢測。電流越大,電阻分壓就越大,如果用2A充電,5V的充電器,經過線路損耗、Pmos和二極管,再減去檢測電阻的電壓,就不到4.2V了,充電就充不滿了。
對于此類大電流流過的電阻,一定要計算功率,不然有燒掉的風險。例如1A,0.2ohm,算下來功率在0.2W,0805封裝1/8W的電阻勉強夠用,1206封裝1/4W的電阻就比較好了。
采樣電阻能不能做的更小呢?答案是可以的。大電流情況下肯定是要用小的采樣電阻。很多高精度毫歐級的電阻都是用來做大電流采樣的。但是不能做的太小。例如1A 0.2ohm的時候,電壓差在0.2V,如果用0.05ohm的電阻,電壓差就隻有0.05V了,此時如果檢測50mA的充電電流(充電截止電流),電壓差就隻有2.5mA,一來容易被幹擾,二來對ADC的精度要求太高。是以檢測電阻要和檢測電流比對才行。
↑ 圖:LCD背光電路電流回報采樣電阻
這是一顆LCD串聯背光驅動晶片,LCD的背光是一串或多串白光LED燈,晶片将4.2V的VBAT升壓到十多伏,驅動串聯的LED燈。例如一顆燈是3.3V,5顆串聯就是16.5V。
LED對電流特别敏感,電流稍有波動,就能夠看到LED在閃爍。需要一個電流采樣作為回報信号輸入給驅動IC。
這個示例中用的是2串串聯燈,每一串LED的工作電流是20mA,2串LED并聯就是40mA。驅動IC設計要求FB(feedback)腳上的電壓要固定在200mV,是以得出電阻需求是200mV/40mA=5ohm。于是選擇使用了5.1R_1%的電阻。(5ohm不常見,選了常見的5.1ohm)。
這顆電阻的作用也可以認為是提供了背光驅動晶片的參考電壓。
↑ 圖:參考電壓 R1704
↑ 圖:參考電壓 R1703
這個例子是聯芯1860C處理器上的兩組參考電壓,200R_1%是提供給USB的參考電壓,4.02K_1%是提供給攝像頭ISP的MIPI接口的參考電壓。
這些精密電阻的值,都是由晶片原廠提供的,晶片是人家設計的,咱們就不要亂動了,老老實實按照參考設計來吧。
原文來自燚智能硬體開發網