【AG32开发板体验连载】AG32VF407I2C总线测试
本文重点介绍AG32VF407I2C总线的评测。
一、 开发板I2C总线介绍
AG32VF407开发板配置的I2C总线用于E2PROM-24LC02BT的访问,具体电路如下:
二、 24LC02BT介绍
24LC02BT-I/SN是一款2Kb的EEPROM(电可擦除可编程只读存储器)。该器件由一个256×8位的存储块组成,具有最大8字节数据的页写能力。一个2线串行接口,与I2C兼容。器件采用低电压设计,使工作电压可低至1.7V,待机电流和工作电流分别仅为1uA和1mA。兼容100kHz和400kHz时钟,页写时间为3ms(典型值),可擦/写次数超过100万次,数据保存期超过200年。
1、内部架构
2 、芯片引脚功能
芯片的第7引脚WP为写保护引脚,将该引脚接地允许正常的读写。
3、设备地址
24LC02的设备地址包括固定部分和可编程部分。可编程部分需要根据硬件引脚A0、A1和A2来设置。设备地址的最后一位用于设置数据传输的方向,即读/写位。格式如下图:
在IIC总线协议中,设备地址是起始信号后第一个发送的字节。如果硬件地址引脚A0、A1、A2均接地,那么,24LC02的设备的读操作地址为:0xA1;而写操作地址则为:0xA0。
3、读写操作中的应答信号
在写操作中,24LC02每接收一个8位字节后会产生一个应答信号。在读操作中,24LC02在发送一个8位数据后会释放SDA线并监视应答信号。一旦收到应答信号,将继续发送数据。如果主机没有发送应答信号,从机则停止发送数据且等待一个停止信号。
4、基本读写操作流程
当R/W位为1时,执行读操作;当R/W位为0时,执行写操作。在开始位置过后,首先传送八位器件地址,根据DATASHEET, 24C02的字节写操作如下图。
5、读写操作方式
24LC02读写操作方式有:字节写操作、页写操作、当前地址读操作、字节读操作、连续读操作、随机读取。具体请参考24LC02数据手册。
三、 AG32VF407 I2C例程分析
AG32VF407开发板的I2C例程为example_i2c.c。主要由I2C初始化函数bool I2cInit(uint32_t frequency)、I2C中断处理函数bool I2cCheckInterrupt(bool expected)、PROM读函数bool I2cReadPROM(uint8_t *mem,
bool verify)、PROM写函数bool I2cWritePROM(uint8_t *mem)以及PROM测试函数void TestI2cPROM() // Testing AT24C02等五个主要函数组成,通过I2C总线实现对24LC02B的读写过程。具体程序不再赘述,请参见example_i2c.c。
四、 运行
运行之前需修改example.c,打开example.c,找到main函数,将TestI2c()前的注释删除,见下图。
编译下载后执行,运行结果见下图。
|