EEPROM AT24C08的操作

2023-11-09

EEPROM应该是学习IIC总线时候最先接触的东西了,EEPROM的优点是可以随机存取,不像Flash存储器一样需要先擦除在能写入,而且擦写次数多存储时间长,但是缺点是存储空间非常有限,像我这用的Atmel的AT24C08只有8Kbit的存储空间,也就是只有1KB,存储一些参数是够的,但是存储文档、音频什么的就算了,还好我现在项目只要存储一些参数,AT24C02的空间不够,所以用了空间相对大一点的AT24C08。本以为两个的程序是差不多的,但是还有些值得注意的地方要记录一下的。
由于AT24C02的存储空间是256Byte,IIC发送寻址地址的时候一个字节就够了,也就是发送完器件地址之后直接发送一个字节的寄存器地址就可以了,但是AT24C08的存储空间是1024Byte,一个字节的地址不够寻址,需要10位的寻址空间,我之前写过一篇文章:http://blog.csdn.net/tq384998430/article/details/53580267 里面说明了IIC读写16位地址的寄存器的方式,就是发送两个字节的寄存器地址,先发送地址的高字节,再发送地址的低字节,但是这一招在AT24C08上不适用,然后就逼我看一下AT24C08的数据手册http://pdf1.alldatasheet.com/datasheet-pdf/view/509421/ATMEL/AT24C08C-SSHM-T.html,上面第10页写道:
Standard EEPROM Access: The 4K and 8K EEPROM device requires an 8-bit device address word following a start
condition to enable the chip for a read or write operation. The device address word consists of a mandatory “1010” (0xA)
sequence for the first four Most Significant Bits (MSB) as shown in Figure 8-1 on page 11. This is common to all the
EEPROM devices.
The 4K EEPROM only uses the A2 and A1 device address bits with the third bit being a memory page address bit. The
two device address bits must compare to their corresponding hard-wired input pins. The A0 pin is no connect.
The 8K EEPROM only uses the A2 device address bit with the next two bits being for memory page addressing. The A2
address bit must compare to its corresponding hard-wired input pin. The A1 and A0 pins are no connect.
AT24C08的器件地址的定义如下:
这里写图片描述
说得很清楚,AT24C08将器件地址(Device Addr)中的A1和A0位作为Page address,也就是说A1和A0是存储器的10位地址中的最高两位,我们再读写数据的时候要将地址的最高两位(page地址)放在这里。示例程序如下:

