4412裸机程序之IIC

本文详细探讨了在4412裸机程序中实现IIC通信协议的步骤与技巧,从底层硬件配置到软件编程,包括时序分析、数据传输过程以及常见问题解决策略。通过对IIC协议的深入理解,帮助读者掌握裸机环境下进行设备通信的核心技术。
摘要由CSDN通过智能技术生成
IIC总线是个比较重要的模块,很多外设都通过IIC来传输数据,下面大致说下IIC总线协议原理:





IIC只有2条线,SDA(数据线)/SCL(时钟线),分为主机(IIC控制器)和从机(EEPROM),2条线上可以挂很多从机设备,主机通过向从机发地址,哪个从机响应了,就与哪个从机通信。
当SCL/SDA都为高电平时,拉低SDA作为起始信号,  SCL为高,拉高SDA做为结束信号,从机在收到8位数据后,在第9个时钟周期拉底SDA作为ACK应答信号。
scl为低时可以传送数据,传送完后SCL会被拉高,在scl上升沿开始传数据。scl为高时要保持sda数据稳定。
发送完数据,读完数据,发送完stop信号,都要delay一会,等设备反应。
传送数据按芯片手册的timing走,先传地址,先传数据,每传一个8位数据,从机要发送一个ACK应答。
我们编程是以主机的角色,从机自己会拉高拉底scl/sda,主机也不用管怎么拉高拉低SCL/SDA,只需设置IIC控制器的寄存器就可以按timing传数据。
Tiny4412有一个直接连接CPU IIC0 信号引脚的EEPROM芯片AT24C08,主要是为了测试IIC总线用,我们看下往这个设备读写数据应该怎么操作。
下图是写数据时的流程:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值