IIC總線測試總結(jié)
前一段時(shí)間在做板卡信號完整性測試。
本文引用地址:http://m.butianyuan.cn/article/201701/338093.htm信號完整性測試主要是對信號質(zhì)量進(jìn)行測試,觀察信號電平是否滿足門限,有無過沖、振蕩、回溝,時(shí)序是否滿足要求等。
由于在產(chǎn)品需求層面,是不會(huì)將信號質(zhì)量作為一項(xiàng)需求提出,因此很多時(shí)候在歸檔的測試報(bào)告中只會(huì)存在功能測試報(bào)告,而是將信號完整性測試報(bào)告作為內(nèi)部公開的一份參考資料,但這并不意味著我們可以減少對信號完整性測試的重視程度,因?yàn)樾盘柾暾詼y試往往能夠發(fā)現(xiàn)很多潛在的風(fēng)險(xiǎn),比如自己在以前的測試中就遇到過低電平門限是0.8V,而測得的信號低電平也接近0.8V,雖然在功能上的驗(yàn)證是正常的,但這就是一項(xiàng)風(fēng)險(xiǎn)項(xiàng),很有可能在量產(chǎn)上市后,隨著長期運(yùn)行或者環(huán)境改變,而導(dǎo)致故障,后來通過調(diào)整串阻阻值,降低了信號低電平,規(guī)避了風(fēng)險(xiǎn);還有調(diào)整FPGA時(shí)序改善信號時(shí)序余量等很多由信號完整性測試發(fā)現(xiàn)解決的潛在風(fēng)險(xiǎn)項(xiàng)。
另外,信號完整性測試很多時(shí)候還能提前規(guī)避掉很多電磁干擾問題,減少后期整改的工作。比如過陡的邊沿或過大的過沖,有時(shí)會(huì)是輻射發(fā)射的來源;
最后,通過信號完整性測試,將所有信號都控制在器件的要求范圍內(nèi),這也提高了器件的工作可靠性,保障其工作壽命。
綜上所述,不僅不能還應(yīng)該更加重視對信號完整性的測試。
在有些公司,信號完整性測試又稱之為單元測試,這是因?yàn)樾盘柾暾詼y試需要覆蓋板卡上的每一個(gè)元器件。
對于信號完整性測試的方案制定方法。個(gè)人的理解,應(yīng)該關(guān)注每個(gè)器件的輸入端口,主要又分為信號電平(一般需測試高電平電壓、低電平電壓、上沖和下沖)和信號時(shí)序(一般需測試建立時(shí)間和保持時(shí)間),具體根據(jù)器件手冊制定,信號測試點(diǎn)也應(yīng)該選擇最靠近器件輸入端口處的位置;而對于器件的輸出端口,是不需要關(guān)注的,因?yàn)檫@是器件自身特性所決定的。
二、IIC總線操作過程說明
對于IIC總線,自己以前很少用到,只對某塊板卡上一片預(yù)留的INTERSIL的IIC接口光傳感器寫過驅(qū)動(dòng)進(jìn)行功能調(diào)試。這次是第一次認(rèn)真對IIC總線進(jìn)行了信號完整性測試。
IIC總線由時(shí)鐘線SCL和數(shù)據(jù)線SDA組成,設(shè)備連接到總線上的輸出端為OD或OC輸出,總線電平由外部上拉電阻決定。IIC總線速率分標(biāo)準(zhǔn)模式100Kbps,快速模式400Kbps和高速模式3.4Mbps。IIC總線上最多可以掛接400pf容性負(fù)載,掛接設(shè)備數(shù)量受此限制。IIC總線的運(yùn)行由主機(jī)控制,被主機(jī)尋訪的設(shè)備稱為從機(jī),每個(gè)接到IIC總線的設(shè)備都有一個(gè)唯一的地址,以便于主機(jī)尋訪。
本次IIC信號完整性測試的其中一個(gè)器件為IIC接口的EEPROM,用作一個(gè)MCU的配置信息存儲(chǔ)芯片,MCU每次上電后均會(huì)去讀取配置,也可以執(zhí)行對EEPROM的配置升級操作。對于EEPROM,讀寫過程都要測試。由于進(jìn)度緊張,自己未經(jīng)思考,首先在上電時(shí),選擇在MCU的IIC接口處測試EEPROM的讀過程;然后再執(zhí)行EEPROM配置升級命令,并在EEPROM的IIC接口處測試EEPROM的寫過程。
但在測試過程中,卻越來越感覺困惑,比如時(shí)序測試中有一項(xiàng)tSU:DAT參數(shù),表示START信號的建立時(shí)間,但在測試寫過程中,往往就很難捕捉到。隨著測試的進(jìn)行,困惑的地方越來越多,于是自己覺得該停一停,看看究竟測試方法有沒有問題。
稍稍冷靜下,讀了下器件手冊,很快便發(fā)現(xiàn)了問題所在,自己還停留在以前測試的慣性思維中,認(rèn)為讀就是數(shù)據(jù)讀出,而寫就是數(shù)據(jù)寫入,沒有對IIC總線操作過程作一思考。
對于IIC寫過程,一般而言有如下幾種情況:
圖1 IIC總線寫操作過程
分為Byte Write和Page Write,Byte Write一次寫入一個(gè)數(shù)據(jù),Page Write一次可寫入多個(gè)數(shù)據(jù)。在未進(jìn)行寫保護(hù)(WC為低時(shí))才能進(jìn)行寫操作。
對于Byte Write,分為以下幾個(gè)過程:
1、由主設(shè)備發(fā)出START信號;
2、由主設(shè)備發(fā)出DEV SEL信號,DEV SEL為從設(shè)備的識別碼,一般由7位組成,高四位為每類IIC設(shè)備特有,低三位通過從設(shè)備外部引腳配置得到,如圖2所示的E2、E1、E0三個(gè)引腳;
圖2 IIC設(shè)備引腳圖
3、主設(shè)備在發(fā)出DEV SEL信號后,需繼續(xù)發(fā)出一位“讀/寫控制位(R/W)”,以表示接下來執(zhí)行的是何種操作。此時(shí)該位應(yīng)置為低(寫操作);
4、從設(shè)備進(jìn)行ACK應(yīng)答,為低電平;
5、主設(shè)備發(fā)出Byte addr信號,即要將數(shù)據(jù)寫入到從設(shè)備的單元地址,圖中所示為16位地址帶寬,主設(shè)備每發(fā)出8位地址,從設(shè)備進(jìn)行一次ACK應(yīng)答;
6、主設(shè)備寫入8位數(shù)據(jù),從設(shè)備應(yīng)答,之后主設(shè)備發(fā)出STOP信號,結(jié)束此次寫操作。
對于Page Write,其過程與Byte Write基本一致,僅僅是其在寫入多個(gè)數(shù)據(jù)后,才由主設(shè)備控制發(fā)出STOP信號,結(jié)束寫操作。
對于IIC讀過程,一般而言有如下幾種情況:
圖3 IIC總線讀操作過程
分為Current Address Read、Random Address Read、Sequential Current Read、Sequential Random Read。后兩種讀模式與前兩種讀模式的區(qū)別僅僅在于后兩種是一次讀出多個(gè)數(shù)據(jù),因此不作累述。
評論