资讯详情

GD32F4XX FT24C02A主机模式硬件IIC读写EEPROM示例

一、基本概念及特性 IIC时钟信号由主机提供,属于同步通信协议 一般硬件设计需要对硬件进行设计I2C SDA和SCLK均加拉,此时保持总线空闲为全高。 由于接收和发送共用数据线,I2C是半双工网络 最大传输速度为1Mbps,可以配置为400Kbps、100Kbps(标准传输速度) 因为是半双工,整个读写过程一般是: 主机发送通信启动信号,更改SDA和SCLK电平(先后拉低),加载传输数据(包括地址数据和传输内容),收到从机回复后开始传输

I2C总线上最多可以挂载的从机地址数量受总线上总线电容的限制,在100Kbps传输时间不超过400pF,速度提高后400Kbps总线电容不超过100pF。

IIC搜索网站有两种模式,7位模式和11位模式EEPROM常用7位寻址

二、GD32硬件IIC与EEPROM读写: GD32的硬件IIC比较死板,流程主要需要严格按照几个硬件寄存器的设置来读写。 实际表现为通信过程中的半双工,读写双向共用数据寄存器和移位寄存器。 这里只给出8个内部存储地址和单字节读写示例

一、初始化流程: (1) 初始化IIC GPIO引脚 (2) 初始化IIC外设时钟 (3) 初始化配置IIC工作模式、传输速度、从机地址 (4) 使能IIC (5) 使能ACK

整个字节写过程是: (1) 等待总线空闲 (2) SCL拉低、SDA降低通信的起始位置 (3) 等待通信启始状态发送完成 (4) 发送设备地址(EEPROM是0xA0) (5) 等待设备地址发送成功标志 (6) 清除设备地址并发送成功标志 (7) 等待发送缓冲区空 (8) 发送EEPROM内部存储地址 (9) 等待字节发送成功标志 (10) 发送EEPROM存储数据(1Byte) (11) 等待字节发送成功标志 (12) 发送总线停止信号 (13) 位置控制寄存器,停止IIC

3.字节阅读过程如下: EEPROM内部会有一个地址指针,只有写作操作才能移动。阅读操作的本质是写作操作将地址指针移动到指定位置 读位置 因此,首先是虚拟写作操作,以确定要读取的位置,然后是设备地址读取操作,以获取地址的数据。

虚拟写: (1) 等待总线空闲 (2) SCL拉低、SDA降低通信的起始位置 (3) 等待通信启始状态发送完成 (4) 发送设备地址(EEPROM是0xA0) (5) 等待设备地址发送成功标志 (6) 清除设备地址并发送成功标志 (7) 等待发送缓冲区空 (8) 发送EEPROM内部存储地址 (9) 等待字节发送成功标志

实际读: (10) SCL拉低、SDA降低通信的起始位置 (11) 等待通信启始状态发送完成 (12) 发送读取设备地址(EEPROM是0xA1) (13) 此时,由于只读一个字节,阅读设备地址已经是本次通信的倒数第二个字节,此时需要回复NACK给IIC通一个字节是最后一个字节,不需要等待主机ACK了。 因此,这一步需要残疾IIC ACK功能。 (14) 等待数据寄存器缓冲区 (15) 从数据寄存区缓冲区取数据 (16) 发送总线停止信号 (17) 置位,停止IIC外设 (18)为了下次通信正常,这里需要使能ACK

代码已上传至CSDN,全流程附中文注释,欢迎下载学习,有问题也欢迎留言交流。 代码链接:https://download.csdn.net/download/qianzilu/14021032

标签: gd8216电容器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台