简介
AT32-SUFR板载了一颗型号为24C02的EEPROM芯片,该芯片容量为256字节,使用I2C总线和AT32 MCU连接。本章节描述了如何使用AT32的I2C接口实现对EEPROM芯片的读写,并将读写结果通过串口打印出来。
I2C总线(Inter-Integrated Circuit bus)是飞利浦半导体开发的一种双向两线制总线,用于不同芯片间的通讯。I2C总线是事实上的世界标准,现在已在50多家公司制造的1000多种不同IC中实施。此外,I2C总线用于各种控制架构,例如系统管理总线(SMBus)、电源管理总线(PMBus)。
I2C总线的一些特性:
― 只需要两条总线:一条串行数据线SDA和一条串行时钟线SCL;
― 连接到总线的每个从机都有一个唯一的地址,主机可以通过发送不同的地址寻址从机;
― 真正的多控制器总线,包括冲突检测和仲裁,以防止两个或多个控制器同时启动数据传输时数据损坏;
― 传输速度在标准模式(Standard-mode)可达100 kbit/s,在快速模式(Fast-mode)下可达 400 kbit/s,在增强快速模式(Fast-mode Plus)下可达1 Mbit/s;
― 可以连接到同一总线的IC数量仅受最大总线电容的限制。
I2C总线数据传输总是以START条件开始,STOP条件结束,当每个字节(8bit)传输完成后,在第9个bit接收数据方将SDA总线拉低回复ACK,如果没有拉低代表回复NACK,当主机在收到NACK后结束通讯。
本案例主要介绍三种通讯方式实现对EEPROM的访问,用户可以根据应用灵活选择通讯方式。
― 轮询方式通讯:使用软件查询的方式传输数据;
― 中断方式通讯:使用中断方式传输数据;
― DMA方式通讯:使用DMA传输数据。
资源准备