該仿真器允許通過PC向I2C總線發(fā)送數(shù)據(jù)或從I2C總線接收數(shù)據(jù),從而與I2C設(shè)備進(jìn)行通信。
硬件部件:
- Microchip Technology ATMEGA16A-PU× 1個
- 意法半導(dǎo)體LD1117AV33× 1個
- 德州儀器LM2596T-5.0× 1個
- 安森美半導(dǎo)體2N7000× 2個
- 瑞薩2SC945× 5
- KEMET電子公司EC2-5NU DPDT繼電器× 3
I2C是一種流行的數(shù)據(jù)總線,用于與板間外設(shè)進(jìn)行通信。如今,基于I2C的芯片和模塊可廣泛用于許多類別,包括數(shù)據(jù)存儲,ADC / DAC,I / O擴(kuò)展器,傳感器等。
I2C主模式仿真器通過向I2C總線發(fā)送數(shù)據(jù)或從I2C總線接收數(shù)據(jù)來與I2C設(shè)備進(jìn)行通信。要發(fā)出I2C命令,仿真器應(yīng)通過USB端口連接到PC。初始化仿真器后,PC可以直接控制I2C從芯片/模塊。
成品原型的正視圖
該仿真器基于ATmega16A MCU。USB通信通道是使用V-USB固件開發(fā)的。
為了簡化組裝,此仿真器的PCB設(shè)計在單側(cè)板上。PCB的尺寸為96.77mm×110.73mm。本項目中使用的所有零件均為通孔型,通??捎?。
完成的原型的后視圖
該仿真器需要外部電源,建議的電源電壓在12V至15V之間。
控制軟件和命令
仿真器的控制軟件是使用libusb開發(fā)的,并且僅在Linux操作系統(tǒng)上進(jìn)行過測試。當(dāng)前的固件和控制軟件支持100kHz,250kHz和400kHz時鐘速率的I2C仿真。
以下命令可用于I2C測試終端:
• init-以給定的時鐘速率初始化I2C總線。
• 開始-發(fā)行啟動條件,I2C總線。
• 停止-向I2C總線發(fā)出STOP條件。
• 寫-將給定的字節(jié)值寫入I2C總線。
• write- address-使用讀/寫標(biāo)志設(shè)置從站地址。
• 讀取-讀取從從設(shè)備接收到的數(shù)據(jù)字節(jié)。
• 輸出電壓-將輸出電壓設(shè)置為5V或3.3V的命令。
• 重置-重置仿真器和I2C總線。
• 退出-從終端應(yīng)用程序退出。
• help-顯示幫助屏幕。
以上所有命令均在GitHub存儲庫的項目文檔中進(jìn)行了說明。
I2C測試終端具有一個自動完成的命令提示符。若要使用此選項,請在命令提示符下按兩次TAB鍵。
在啟動終端控制應(yīng)用程序之前,I2C仿真器設(shè)備必須連接到PC并需要加電。
仿真器測試設(shè)置
下圖說明了測試I2C終端的簡單布局。在這種布局中,I2C端子連接到24LC01串行EEPROM IC。
連接到24LC01 EEPROM。