首页 理论教育 I2C外部存储接口详解

I2C外部存储接口详解

时间:2023-06-19 理论教育 版权反馈
【摘要】:NUE-PSK3.1调制解调器的配置信息需要保存在外部可读写存储器中。这里采用了I2C接口的EEPROM存储器24AA256。24AA256与dsPIC33FJ128MC706的接口原理如图7-17所示。图7-17 24AA256接口原理图该电路中24AA256的地址选取000,硬件写保护失效。24AA256为从设备,通过I2C接口与dsPIC33FJ128MC706相连。对24AA256的操作分为读、写两个部分。图7-21 24AA256整页写时序图dsPIC33FJ128MC706对24AA256的初始化代码由NUE_PSK_main_1.c中的Init_I2C1()函数完成,该函数在NUE_PSK_I2C.c文件中定义,具体代码如下:对24AA256的操作由I2C1_Byte_Write和I2C1_Byte_Read函数完成。

I2C外部存储接口详解

NUE-PSK3.1调制解调器的配置信息需要保存在外部可读写存储器中。这里采用了I2C接口的EEPROM存储器24AA256。该存储器为256KB的CMOS非易失存储器,包含三位译码地址,且具有写保护功能,内部64个字节为一页。24AA256与dsPIC33FJ128MC706的接口原理如图7-17所示。

978-7-111-36505-1-Chapter07-41.jpg

图7-17 24AA256接口原理图

该电路中24AA256的地址选取000,硬件写保护失效。24AA256为从设备,通过I2C接口与dsPIC33FJ128MC706相连。对24AA256的操作分为读、写两个部分。

读操作分为当前读、随机读和顺序读三种。当前读的时序如图7-18所示。

978-7-111-36505-1-Chapter07-42.jpg

图7-18 24AA256当前读时序图

随机读需要先向24AA256发送两个地址字节,然后再读取数据。随机读的时序如图7-19所示。

978-7-111-36505-1-Chapter07-43.jpg

图7-19 24AA256随机读时序图

顺序读是在随机读的基础上连续读出N个字节。

写操作分为单字节写和整页写两种。单字节写的时序如图7-20所示。

978-7-111-36505-1-Chapter07-44.jpg

图7-20 24AA256单字节写时序图(www.xing528.com)

而整页写是在单字节写的基础上连续写入64个字节(见图7-21)。

978-7-111-36505-1-Chapter07-45.jpg

图7-21 24AA256整页写时序图

dsPIC33FJ128MC706对24AA256的初始化代码由NUE_PSK_main_1.c中的Init_I2C1()函数完成,该函数在NUE_PSK_I2C.c文件中定义,具体代码如下:

978-7-111-36505-1-Chapter07-46.jpg

978-7-111-36505-1-Chapter07-47.jpg

对24AA256的操作由I2C1_Byte_Write(int Write_Address,char Write_Data)和I2C1_Byte_Read(int Read_Address)函数完成。这两个函数也在NUE_PSK_I2C.c文件中定义,I2C1_Byte_Write(int Write_Address,charWrite_Data)函数用于从M24AA256中读数据,具体代码如下:

978-7-111-36505-1-Chapter07-48.jpg

I2C1_Byte_Read(int Read_Address)函数用于实现向24AA256写入数据的功能,具体代码如下:

该函数实现向24AA256写入数据的功能。

978-7-111-36505-1-Chapter07-49.jpg

978-7-111-36505-1-Chapter07-50.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