void IIC_Send(u8 device,u16 addr,u8 dat)
{
    IIC_Start();
    IIC_SendByte(device | (addr >> 8));
    IIC_Wait_Ack();
    IIC_SendByte((u8)addr);  
    IIC_Wait_Ack();  
    IIC_SendByte(dat);
    IIC_Wait_Ack();
    IIC_Stop();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EEPROM AT24C08的操作 的相关文章

  • java虚拟机内存参数设置,reservedcodecachesize虚拟机jvm参数详解与调优说明

    一 reservedcodecachesize参数介绍 该参数是JvM虚拟机调优中调整内存大小的一个设置参数 值得大小设置直接影响到Code Cache的大小 而jvm编译的代码有常常存放在Code Cache中 而Code Cache的空
  • vue+ElementUI el-table表格再次封装集成多级表头合并单元格(表头分组、多级表头合并)及render渲染列

    1 此功能已集成到TTable组件中 2 实现思路 使用递归组件 源码
  • C++STL之各种容器的使用场景

    1 总结相关容器的使用场景 1 vector的使用场景 只查看 而不频繁插入删除的 因为频繁插入删除会造成内存的不断搬家和删除 使用场景比如软件历史操作记录的存储 我们经常要查看历史记录 比如上一次的记录 上上次的记录 但却不会去删除记录
  • OpenWRT 程序开机启动

    原理 bin sh etc rc common指定了执行该脚本的方式 必须 START 95 代表该脚本的启动顺序为95 注意 不是第95个执行的脚本 而是一个级别 数字越小 启动的越早 start 启动服务 stop 停止服务 resta
  • keil5 Debug调试报错“No CPU DLL specified under “Options for Target - Debug‘!”

    正常测试某个读写测试示例 结果Debug出弹窗如下图 最后解决方式如下 点击 魔术棒 Debug 在Driver DLL中填入 SARMCM3 DLL 点击ok 再次进行调试 问题解决
  • mysql(六)多列索引之索引顺序问题

    使用索引常见的错误是 为每列创建单独的索引 或者按照错误的顺序创建多列索引 多列索引 多列索引 是指在创建索引时所关联的字段不是一个字段 而是多个字段 虽然可以通过所关联的字段进行查询 但是只有查询条件中使用了所关联字段中的第一个字段 多列
  • uvm之寄存器模型

    寄存器模型的意义 寄存器模型的搭建 寄存器模型的FAQ 寄存器模型的意义 寄存器模型 字面理解 跟参考模型类似 就是为工程里的寄存器提供一个参考模型 这个模型里 包括各个寄存器字段描述 寄存器 寄存器组 寄存器地址映射等信息 有如下好处 寄
  • 【python小游戏毕设】吃豆人小游戏设计与实现

    文章目录 0 前言 1 课题背景 2 实现效果 3 Pygame介绍 4 原理和实现 4 1 环境配置 4 3 创建游戏类 4 3 游戏地图 4 4 游戏主循环 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕
  • TensorFlow学习笔记(八)—— TensorFlow基于MNIST数据集识别手写数字

    训练程序 参照Tensorflow中文社区教程 http www tensorfly cn tfdoc tutorials mnist pros html 能在自己的环境中成功运行代码 注意一点 关于教程的print函数 在博主用的Pyth
  • 一年级课程表(4月11日-4月15日)

    一年级课程表 4月11日 4月15日 时间 周一 周二 周三 周四 周五 9 00 9 25 语文 课文 数学 复习巩固 语文 课文 数学 复习巩固 语文 语文园地 9 30 9 40 眼 操 眼 操 眼 操 眼 操 眼 操 9 40 10
  • mysql建库语句 最简单最常用语句

    mysql建库语句 一 创建数据库 create database doc 创建数据库doc 二 创建用户 create user doc identified by mysql 创建用户doc 密码mysql 所有域名或IP可访问 三 访
  • DOM 的属性

    1 nodeName nodeName 属性规定节点的名称 nodeName 是只读的 元素节点的 nodeName 与标签名相同 属性节点的 nodeName 与属性名相同 文本节点的 nodeName 始终是 text 文档节点的 no
  • input的value值在页面上被改变,但是查看器代码中值不改变

    这里需要用attr 写入 而不使用val 方法 另外如果想动态改值一定不要用disabled disabled 用readonly true 代替
  • Go GPM 调度器介绍

    Go GPM 调度器介绍 1 简介 这几天在学习Go的GPM机制 于是就整理了一下收集的资料分享给大家 文章末尾有原文链接 主要介绍了Go在运行时调度器的基本实现逻辑和演变过程 2 什么是Go调度器 Go调度器很轻量也很简单 足以撑起gor
  • ☀️光学会自动化测试还不够?还差最后这一步!☀️

    同大多数项目一样 自动化测试项目也需要一个完整的项目管理流程 在项目执行之前要进行充分的评估和计划 项目执行过程中要把控每个节点的质量 执行后要进行复盘和评估 确保项目顺利实施 并达到预期效果 01 自动化项目启动 在项目启动阶段 我们要明
  • cmd 字符串拼接

    在 Windows 系统的 cmd 或 PowerShell 中 可以使用 来拼接字符串 例如 echo 我的名字是 amp echo 小明

随机推荐

  • 10 个实用功能告诉你,谷歌云(Google Cloud)相对亚马逊云(AWS)有哪些优势?...

    来源 itnext 编译 武明利 责编 Carol 出品 CSDN云计算 ID CSDNcloud 有很多文章将谷歌云提供商 GCP 与亚马逊云服务 AWS 进行比较 但这篇文章并不想要做比较 作者主要是一个AWS用户 但最近一直使用GCP
  • LeetCode198.打家劫舍(动态规划)

    题目描述 来自LeetCode 思路 这道题和01背包很像 这件房屋偷不偷跟前一间房屋是否偷了有关 比如说这是第i间房屋 如果第i 1间房屋偷了 那第i间房屋就不能再偷 那最大值就跟前i 1间房屋的金额最大值有关 如果第i 1间房屋没偷 那
  • hp linux 禁用u盘启动,BIOS关闭Secure Boot(安全启动)方法大全(联想,华硕,DELL,HP等品牌)...

    在预装win10系统的电脑上BIOS中安全启动Secure Boot是默认开启的 如果你要安装其他系统 如Win7 Linux等系统那么需要关闭才可以 不然会无启动 这小编整理了联想 华硕 DELL HP等品牌关闭Secure Boot 安
  • 斗罗大陆解算法—魂环的最佳获取法

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 背
  • 关于kettle的一些使用笔记

    Kettle是一款国外开源的ETL工具 纯java编写 对于办公自动化来说也是一款神器 好了直入主题 这里只记录了kettle的一些常用的转换的组件作用和意义 并不含软件安装和使用过程 因为这个过程很简单 界面很友好 可以自己摸索 vers
  • Android9.0 iptables用INetd实现ip白名单的实现

    1 前言 在9 0的系统rom定制化开发中 在system中netd网络这块的产品需要中 会要求设置屏蔽ip地址之内的功能 liunx中iptables命令也是比较重要的 接下来就来在INetd这块实现ip白名单的的相关功能 就是在app中
  • 理解Linux下的进程和程序,分析fork、execve和进程切换

    本次实验从整体上理解进程创建 可执行文件的加载和进程执行进程切换 重点理解分析fork execve和进程切换 一 理解task struct数据结构 进程是处于执行期的程序以及它所管理的资源 如打开的文件 挂起的信号 进程状态 地址空间等
  • 经理人必看的十个管理网站

    经理人必看的十个管理网站 管理这玩艺远远看着如同象牙塔中的佛牙舍利 可观而不可玩 其实身在其中无非就是一张窗户纸 没有什么大不了的 管理这玩艺远远看着如同象牙塔中的佛牙舍利 可观而不可玩 其实身在其中无非就是一张窗户纸 没有什么大不了的 网
  • C# NPOI写excel文件,设置某个单元格为自动筛选

    https blog csdn net qq 40467670 article details 118102078 如标题所示 附上几行代码 HSSFWorkbook workbook new HSSFWorkbook 创建工作表 var
  • Uva 10474 Where is the Marble?(排序与检索)

    本题若掌握了sort 和lower bound 两个函数 就无难点 include
  • 通关6级之词汇(2021.05.29)

    前言 这篇词汇是通关6级系列第一篇文章 这篇文章和4级有大部分内容是一样的 所以如果学了4级的课程再学这个会很轻松 更多相关文章点击阅读 通关4级之阅读理解 通关4级之听力 通关4级之写作 通关4级之翻译 通关4级之词汇 通关6级之词汇 点
  • STM32 ST-LINK Utility程序烧录方法

    打开软件过后点击Target connect 出现以下界面表示STlink链接成功 如果出现没有检测到stlink的话 首先查看是否安装驱动程序 再重新插拔电脑usb口的stlink连接线 或者链接到主机后方的usb口 再重复以上步骤链接
  • Fire Net

    点击打开链接 Problem Description Suppose that we have a square city with straight streets A map of a city is a square board wi
  • 利用python对b站某GPT-4解说视频的近万条弹幕进行爬取、数据挖掘、数据分析、弹幕数量预测及情绪分类

    目录 一 利用Python爬取弹幕 二 利用几行代码直接生成词云 三 将弹幕属性和内容放入mysql当中 四 分析弹幕在视频各节点的数量 1 分析视频各个片段出现的弹幕数量 2 分析视频各大章节出现的弹幕数量 3 分析视频各小节出现的弹幕数
  • Learning Java language Fundamentals

    Chapter 2 Learning Java language fundamentals exercises 1 What is Unicode Unicode is a computing industry standard for c
  • 炒股新手技巧

    技巧一 关于止损和止赢的问题 我觉得很重要 止赢和止损的设置对股民来说尤为重要 有很多散户会设立止损 但是不会止赢 今天有必要和大家探讨一下 止损的设立大家都知道 设定一个固定的亏损率 到达位置严格执行 但是止赢 一般的散户都不会 为什么说
  • 用mybatis批处理, 编程式事务,CompletableFuture异步处理,多线程,线程池,list 分页,实现多张表大批量插入

    目录 概述 准备工作 创建数据库表 创建Java实体类 创建MyBatis映射文件和DAO接口 编写Java代码实现多张表大批量插入的功能 总结 1 概述 在实际的开发中 我们经常需要将大量的数据插入到数据库中 如果使用单条插入的方式 会导
  • vs2017 找不到源文件stdio.h解决方法

    这个问题网上又不少人提出 我的vs出现这个问题是因为我电脑重装系统了 原来的项目所采用windows SDK 已经发生了变化 因此解决的办法是 项目 gt 属性 gt 配置属性 gt 常规 gt windows SDK版本 将其换成你现在的
  • 【论文阅读】【因果关系】

    文章目录 因果理论的三个层级 张含望 因果推理在计算机视觉中的进展 浙江大学助理教授况琨 因果推理和稳定学习 因果理论的三个层级 该篇是本人入门因果 CV的随笔 期间会借鉴记录别人的理解 引用的部分会给出原始连接 如有侵权请联系我删除 Ju
  • EEPROM AT24C08的操作

    EEPROM应该是学习IIC总线时候最先接触的东西了 EEPROM的优点是可以随机存取 不像Flash存储器一样需要先擦除在能写入 而且擦写次数多存储时间长 但是缺点是存储空间非常有限 像我这用的Atmel的AT24C08只有8Kbit的存