Proteus使用心得(1) -- I2C调试器

时间:2024-05-23 19:23:34

1. 前言

学习单片机不仅头发会变少,钱包也会变薄。买一套单片机学习套装,加上各式各样的外围器件,动辄就要几百块。然而proteus这款电路仿真软件就很好地照顾到我们穷学生的痛处,妈妈再也不用担心我们没钱学单片机了。

2. I2c介绍

I2c是同步通信,因为主从共用一条SCL时钟线,然后用SDA数据线传信息。

开始信号 结束信号
Proteus使用心得(1) -- I2C调试器 Proteus使用心得(1) -- I2C调试器
写/读数据 答应从机
Proteus使用心得(1) -- I2C调试器 Proteus使用心得(1) -- I2C调试器
主机向从机发信息 Proteus使用心得(1) -- I2C调试器
主机接收从机信息 Proteus使用心得(1) -- I2C调试器
中途收发变换 Proteus使用心得(1) -- I2C调试器
从机地址码
Proteus使用心得(1) -- I2C调试器

3. I2c调试器

3.1 i2c调试器位置
Proteus使用心得(1) -- I2C调试器
在这里可以找到I2C调试器

3.2 打开调试器
Proteus使用心得(1) -- I2C调试器
当仿真运行时不小心删了窗口,可以这样重新打开

3.3 调试器界面
Proteus使用心得(1) -- I2C调试器
界面刚开始很小,左右拉一下会有出现其他分栏
(1)界面 是记录数据传输日志,其中箭头表示从机和主机的传输方向XXXXXs 表示时间,S/P/A/N 分别表示开始信号,结束信号,从机的答应和非答应信号
(2) (3) (4) (5)界面 是把i2c调试器当中从机调试用的

3.4 当proteus口中有想要的i2c协议的器件
找到想要的器件(这里以PCF8574A为例)
查找器件的地址
Proteus使用心得(1) -- I2C调试器
我们选择器件地址是7E(因为他是包括了读写位,最低位先为零以后再作处理)。注意要选择器件的地址范围的最高那个(又例如40h-4Fh的器件,地址选择4E)

然后把调试器的SCL SDA连接好了就可以通过观察(1)界面来判断自己的时序是不是正确的,如果(1)界面啥都没有或者有很多?,那一定是时序错了,回头要去改一下。
Proteus使用心得(1) -- I2C调试器
出现这样子的就说明通信成功了。

3.5 当proteus口中没有想要的i2c协议的器件
当库里没有想要的器件,我们可以用i2c调试器去模拟
Proteus使用心得(1) -- I2C调试器
地址1是填写模拟设备的地址 写8位(如7E)读写位留0

连接好SCL 与SDA然后开始仿真
Proteus使用心得(1) -- I2C调试器
然后一会仿真就会暂停,然后出现一小段日志,这是因为我们还没有写队列,也就是这个用i2c调试器模拟的从机没有给主机发送答应信号,

所以我们可以在2中拉下来选择A 按queue放到了3中,然后继续仿真,就可以通信成功了(1 是预队列,个人感觉没怎么用到)

4. 总结

可能i2c还有更多的用途,但这两个确实很实用,特别是对于刚接触i2c的小伙伴来说,大大节省了debug的时间,但最重要的是够装逼。