软件:Proteus 8.16(Build36097) MCU:STM32F103C8T6,用Proteus库中的STM32F103C8仿真 问题描述:用软件模拟I2C驱动PCF8574,并以Proteus仿真。通过STM32CubeMX将上述MCU的PB8、PB9引脚配置为开漏输出且无内部上/下拉电阻,并将两个引脚分别与PCF8574的SDA与SCL引脚相连。IO口的配置代码如图所示: 时钟线与数据线分别通过2.2K的上拉电阻连接至5V电源(按照STM32F1系列的手册,PB8、9可耐受5V电压),MCU的电源电压配置为3.3V,PCF8574的电源电压配置为5V,仿真电路如图所示 结果发现,时钟线与数据线的逻辑高电平未被上拉至5V,而仅有3.3V,故PCF8574没有响应(按照规格书,该IC的逻辑高电平输入电压应满足Vin>0.7Vcc=3.5V>3.3V)。改用3.3V电源电压驱动PCF8574,发现其SDA无法将数据线拉至逻辑低电平,仿真波形如图所示(读出数据应为0x23): 遂用如下电路图测试: 表明PB8未处于开漏输出状态。不知这是不是Proteus仿真STM32的bug?
|
|