GPIO实现I2C从机的设计[1]

在本阶段的工作中,需要实现一个由GPIO模拟的I2C从机工程设计,以前只使用GPIO模拟I2C设计过主机,对于从机的设计,还是首次。下面就讲本次工作中从机设计思想做详细记录。

I2C的简单总结

对于I2C信号,需要有START,STOP,ACK,NACK,以及接收DATA。接收DATA是在SCL的低电平可能发生跳变,START和STOP是在高电平跳变。当SCL保持高电平的时候,SDA从H跳变到L,即为START;当SCL保持高电平的时候,SDA从L跳变到H,即为STOP。

START信号:
图1
图1

STOP信号
图2
图2

ACK信号
图3
图3

主机下发地址以及读写信号
图4
图4

程序设计以及分析

//为所使用的硬件平台的寄存器配置
#define WAIT_IIC_SCL_HIGH   while ( !GET_SCL_DAT )
#define WAIT_IIC_SCL_LOW    while ( GET_SCL_DAT )
#define WAIT_IIC_SDA_HIGH   while ( !GET_SDA_DAT )
#define WAIT_IIC_SDA_LOW    while ( GET_SDA_DAT )

#define IIC_WAIT_START      WAIT_IIC_SCL_HIGH;  WAIT_II
  • 12
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值