I2C的一個主要優(yōu)點是減少了主機至目標的互連線路數(shù)量。主機控制器只使用兩根線,外加接地,就能應付目標器件和交換數(shù)據(jù),而 SPI 需要三根線——數(shù)據(jù)、時鐘、芯片選擇——外加接地。多個 SPI 目標器件能共享數(shù)據(jù)和時鐘線路,但是每個器件都需要自己的專用芯片選擇線路。
由于人們始終需要更高的采樣速率和分辨率,因此I2C的有限速度也許會限制它在某些應用中的使用,這迫使設計師選擇SPI。然而,SPI需要主機控制器上有一根額外的I/O引腳。在無法提供額外引腳,但是應用需要快速SPI總線轉換器的情況下,你可以利用圖1中的技巧。
例如,德州儀器公司的 ADS7816包含200ksps的12比特采樣ADC,它需要3Msps的性能,從而以200ksps速率連續(xù)采樣(參考文獻1)。如果選擇ADS7816的低電平有效CS(芯片選擇)引腳,就會引起一個轉換周期。在數(shù)據(jù)傳輸期間轉換并保持CS為低電平之后,CS在傳輸數(shù)據(jù)之后返回高電平,完成整個過程。
當時鐘線路變?yōu)榈碗娖綍r,它還使CS保持低電平狀態(tài)。峰值檢測器(由D1、R1、C1組成)的時間常數(shù)確保了CS不會變?yōu)楦唠娖?,直到時鐘線路保持高電平的持續(xù)時間超過一個時鐘周期(圖2)。雖然時鐘線路轉換并從 IC2取回數(shù)據(jù),但CS保持為低電平,并且,在數(shù)據(jù)取回任務完成時,時鐘線路變?yōu)楦唠娖?,CS隨后也變?yōu)楦唠娖剑闺娐窞榱硪粋€轉換周期準備就緒。
由于C1必須在轉換周期結束時放電,因此控制器應該延遲下一個轉換周期的啟動,直到C1完全放電。仔細選擇R1和C1的話,就會使延遲縮短到最少的3個時鐘周期。另外,在下一個時鐘脈沖到達并刷新電容器的電壓之前,C1兩端的電壓一定不能降到逆變器IC1B的輸入閾值以下。逆變器IC1A的輸出電壓和電流能力會影響C1的再次充電時間,而R1和IC1B的輸入阻抗會影響放電時間。為了確保實現(xiàn)耐用的設計,應該包含元件的公差和溫度系數(shù),以及邏輯輸入和輸出閾值的變化情況。
參考文獻:
ADS7816 data sheet, http://focus.ti.com/docs/prod/folders/print/ads7816.html, Texas Instruments.