zoukankan      html  css  js  c++  java
  • I2C读写EEPPROM(AT24CXX系列)特点

    1、概述EEPROM特点

    各型号EEPROM内存大小:

    型号 内存大小 字地址长度 WP脚
    AT24C02 2K(256字节) 一个字节0xff(256) 高电平写保护,低电平取消写保护
    AT24C04 4K(512字节) 两个字节 高电平写保护,低电平取消写保护
    AT24C32 32K(4096字节) 两个字节 高电平写保护,低电平取消写保护
    AT24C64 64k(8192字节) 两个字节 高电平写保护,低电平取消写保护

    (1)存储结构

     

     

     

     

     

     

     

    (2)EEPROM的写入方式有两种:

    • 单字节写入
    • 页写,每种型号EEPROM 页的字节数不同(24C02器件按8字节/页执行页写,24C04/08/16器件按16字节/页执行页写,24C32/64器件按32字节/页执行页写)。

    (3)地址特点

    • 地址输入----A2、A1和A0是器件地址输入引脚。
    • 24C02/32/64使用A2、A1和A0输入引脚作为硬件地址,总线上可同时级联8个24C02/32/64器件(详见器件寻址)。
    • 24C04使用A2和A1输入引脚作为硬件地址,总线上可同时级联4个24C04器件,A0为空脚,可接地。
    • 24C08使用A2输入引脚作为硬件地址,总线上可同时级联2个24C08器件,A0和A1为空脚,可接地。
    • 24C16未使用器件地址引脚,总线上最多只可连接一个16K器件,A2、A1和A0为空脚,可接地。

    2、AT24C02使用i2ctransfer读写测试:

    i2ctransfer可以对i2c挂载的设备进行读写,具体用法:

    (1)查看i2c总线有几路

    (2)查看总线上挂载设备的地址

    (3)读操作:

    如下i2ctransfer指令代表写入一个字节的子地址0x00,然后读取0x00为起始地址的256个字的数据,如果EEPROM内存超过8X256(2K)小于8x65535个字节,则子地址为两个字节

    共有256个字节,现在全为空。

     (4)写操作

    •  写8个字节的数据;

    •  写入9个字节数据:

    • 写16个字节数据:

     通过上面的读写实验可知:

      AT24C02单次写入单字节都是没有问题的,但是写入9个字节,第9个字节数据会覆盖掉第一个字节的数据。写入16个字节数据,同样只在前8个字节写入。

    AT24C02的页大小为8个字节,说明I2C写数据到AT24C02的时候,最多一次写入一页。单次写入的数据超过一页或者跨页写,则会从起始地址重新开始写入,会覆盖掉已经写入的前8个字节数据。

    由此说明:EEPROM只有单字节写入页写两种方式才能正确的写入数据

     I2C读写时序分析可参考:I2C读写EEPROM

     

  • 相关阅读:
    Python3基础 函数 未指定返回值,返回NONE
    Python3基础 函数 有参数有返回值 对传入的参数加1
    Python3基础 函数 无参数无返回值 调用会输出hello world的函数
    Python3基础 函数 收集参数(tuple)+普通参数 的示例
    MVC中几种常用ActionResult
    sqlserver 中存储过程的基础知识记录
    常用的正则表达式方法2
    常用的正则表达式方法1
    vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法
    怎样解决PowerDesigner15出现许可证过期问题?
  • 原文地址:https://www.cnblogs.com/yuanqiangfei/p/15588106.html
Copyright © 2011-2022 走看看