• AT24C0X I2C通信原理


    /**********************************************************************
     *                      AT24C0X I2C通信原理
     * 说明:
     *     之前接触AT24C02用的相对比较多,这次接触到AT24C08,存储量大了
     * 数据存储方式也就不一样,另外就是之前在Linux下面有标准AT24系列驱动,
     * 目前的FPGA需要编写操作PCIe控制I2C Master驱动,对EEPROM进行存取操作。
     *
     *                                2018-11-7 深圳 宝安西乡 曾剑锋
     *********************************************************************/
    
    一、参考文档
        1. AT24C0X Datasheet
            https://www.mouser.com/ds/2/268/atmel_doc0180-1065439.pdf
        2. AT24C02/04/08 地址理解
            https://blog.csdn.net/qq_38405680/article/details/81360604
        3. altera I2C master driver
            https://github.com/torvalds/linux/blob/master/drivers/i2c/busses/i2c-altera.c
        4. AT24 Linux driver
            https://github.com/torvalds/linux/blob/master/drivers/misc/eeprom/at24.c
    5. AT24CXX之设备寻址和页寻址解读
    https://wenku.baidu.com/view/6898d9ba6394dd88d0d233d4b14e852458fb39cd.html 二、器件信息 1. 测试AT24C02,刚开始用2.5V电压操作,I2C通信无ACK信号,换成3.3V正常,不过手册中有涉及1.8V,跟芯片型号有关; 2. AT24C02,存储空间为2K bit = 256B,8bit地址空间足够,所以只有一个地址页,也就是一个AT24C02只有一个I2C地址; 4. AT24C02一次连续写入,最多8 Byte; 3. AT24C08,存储空间为8K bit = 1024B = 4 * 256B,4 * 8bit地址空间足够,所以只有四个地址页,也就是一个AT24C08只有四个I2C地址,原地址引脚A0/A1无效,对应地址位变为页选择位; 5. AT24C08一次连续写入,最多16 Byte; 6. 貌似在读的时候没有读取多少个字节的限制; 7. Linux驱动中有标准的AT24系列的驱动,如果需要了解更多的实际代码操作细节,可以分析这部分驱动;
  • 相关阅读:
    【Django】DRF序列化器之Serializers家族
    【Django】DRF源码分析之五大模块
    【Django】DRF源码分析对比原生Django
    【MySQL】主从复制
    【MySQL】锁之InnoDB
    【MySQL】锁之MyISAM
    【安装】Ubuntu之Redis
    Git安装配置以及常用命令整理
    10、Python 数据分析-Matplotlib绘图大全详解
    8、Python 数据分析-Pandas高级操作
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/9920599.html
Copyright © 2020-2023  润新知