安庆网站建设aqwzjs,杭州网站建设洛洛科技,wordpress基本文档,新沂做网站1.IIC简介
IIC即Inter Integrated Circuit#xff0c;集成电路总线#xff0c;是一种同步#xff0c;串行#xff0c;半双工通信总线。 IIC总线协议——总线就是传输数据通道#xff0c;协议就是传输数据的规则#xff0c;有以下特点#xff1a;
由时钟线SCL和数据线S…1.IIC简介
IIC即Inter Integrated Circuit集成电路总线是一种同步串行半双工通信总线。 IIC总线协议——总线就是传输数据通道协议就是传输数据的规则有以下特点
由时钟线SCL和数据线SDA组成并且都接上拉电阻确保总线空闲状态为高电平总线支持多设备连接允许多主机存在每个设备都有一个唯一的地址连接到总线上的数目受总线的最大电容400pf限制数据传输速率标准模式100k bit/s 快速模式400k bit/s 高速模式3.4Mbit/s
IIC协议时序 IIC通信过程
写操作过程 读操作过程
2.EEPROM与24C02简介
EEPROM是一种掉电后数据不丢失的储存器常用来存储一些配置信息在系统重新上电时就可以加载 AT24C02是一个2K bit的EEPROM存储器使用IIC通信方式。
A0/1/2 : 设备地址决定引脚WP : 写保护引脚SCL : 时钟线SDA : 数据线
24C02的通讯地址 24C04的储存范围是4Kbit512KB使用8位地址无法表示全其储存地址(28256KB)需要在设备地址中借位(29512KB) 24C02的读写时序 写操作 字节写模式一个地址一个数据进行写入。 页写模式连续写入数据。只需要写一个地址连续写入数据时地址会自增但存在页的限制超出一页时超出数据覆盖原先写入的数据。但读会自动翻页。 读操作 当前读模式基于上一次读/写操作的最后位置继续读出数据。 随机地址读模式指定地址读出数据。 顺序读模式连续读出数据。 写操作过程字节写入/页写入 注意:EEPROM比较慢必须等到10ms后再写下一个字节 读操作过程
3.IIC协议驱动24C02实验
硬件IIC——使用复杂、速度快、较稳定、特定引脚软件IIC——使用简单、速度较慢、稳定、任意引脚
推荐使用软件IIC一是因为硬件IIC设计复杂稳定性一般二是因为软件IIC方便移植
3.1.IIC配置步骤
使能SCL和SDA对应时钟——__HAL_RCC_GPIOB_CLK_ENABLE()设置GPIO工作模式——SDA开漏SCL推挽输出使用HAL_GPIO_Init初始化编写基本信号——起始信号、停止信号、应答信号编写读和写函数——iic_read_byte、iic_send_byte 注意发送完成主机释放SDA 为什么IIC总线SDA建议用开漏模式 IIC的SDA脚即要作为输出又要作为输入用开漏输出模式很好实现输出输入共用避免IO模式频繁切换带来的麻烦。输出时主机MCU输出0可以拉低信号实现低电平发送主机输出1实际不起作用由外部上拉电阻上拉实现高电平发送输入时主机MCU设置输出1状态此时因为MCU无法输出1相当于释放了SDA脚此时外部器件可以主动拉低SDA脚/释放SDA脚同样由上拉电阻提供“输出1的功能”实现SDA脚的高低电平变化。由于开漏输出模式下MCU还是可以读取IDR状态寄存器来获取引脚高低电平因此MCU读取IDR即可获得SDA脚的高低电平状态从而实现输入检测。 也可以参考http://t.csdn.cn/fLxa9和http://t.csdn.cn/3x1wU 3.2.24C02配置步骤
初始化IIC接口编写写入/读取一个字节数据函数——遵循时序流程编写编写连续读和连续写函数——在上面的基础上进行实现