ARM:IIC总线使用(day04 mma8653芯片驱动编程)

本文深入解析S5P6818芯片内部集成的I2C控制器,重点讨论mma8653芯片与I2C2控制器的连接方式。阐述了I2C总线的工作原理,包括时序控制、通信协议及软件控制方法。同时,介绍了通过GPIOD6和GPIOD7实现I2C通信的具体配置。

S5P6818内部集成了3个独立的I2C控制器
问题:mma8653芯片挂在了哪个I2C控制器上?
答:根据mma8653芯片连接的cpu管脚来推断 对应了CPU内部的I2C 2控制器

关于I2C总线 (谈谈对I2C的理解)

1 I2C总线定义

    飞利浦开放的两线式串行同步总线
    SCL: CLOCK 时钟线
    SDA: DATA  数据线 

2 I2C总线的特点

    1)通信时只需要两条线 硬件互联成本低
    2)I2C总线上可以存在多个主设备 多个从设备 
    3)总线上的通信的发起和终止都由主设备控制
    4)每个从设备都有一个唯一的从设备地址(一般为7bit)
    5) 支持总线冲突仲裁
    
	I2C控制器通信的速率100Kb/s

I2C总线通信协议 (一定要会画图)

空闲状态时 SCL SDA默认为高电平
通信开始时 首先是主设备发送一个start信号
        start信号,当SCL为高电平是 SDA出现一个下降沿     
		从高bit开始发送数据 发送数据时“低送高取”
        低送高取, 当SCL为低电平是 SDA根据要发送的是0还是1 进行跳变,跳变位低电平或者高电平
接收方收到8bit数据后,要给发送方回应答信号(ACK)
        ACK,  在第九个周期 SCL为高电平时, SDA为低电平(一定是被接收方拉低)
    如果还有下一个字节数据要发送 从高bit开始发送数据, 发送数据时 “低送高取”
    接收方接收方收到8bit数据后,要给发送方回应答信号(ACK)
    。。。
    发送方无数据发送是,主设备需要产生一个stop信号
        stop,  当SCL为高电平时 SDA出现一个上升沿   
问题:软件如何控制GPIOD6 GPIOD7形成相应的I2C通信时序?
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值