日期:2018-07-06瀏覽:4462次
I2C,SPI總線協議測試分析方法技巧
在數位電子電路領域內,當裝置與裝置間需要進行通信連接時,往往會透過總線來進行數據傳輸,在這當中又以I2C(Inter integrated Circuit)以及SPI(Serial Peripheral interface)在電子領域中使用為頻繁。
孕龍科技所推出的I2C-SPI Control Center,透過軟件設定可I2C-SPI Control Center來模擬I2C或SPI之間裝置(Master Device及Slave Device)傳輸狀況,且產品本身所擁有的Batch Mode(批次執行模式)更可加強待測電路分析功能或滿足產線測試需求。
接著我們將逐一說明各項功能來了解I2C-SPI Control Center。
I2C(Inter integrated Circuit)Mode
這是一款由Philips在1980年代為了讓主板、嵌入式系統或手機連接周邊裝置而所研發制定的一種總線,因其構架簡便容易操作,所以演變至今成為各種不同設備裝置間的界面標準。I2C使用兩條信號線做雙向數據傳輸(Serial Data及Serial Clock),接下來將透過測量EEPROM 24LS02來進行功能介紹。
將I2C-SPI Control Center的SDA及SCL連接至待測端的SDA及SCL,開啟I2C-SPI Control Cen-ter軟件后可看到如圖一的軟件界面。
I2C-SPI Control Center
圖一:I2C-SPI Control Cente軟件視窗
待驅動程序安裝完成后,可在視窗上方的Select Device下拉菜單中選擇已安裝的I2C-SPI ControlCenter,接著點選右方的『聯機』按鈕即可進行操作設定。
首先,在I2C模式下操作I2C Master。先設定Slave Address=0X50、Bit Rate=2KHz及Master端的寫入數據為0X00、0X11、0X22、0X33、0X44、0X55、0X66、0X77、0X88、0X99、0XAA、
0XBB、0XCC、0XDD、0XEE及0XFF,設定完畢后可點選右方的寫入按鈕來進行信號發送。動作完成后隨即可在下方Log視窗中看到相關訊息,如圖二所示。
Log視窗
圖二:I2C-SPI Control Center Log視窗
寫入
圖三:使用孕龍邏輯分析儀擷取狀況
1
2
圖三中的方塊1為I2C Clock,可清楚看出目前I2C總線中的Bit Rate為2KHz,方塊2為寫入數據的表示。
搭配上孕龍邏輯分析儀更可清楚表示出,此一數據寫入的動作狀況。
圖四
讀取
操作讀取功能時,方法與寫入功能大致相同,在軟件視窗中可先設定讀取字節數。預設值為5Bytes,在這邊將讀取字節更改為20 Bytes后點下右方的讀取即可進行動作。
同樣的搭配孕龍邏輯分析儀可看出I2C-SPI Control Center讀回的數據內容。
圖五:使用孕龍邏輯分析儀記錄I2C數據內容
名稱說明
Time
可顯示此筆信息出現的時間日期表示當下所操作的模式,共分為I2C、SPI及GPIO顯示該筆信息是由Master De-vice發出或是Slave Device發出Mode
M/S
R/W
顯示此筆數據為讀取動作
(Read)或寫入動作(Write)
Bit Rate表示總線數據傳輸速率
Address表示總線位址
Length
表示總線數據字節
(Data Bytes)數量
Data可顯示出詳細數據數值
圖六:Log視窗
Tip:在I2C-SPI Control Center Log中點擊信息,可將該信息展該如圖六所示
I2C-SPI Control Center還可以進行Slave裝置模擬,可自行設定當Master端下讀取命令時Slave響應的數據內容。
響應數據內容
圖七:I2 C Slave設定畫面
SPI(Serial Peripheral interface)
是由Motorola為能在全雙工方式下進行列表數據傳輸所制定的一種標準界面,采用主/從裝置方式傳輸,一個主裝置可同時與多個從裝置連接。此時主裝置便透過Slave select(chip select)來選擇欲溝通的從裝置。依照不同的應用環境SPI匯流排可操作在四線式狀態下(SCLK、MOSI、MISO、SS),這個時候SPI可擁有全雙工能力。在三線式狀態下(SCLK、DATA、SS)則是半雙工方式,若連接環境較為單純時,則可衍生出兩線式狀態(SCLK、DATA),此時SPI總線上僅只有一個主裝置及一個從裝置。
在I2C SPI Control Center軟件中切換至SPI Mode便可開始操作,在軟件視窗中可以設定SPI總線的取樣模式。SPI總線定義了四種模式分別為模式0、1、2、3,是由Clock Phase及Clock Polar-ity組合而成,圖八說明了SPI Clock在不同SPI模式下對Data取樣位置。
圖八:SPI總線模式取樣點說明(圖中波形為Clock pulse,紅色邊緣為取樣位置)
圖九:SPI Master設定畫面
設定Master
傳送數據內容
設定取樣參數
設定高低位
傳送方向及SS
動作極性
設定傳輸速率
在SPI Master界面中尚可設定其他的參數,如數據高低位傳送方向(Bit Order數據傳輸速率(Bit Rate)及SS動作極性(SS Polarity)。
如同操作I2C Mode般,在SPI Mode中也支持SPI Slave裝置模擬,使用者可設定Slave裝置響應的內容來測試Master端反應狀況。
圖十:SPI Slave設定畫面
當環境設定完成后按下寫入功能時,便可依照設定數據內容進行SPI總線數據發送。搭配邏輯分析儀可明顯看出主/從裝置數據傳輸狀況。
圖十一:孕龍邏輯分析儀記錄SPI數據內容
GPIO(Generator Purpose Input / Output)
GPIO為通用型輸入輸出界面的簡稱,常出現在MCU上(Micro Control Unit,微控制器),使用者可自行定義GPIO內每一根腳位為輸入狀態或是輸出狀態。
在I2C-SPI Control Center中亦支持此種模式,能夠提供8 Bits GPIO進行操作,使用者可自定每一支腳位的輸入/輸出狀態,下圖為I2C-SPI Control Center GPIO Mode的設定畫面。
圖十二:I2C-SPI Control Center GPIO Mode
Direction:選擇每一bit為輸入/輸出
狀態
Pull Up:選擇I/O是否開啟上升電阻(阻值約30K歐母)
Out Set: Output時
所輸出的數據狀態
設定
In Value: Input時所
接收的數據狀態
I2C-SPI Control Center為孕龍科技所推出的新產品,能夠依照需求進行I2C、SPI裝置信號模擬,也能夠透過GPIO來發送/接收數據。同時除了上述三種模式之外,I2C-SPI Control Center擁有I2C、SPI觸發功能,所支持的Batch模式可以更加靈活的模擬裝置反應,下期將針對I2C / SPI Trigger及Batch模式進行深入的介紹。
切換GPIO模式
I2C,SPI總線協議測試分析方法技巧
孕龍科技所推出的新產品I2C-SPI Control Center,能夠依照需求進行I2C、SPI裝置信號模擬。
I2C-SPI Control Center擁有I2C、SPI觸發功能以及所支持的Batch Mode(批次執行模式)可以更加靈活的模擬裝置反應。
當I2C-SPI進行通信時,往往傳輸的數據封包十分龐大。對分析儀器而言,此時觸發功能便顯得十分重要。越強大的觸發功能可幫助使用者在繁雜數據封包內準確找出欲分析的位置。
孕龍科技所推出的I2C-SPI Control Center,使用I2C / SPI Trigger功能可I2C-SPI數值來進行觸發,且產品本身所擁有的Batch Mode(批次執行模式)更可完整模擬待測電路分析時所需要的動作功能需求。
接下來將開始介紹I2C-SPI Control Center - I2C-SPI Trigger以及Batch Mode。
I2C-SPI Control Center
圖一:I2C-SPI Control Center軟件視窗
開啟I2C-SPI Control Center操作軟件后可看到圖一視窗表示,接著選擇I2C Trigger頁簽進行I2C Trigger條件設定。
I2C Trigger
切換至I2C Trigger后可看到如圖二所示視窗,在此視窗中使用者可依照I2C內容進行兩組條件設定,每一組條件可設定8個byte,也能夠依照讀取/寫入動作進行設定。
圖二:I2C Trigger setting視窗
數據動作選項:可設定Write Data、Write Data(1st)、Read Data、Read Data(1st),當選擇Write Data(1st)、Read Data(1st)時,表示僅判斷個byte數據封包。
運算條件:Write Data、Read Data僅可為『=』;Write Data(1st)、Read Data(1st)可設置『=』、『>』、『<』。
數據長度:當長度改變時,數據字段元會隨之改變;Write Data(1st),Read Data(1st)僅可為『1』。
數據內容:可在此字段內輸入欲設定為觸發條件之數據數值。
Count:觸發條件達成設定次數后再進行觸發。
Continuity:可設定2組條件是否要連續判斷。
致能:當I2C Trigger設定完成后,點選表示開始動作。
使用I2C Trigger時需將外部開關『Mode』切換至8 Pin模式。I/O Ctrl為I2C Trigger時觸發狀態輸出腳位,輸出信號以轉態方式表示。
圖三:0x11、0x22條件設定
接下來透過孕龍邏輯分析儀進行I2C Trigger的實際操作,將I2C-SPI Control Center的I/O Ctrl連接至邏輯分析儀A2腳位,A0及A1則連接I2C的SDA及SCL。
同時,在I2C-SPI Control Center - I2C Trigger頁簽中設定觸發條件為『寫入』、數據數值為『0x11、0x22』,設定完成后如圖三所示。
表示筆觸發條件數據0x11
表示第二筆觸發條件數據0x22
表示透過I2C-SPI Control Center - I2C Trigger所判定觸發成立的位置由圖四可清楚看見當I2C-SPI Control Center - I2C Trigger判定觸發成立后在I/O Ctrl將會出現一個
波形轉態。
2
圖四:觸發完成
設定完成后點選『致能』,接著開啟孕龍邏輯分析儀軟件,設定好環境參數以及I2C總線譯碼即可開始分析,圖四為觸發完成結果。
圖五:SPI Trigger setting視窗
SPI Trigger操作方式與I2C Trigger雷同,開啟I2C-SPI Control Center后選擇SPI Mode,接著切換至SPI Trigger頁簽便可以開始進行設定,設定視窗如圖五所示。
數據動作選項:可設定MOSI Data、MOSI Data(1st)、MISO Data、MISO Data(1st),當選擇MOSI Data(1st)、MISO Data(1st)時,表示僅判斷個byte數據封包。
運算條件:MOSI Data、MISO Data僅可為『=』;MOSI Data(1st)、MISO Data(1st)可設置『=』、『>』、『<』。
數據長度:當長度改變時,數據字段元會隨之改變;MOSI Data(1st)、MISO Data(1st)僅可為『1』。
數據內容:可在此字段內輸入欲設定為觸發條件之數據數值。
Count:觸發條件達成設定次數后再進行觸發。
Continuity:可設定2組條件是否要連續判斷。
致能:當SPI Trigger設定完成后,點選致能表示開始動作。
接下來透過孕龍邏輯分析儀進行SPI Trigger的實際操作,將I2C-SPI Control Center的5V Ctrl連接至邏輯分析儀A4腳位,A0連接SS、A1及A2連接SPI的MOSI及MISO、A3則連接SPI SCL。
同時,在I2C-SPI Control Center -SPI Trigger頁簽中設定兩組觸發條件。組為『MOSI』、數據數值為『0x11』。第二組為『MISO』、數據數值為『0x01』,并勾選『Continuity』,設定完成后如
圖六所示。
圖六:MOSI=0x11、MISO=0x01觸發條件設定
接著設定邏輯分析儀環境以及SPI譯碼模塊,因此次觸發條件有兩組,故進行判斷時將會依照SS Low Enable狀況作為依據,觸發完成后的表示如圖七所示。
圖七中左邊方塊為條件一判定成立位置,在這邊可看見SPI總線中包含MOSI=0x11,右邊方塊為條件二判斷成立位置。此時可看見SPI總線中包含MISO=0x01。
圖七:SPI觸發完成
MOSI=0x11
MISO=0x01
透過Batch Mode可靈活定義數據傳送狀態及內容,模擬實際裝置反應。在I2C-SPI Control Center軟件視窗中點選Batch,便可在視窗空白處輸入Batch代碼來設定I2C-SPI Control Center動作模式,也可以點選鼠標右鍵來加載程序示例檔案。
圖八:Batch Mode
執行
Batch模式
ModeStatus=FTXX_I2CMODE //設定硬件控制模式有FTXX_I2CMODE、FTXX_SPIMODE、
FTXX_GPIOMODE三種控制旗標可供組合使用
I2CFunctionStatus=I2C_I2CMASTER //設定I2C模式控制旗標,由I2C_I2CMASTER orI2C_I2CSLAVE與I2C_10BITADDR、I2C_COMBINEDFORMAT、I2C_NOSTOP組成I2CBitRate=400 //設定I2C模式Bit Rate單位KHz。
I2CSlaveAddress=80 //設定I2C模式Slave Address,支持7 or 11位尋址,輸入數值格式為10進制。
I2CMasterModeTxData=[00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 1718 19 1a 1b 1c 1d 1e 1f 20 21] //設定I2C Master模式TX Data,由[與]判斷Data起始與結束
I2CMasterModeReadByength=10 //設定I2C Master模式讀取Byte長度
I2CFreeBus=true //設定I2C模式Free Bus Enabled or Disable
I2CSlaveModeTxByength=10 //設定I2C Slave模式TX Byte長度
I2CSlaveModeRxByength=10 //設定I2C Slave模式Rx Byte長度
I2CSlaveRespondData=[00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f 20 21] //設定I2C Slave模式Respond Data,由[與]判斷Data起始與結束
I2CSlaveModeEnabled=true //設定I2C Slave模式Enabled or Disable
以下為I2C Batch程序示例
紅色字為代碼
代碼輸入完畢后點選視窗旁邊的『執行』,便可讓Batch程序開始動作。接著我們透過孕龍邏輯分析儀來驗證Batch程序動作內容。
圖九:使用邏輯分析儀擷取I2C Batch程序動作
表示目前I2C Slave Address為0X50。
表示此I2C傳輸速率為400KHz
表示Master寫入數據內容
表示Master讀取數據內容
如需增加其他不同的總線動作或是傳輸不同的位址及數據,僅需在Batch程序字段中增加欲的動作內容即可,借此來模擬待測物通信狀態。
I2C,SPI總線協議測試分析方法技巧總結
孕龍科技推出的產品I2C-SPI Control Center是在總線協定I2C、SPI的基礎上研發而成,可用來存取I2C-SPI界面總線數據并可在數據符合條件時送出觸發信號,或者用GPIO來發送信號。同時使用者可在Batch模式下通過寫入指令來發送信號。搭配孕龍邏輯分析儀可以更有效的進行研發工作??勺隹焖俚姆治雠c快速的問題偵測,以及測量更多的信息,是電子研發人員、電子測試人員、電子電機學生及個人研究工作室*的工具。
下一篇:USB2.0測試分析應用方案