今天花费了一天时间,研究i2c总线的特点。因为我要用FPGA设计操作i2c总线的时序.i2c总线是常用的串行总线。我要操作的串行eeprom AT24C512。该EEPROM 容量是512KBIT,内部按照每页128字节组织,总共是512页。根据我的设计构思,准备使用PAGE WIRET 和随机连续读 两种命令方式。读写准备按照页方式进行。根据我上面的要求,我仔细研读eeprom 手册。下面我分享我读书心得。
第一点:芯片工作速度选择: 根据AT24C512手册可以知道,该款芯片的电压工作可以为1.8V-5.0V ; 不同电压等级I2C总线的最大工作速度不同。1.8V--最大工作速度fscl=100K; 2.7V----最大工作速度fscl=400K;5.0V----最大工作速度fscl=1000K. 在本案中,我要操作的AT24C512 电压等级是3.3V. 因此,我定义fscl=200K(取最大速度的一半),保证时序。
第二点:写周期耗时间(Write Cycle Time)-Twr。 该参数也是编写FPGA程序需要特别考虑一个时间。根据DATASHEET,该参数定义了从I2C总线停止位开始到数据真正写到存储区,EEPROM内部耗时。该参数与AT24C512的工作电压有关。从DATASHEET可以看到,1.8V的芯片,该参数最大为20毫秒;2.7V和5V的芯片,该参数的最大时间为10毫秒。
第三点:AT24C512支持读写操作方式:从DATASHEET可以看到,两种写方式和4种读操作方式。
1. 当前地址写操作方式:
EEPROM内部具有保持当前地址的寄存器。对当前地址进行写操作时,不需要指定地址。只要单纯给出写指令和该地址数据即可。写操作完成后,内部所保持的当前地址将自动进位。其时序图如下:
未完待续!
|