zoukankan      html  css  js  c++  java
  • IIC 概述之24c系列存储器内存分析

    IIC

    型号     容量      器件/业面寻址字节                   可寻址位       模块

    24C01   128B      (1010)(A2)(A1)(A0)(0或1)     3            128B
    24C02   256B      (1010)(A2)(A1)(A0)(0或1)     3            256B
    24C04   512B      (1010)(A2)(A1)(P0)(0或1)     2            2X256B
    24C08  1024B      (1010)(A2)(P1)(P0)(0或1)     1            4X256B
    24C16  2048B      (1010)(P2)(P1)(P0)(0或1)     0            8X256B


    解析:IIC总线接口器件24C系列非易失性存储器与89C51接口采用软件模拟IIC。24C系列
    存储器器件地址统一为1010XXXX,不要问为什么,这是厂家出厂的时候规定好的了。至
    于24C的引脚功能和89C51的接口我就不多说了,本文的重点主要是如何应用。
      上面说了,器件的地址字节的高位是1010,那么低4位呢?先说最后一位吧,最后一
    位为0的时候表示89C51要写数据入存储器,1的时候表示要从存储器读数据。还剩下中
    三位A2,A1和A0。它们的高低电平取决于24C的A2,A1,A0是接高电平还是接地。A2,
    A1 和A0有8个组合,因此可以扩展8个相同的器件,根据A2、A1、A0的不同,一样的器件
    也会有不同的地址。那么是不是每一个24C都可以扩展8个呢?不是的。注意上表,24C01
    有三个可寻址位,A2,A1,A0,所以可以扩展8个,24C02也一样。而04则只可以扩展4个
    08只可以扩展2个,16就没有扩展了,只可以挂一片24C16。为什么呢?因为访问24C系列
    除了访问器件地址外,还要访问器件内的字节的地址。例如24C01,要对其操作,就先选
    选中它的地址,然后操作第一个字节或其他字节,这些字节也是有地址的,分模块,用
    一个字节表示,最多可以操作256个字节。24C01和24C02不大于256个字节,对其操作就
    简单得多了。但24C04,08和16呢?他们都大于256个字节,怎么办?分模块。注意到上
    表的P0,P1,P3没有?把04分成两个模块,2X256B,08四个模块,16就八个模块。究竟
    怎么
    模块操作呢?拿24C08为例,有A2 P1 P0。A2只可以0或1,所以只能扩展2个24C08,其
    内有4个256字节的模块,要操作哪个模块取决于P1,P0的组合。例如,24C08的地址字节
    为1010000X第一个字节地址为0,第256个地址为255,如果地址字节是1010001X,那么第
    256个字节的地址为0,第512个字节的地址为255。就如此。
        再用24C08举例说明如何扩展,当两个24C08的A2脚分别接高电平和地的时候,就可
    以了,这样就扩展了,他们的器件地址分别是1010000X和1010100X。当要读第一个(A2
    接地)
       24C08的的第一个模块的数据时候,单片机先发送地址字节10100001;当要把数据写
    进第二个(A2接高电平)24C08的第二个模块的时候,应发送10101010地址字节。
     
     

    IIC通信过程:
    写数据:发送启动信号,发送设备地址信号,检测应答,发送写命令,发送数据,发送停止信号。
    读数据:发送启动信号,发送设备地址信号,检测应答,发送写命令,发送要读取数据的地址;发送开始信号,发送读命令。

    菜鸟常见错误:用IIC控制硬件时,要特别注意硬件改变状态需要时间(硬件把收到的数据写入自己的寄存器需要时间、根据自己的寄存器改变状态也需要时间)。

     
     
  • 相关阅读:
    Swift中字符串转化为Class的方法
    React Native安装
    关于error:Cannot assign to 'self' outside of a method in the init family
    Xcode6中Swift没有智能提示和自动补全功能
    关于消息推送的补充,主要介绍服务端的实现,包含object c 版本 c 版本 java 版本 php 版本 (转)
    Git和GitHub在线学习资源整理(转)
    HTTP协议详解(转)
    iOS开发之GCD基础
    一步一步实现消息推送 2014-06-19
    理解Certificate、App Id、Identifiers 和 Provisioning Profile
  • 原文地址:https://www.cnblogs.com/locean/p/4683331.html
Copyright © 2011-2022 走看看