stm32iic吧 关注:2贴子:23
  • 2回复贴,共1

STM32模拟IIC

只看楼主收藏回复

STM32的硬件IIC有问题千万慎用!
STM32的硬件IIC有问题千万慎用!
STM32的硬件IIC有问题千万慎用!
重要的事情要说三遍!
软件模拟IIC除了比较费时,占用CPU的计算时间外,其实还是很灵活方便的,比如,可以设置任意IO口。
模拟IIC分为三种:主模式,从模式和静音模式,第三种是我自己定义的,后面再解释。
作为IIC主模式的话,基本就没有太大问题,因为时钟信号SCL是主模式控制的,爱怎么做就怎么做;
作为IIC从模式的话,最大的麻烦是必须同步SCL信号,因为SCL是主机发出的,必须能够识别SCL的起始、停止信号,然后才能从SDA读到数据。
静音模式:其实就是从模式的增强版,主要用于IIC总线数据读取,监控全部的IIC数据,包括IIC读、IIC写、物理地址、逻辑地址、数据参数等,相当于一个逻辑分析仪。但是相比逻辑分析仪,IIC静音模式能够几乎无限制的读取IIC数据,并且转换成串口或者其他方式显示出来;
作为IIC静音模式,首先不能对IIC总线的任何数据产生回应,如ACK/NAK;也不能做地址过滤,地址匹配之类的,收到所有数据都要保存起来;
IIC静音模式的应用场景:
1.原车屏升级:大多数触控屏的驱动芯片都是IIC总线,要识别触摸位置以及触摸动作,就必须在IIC静默模式下解析IIC数据;
2.解密EEPROM:识别EEPROM的数据,读出地址及存储位置,读出重要数据,比如应用于硬件加密狗,部分MCU程序解密都是使用这种办法;
3.多节点IIC通信:多节点通信时,用于观察IIC通信效率,检查通信故障,排除隐患等。
4.IIC校验:判断通信过程是否符合预期。


IP属地:广东1楼2016-04-12 09:51回复
    沙发自己抢~ 不知道会不会火


    IP属地:广东2楼2016-04-12 10:02
    回复
      大佬,请教个问题,我的板子上面有三个iic设备,分别是EEPROM、六轴陀螺仪、板载温度传感器,采用软件模拟iic方式,单独读取陀螺仪的时候是可以正常收到陀螺仪数据,但是我加上温度传感器,或者单独读取温度传感器数据都不行,(陀螺仪和温度传感器数据同时读取的时候,陀螺仪数据可读,温度传感器不行),EEPROM目前没有使用。不知道有没有什么常见错误可以分享一下。


      IP属地:上海6楼2024-06-24 09:43
      回复