该仿真器允许通过PC向I2C总线发送数据或从I2C总线接收数据,从而与I2C设备进行通信。
硬件部件:
- Microchip Technology ATMEGA16A-PU× 1个
- 意法半导体LD1117AV33× 1个
- 德州仪器LM2596T-5.0× 1个
- 安森美半导体2N7000× 2个
- 瑞萨2SC945× 5
- KEMET电子公司EC2-5NU DPDT继电器× 3
I2C是一种流行的数据总线,用于与板间外设进行通信。如今,基于I2C的芯片和模块可广泛用于许多类别,包括数据存储,ADC / DAC,I / O扩展器,传感器等。
I2C主模式仿真器通过向I2C总线发送数据或从I2C总线接收数据来与I2C设备进行通信。要发出I2C命令,仿真器应通过USB端口连接到PC。初始化仿真器后,PC可以直接控制I2C从芯片/模块。
成品原型的正视图
该仿真器基于ATmega16A MCU。USB通信通道是使用V-USB固件开发的。
为了简化组装,此仿真器的PCB设计在单侧板上。PCB的尺寸为96.77mm×110.73mm。本项目中使用的所有零件均为通孔型,通常可用。
完成的原型的后视图
该仿真器需要外部电源,建议的电源电压在12V至15V之间。
控制软件和命令
仿真器的控制软件是使用libusb开发的,并且仅在Linux操作系统上进行过测试。当前的固件和控制软件支持100kHz,250kHz和400kHz时钟速率的I2C仿真。
以下命令可用于I2C测试终端:
• init-以给定的时钟速率初始化I2C总线。
• 开始-发行启动条件,I2C总线。
• 停止-向I2C总线发出STOP条件。
• 写-将给定的字节值写入I2C总线。
• write- address-使用读/写标志设置从站地址。
• 读取-读取从从设备接收到的数据字节。
• 输出电压-将输出电压设置为5V或3.3V的命令。
• 重置-重置仿真器和I2C总线。
• 退出-从终端应用程序退出。
• help-显示帮助屏幕。
以上所有命令均在GitHub存储库的项目文档中进行了说明。
I2C测试终端具有一个自动完成的命令提示符。若要使用此选项,请在命令提示符下按两次TAB键。
在启动终端控制应用程序之前,I2C仿真器设备必须连接到PC并需要加电。
仿真器测试设置
下图说明了测试I2C终端的简单布局。在这种布局中,I2C端子连接到24LC01串行EEPROM IC。
连接到24LC01 EEPROM。