【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据

eeprom 说明

eeprom介绍

  • AT24C01A,1K串行EEPROM:内部组织16页8字节,1K需要一个7位数据字地址进行随机字寻址。
  • AT24C02,2K串行EEPROM:内部组织32页8字节,2K需要一个8位数据字地址进行随机字寻址。
  • AT24C04,4K串行EEPROM:内部组织32页,每个16字节,4K需要一个9位的数据字地址进行随机字寻址。
  • AT24C08A,8K串行EEPROM:内部组织64页,每个16字节,8K需要一个10位的数据字地址进行随机字寻址。
  • AT24C16A,16K串行EEPROM:内部组织128页,每个16字节,16K需要一个11位的数据字地址进行随机字寻址。

设备寻址

1K、2K、4K、8K和16K EEPROM设备都需要一个启动条件下的8位设备地址字,以使芯片能够进行读取或写操作

设备地址字由前四个最重要位的强制性零序列组成,如图所示。这是所有EEPROM设备所共有的情况。

接下来的3位是1K/2K EEPROM的A2、A1和A0设备地址位。这3位必须与它们对应的硬线输入引脚进行比较

4K EEPROM仅使用A2和A1设备地址位,而第三位是内存页地址位。这两个设备地址位必须与它们对应的硬线输入引脚进行比较。A0引脚没有连接。

8K EEPROM只使用A2设备地址位,接下来的2位用于内存页面寻址。A2位必须与它相应的硬线输入引脚进行比较。A1和A0引脚没有连接。

16K不使用任何设备地址位,而是将3位用于内存页面寻址。这些在4K、8K和16K设备上的页面寻址位应该被认为是下面的数据字地址中最重要的位。A0、A1和A2的大头针并不一致

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据_第1张图片

rtt配置

硬件连接

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据_第2张图片

iic配置

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据_第3张图片

at24c02的驱动配置使能

编写eeprom测试源码
【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据_第4张图片

测试代码

 at24cxx_device_t dev = at24cxx_init("i2c1",0); //这里的地址写零,应为我的a2 a1 a0 接了gnd
	
    uint8_t buff[100];
    uint8_t buff1[100];
    for(int i=0; i<100; i++)
        buff[i]=i+'a';
    at24cxx_page_write(dev,0,buff,50);
    rt_thread_mdelay(10);

    at24cxx_page_read(dev,0,buff1,50);
    rt_kprintf("\r\nread:");
    for(int i=0; i<50; i++)
    {
        rt_kprintf("%d ",buff1[i]);
    }
    rt_kprintf("\r\n");

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据_第5张图片

你可能感兴趣的:(N32L40X,RTT,rtt,iic,eeprom)