一,單端邏輯電平匹配
單端邏輯電平的匹配是我們平時在硬件設計中最經常碰到的,我們在《TTL&CMOS電平》章節中已經對TTL和COMS電平的匹配設計做了一些分析,一般3.3V LVTTL和LVCMOS是可以直接相互驅動的。但是其它不同邏輯電平之間呢?舉個栗子,3.3V邏輯電平和1.8V邏輯電平之間呢?
1,門電路電平匹配方案
如下圖所示,利用三極管/MOS管搭建不同電平之間的電路匹配;
1, 三極管/MOS管本身切換時間比較慢(具體原因分析,請參考《三極管基礎》和《MOS管結構和原理》相關章節);
2, 三極管/MOS管在B/G極需要達到一定的電壓才能導通三極管/MOS管,而在此電壓之前三極管/MOS管不會有大動作(開關),會造成一定的延時。
- 對于較低速率信號,如上右圖所示UART數據傳輸,可以通過三極管來實現不同電平的匹配和防掛死;
——對于數據(非電平狀態)的傳輸,需要對三極管相關參數進行設計,保證其在特定傳輸速率下能夠正常工作(信號邊沿時間,占空比,傳輸延時以及三極管/MOS管支持的最大開關頻率等等)。
- 三極管/MOS管的開啟電壓VBE/VGS(th) 大小,一般情況下SOT23封裝的三極管/MOS管極限開啟電壓(最大值)可能在1V左右,所以如果是電壓在1.0V左右,采用該電平轉換方案存在一定的風險;
- 如左上圖所示結構,如果采用三極管/MOS管來作為電源是否OK的判斷,那么需要確定確定監測門限,來確定對輸入電壓的分壓大?。?/li>
——舉個栗子,假如監測2.5V電源是否OK,如果直接輸入至MOS管G極,其開啟電壓:VGS(th)假設為1.0V,那么當2.5V電源電壓上升至1.0V時,我們就認為2.5V這路電源電壓OK了,這是有問題的;需要對2.5V電源電壓進行分壓,比如串聯1KΩ后再下拉1KΩ,進行50%電源電壓的分壓,那么當2.5V電源電壓上升為2.0V時我們才判斷其電源電壓OK。當然這是一種粗略且方便的監測設計。
2,邏輯器件電平匹配方案
如果規模較大的硬件電路,我們往往會CPLD來作單板的管理和信號匯聚功能(具體關于CPLD的設計及功能,后續在《硬件詳細設計流程-CPLD設計》中詳細描述)。我們知道CPLD的I/O管腳有很多個不同的Bank組成,而不同的Bank可以支持不同的供電電源。如下圖所示,為Lattice MachXO2系列CPLD支持的不同單端I/O電源電壓;其支持1.2V~3.3V的多種電平電壓,基本上可以涵蓋了一般硬件電路中所涉及到的電平。
那采用CPLD實現不同邏輯電平之間的轉換,舉個栗子(如下圖所示):器件A是1.2V邏輯電平需要接到3.3V邏輯電平的器件B,設計CPLD的Bank0可以供1.2V而Bank1供3.3V,那么將器件A的信號接至CPLD的Bank0,而器件B的信號接至CPLD的Bank1;只要在CPLD邏輯內部將器件A和器件B的信號線連在一起,就完美地實現了電平轉換。但在實際硬件設計上有這么完美么?(完美只存在于“理念世界”)
- CPLD有VCC和VCCIO兩種電源,VCC電源(Core 電源)和VCCIO電源是否有什么關系呢?
1, VCC電源電壓要求與VCCIO不一樣,如下圖所示(Lattice MachXO2系列CPLD支持的Core 電壓),core電源電壓與VCCIO電源電壓本質上是兩種不同的電源需求;所以兩者可以合用也可以分開來提供,看怎樣簡單;
2, CPLD器件本身的上電時序,一般會要求VCC要先于或同時于VCCIO上電(后續《硬件詳細設計:單板電源分析》詳細介紹),否則可能會導致漏電,即VCCIO漏向VCC。
- 當單板中有多個器件使用了同樣的電壓,但那些器件由于上電時序的控制要求(或則布局要求,電源本身特殊需求等等),不能同時上電;那么CPLD的VCCIO電源要如何設置呢?
——舉個栗子,器件A的I/O電源電壓是+1.2V,器件B的I/O電源電壓也是+1.2V,但是器件A的I/O電源電壓要早于器件B上電,那么CPLD的VCCIO電源要選哪個呢?
1, 建議CPLD的VCCIO電源選擇最早的那路,因為一些信號(舉個栗子:復位、時鐘等)需要器件上電時就要有明確的狀態輸入,如果CPLD的VCCIO電源較遲上電,那么會導致器件上電和CPLD 的VCCIO上電間隙的狀態不確定;
2, CPLD的VCCIO電源早于器件的I/O電源上電,那么在器件的I/O電源還未上電時,CPLD輸出的信號線上就有高電平輸出到器件I/O管腳上,那么會導致電源電流的倒灌,并產生漏電壓;
——舉個栗子,如下圖所示:P3V3_COM電源先于P3V3_IO上電,當在上電時序間隙,P3V3_COM電源會沿著輸入管腳,通過防護二極管漏導P3V3_IO,使得P3V3_IO電源電壓抬升;但電源電壓被抬升就一定不允許么?1,如果器件資料中明確漏電壓必須小于的電壓值,那么必須嚴格執行;因為器件一旦監測到該路電源超過了某電壓值,就表示開啟了Power On 流程,但實際上漏電流無法支持器件正常工作所需的電流,會導致器件異常(可能需要完全下電后才能恢復);2,如果器件資料未明確規定漏電壓的大小,建議漏電壓小于0.5V。
- 我們已經明確了CPLD選擇的VCCIO電源要早或同時于其它器件的上電時序,但是也會引入漏電壓的問題,那如何來解決?
1, 與CPLD相連的信號線上拉電源,均使用器件側I/O電源電壓(而不是CPLD的VCCIO電源),這樣避免了由于上拉電源導致的漏電流(如上圖所示);
2, CPLD監測單板各路電源的上電狀態,
(1)對于CPLD輸出管腳:在監測到對接器件I/O電源上電之前,輸出保持高阻態,在監測到對接器件I/O電源OK后,輸出正常邏輯狀態;
(2)對于CPLD輸入管腳:保持輸入狀態,在監測到對接器件I/O電源上電之前,不對輸入信號做響應。
3, 特殊信號,舉個栗子:復位信號;器件要求上電之前需要保持低電平,而如果信號外接是通過電阻上拉,則需要特殊處理,以保持滿足器件的要求。
——對不同的信號做不同的處理:由具體的器件、硬件系統以及應用需求所決定,并非有一個絕對的標準可遵循;所以做硬件設計之前,首先需要明確的是產品應用需求,然后分解系統需求,再是硬件需求,然后才是選擇器件,制定硬件設計方案,我們所設計的每個器件、每條走線都是從上述需求中分解下來了的,可以進行驗證和解釋的。
- 解決了上述漏電壓的問題后,CPLD方案也并非是一個萬能的解決方案;如下圖所示,CPLD內部的傳輸延時會比較大(typ:7ns左右),一般情況下7ns的延時是不會產生影響的,但是對于較高速的總線傳輸來說就會有問題了;此時最好采用專用電平轉換器件(延時:百ps級別)。
——舉個栗子:50MHz的SPI總線通過CPLD進行電平轉換(3.3V—>1.8V),此時的讀時序就會受到非常大的影響,導致讀失?。P于SPI總線的讀時序,后續《總線設計基礎》詳細分析)。
采用CPLD實現電平轉換的設計,雖然整體看起來有點復雜,但這是系統性解決整板電平匹配最簡潔、方便的方案。同時,CPLD由于較好的過沖防護設計,以及輸出驅動可調等特性,所以在很多應用場合可以省去源端匹配電阻設計,進一步簡化單板硬件設計。如下圖所示。
3,專用器件電平匹配方案
這類器件非常多,有4路、8路、16路等驅動器(舉個栗子:74LVX4245MTCX,SN74LVC16T245等等),只要在對應端口的Vcc電源管腳接上對應的電源電壓即可實現電平轉換;其延時小,無需考慮漏電電壓的問題,對于簡單小數量信號線的電平轉換是非常好的選擇。
除此之外,我們還經常會用到IIC(OD,雙向)的電平轉換器件,這類雙向數據傳輸的電平轉換,如果采用CPLD,實現起來需要比較復雜的邏輯(需識別讀、寫操作),所以使用專用電平轉換器件會方便很多,舉個栗子:PCA9517等。
另外,還有一類是自動識別方向的雙向電平轉換器件,這類器件無需進行方向控制,可以自動識別并進行驅動,舉個栗子:TXS0108EPWR等;其好處是使用方便,缺點是如果信號質量設計有問題(不匹配導致過沖),會使得器件的方向識別錯誤,導致產生信號振蕩。
專用器件來實現電平的轉換,對于局部電路來說更加簡單、方便,也是平時硬件設計中最常用的方法,適合兩個器件之間的多個信號的電平轉換;如果一個電平轉換器件對應多個器件之間的互連,或需要大量使用電平轉換器件,那樣會導致單板面積和器件成本的增加;可以考慮CPLD。
-
二極管
+關注
關注
147文章
9675瀏覽量
166994 -
FPGA設計
+關注
關注
9文章
428瀏覽量
26561 -
MOS管
+關注
關注
108文章
2430瀏覽量
67205 -
電源電壓
+關注
關注
2文章
989瀏覽量
24033 -
門電路
+關注
關注
7文章
199瀏覽量
40207
發布評論請先 登錄
相關推薦
評論