STM32读取EEPROM存储芯片AT24C512故障然后排坑记录

news/2024/6/17 2:36:50 标签: stm32, 嵌入式硬件, 单片机, AT24C512, AT24C, EEPROM芯片

背景:

有一个项目用到STM32F091芯片去读取 AT24C512.html" title=AT24C512>AT24C512C-SSHD  EEPROM 芯片,我直接移植了之前项目的IIC库,结果程序运行后,读不出EEPROM里面的数据。

摘要:

本文主要介绍一个基于STM32F091芯片和AT24C512.html" title=AT24C512>AT24C512C-SSHD EEPROM芯片的项目,该项目旨在读取EEPROM芯片中的数据。我直接移植了之前项目的库,但是遇到了读不出EEPROM数据的问题。本文记录了问题的发型与排查过程。

运行开发环境介绍

硬件环境

STM32F091CBT6

J-LINK  V11

软件开发环境

IAR 8.32.1 

VSCODE 

软件支持包ST HAL 库

正文:

来到新公司后接了一个项目,用到STM32F091芯片去读取 AT24C512.html" title=AT24C512>AT24C512C-SSHD  EEPROM 芯片,我直接移植了之前项目的IIC驱动库,结果程序运行后,读不出EEPROM里面的数据。

解决方法:

1.单步仿真,在IIC驱动部门的SCL和SDA 拉高和拉低之后打断点,然后单步运行,用万用表测量电压,看SCL 和SDA线的电平变化是否正常。

2.重新查看EEPROM芯片数据手册,搜索定位问题。

实验结果:

解决方法1:

单步仿真,用电压表量电压,发现电压变化正常。

解决方法2:

重新查看数据手册,发现了下面的东东:

大体意思就是说, AT24C512.html" title=AT24C512>AT24C512C Device Address 的地址字中

A0 A1 A2 代表着EEPROM芯片的IIC通讯地址。

而且设备地址的LSB最后一位还代表着不同的读写模式。

 再看一下我的电路图,可以看到,我的电路中A0是1,A1 A2 为 0 

可以看到我发送的器件地址为  0xA0,这就是因为我直接用的之前AT24C512.html" title=AT24C512>AT24C512 的 IIC  驱动库,没有注意到芯片的地址是可更改的。

所以程序中应该将地址改为:0xA8

容易踩的坑:

AT24C系列EEPROM的IIC通讯器件地址是可以硬件配置的!

移植原有代码的时候,特别是像我这样跳槽了后注意不同硬件设计人员的设计习惯不一样!


http://www.niftyadmin.cn/n/5260453.html

相关文章

用23种设计模式打造一个cocos creator的游戏框架----(十五)策略模式

1、模式标准 模式名称:策略模式 模式分类:行为型 模式意图:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化 结构图: 适用于&#xff1…

【密码学】RSA破解方法汇总(PYTHON实现)

源自于密码学的一次大作业~ RSA破解 💡 Alice使用的RSA密码体制,有以下事项需要说明: 1) 模数𝑁𝑝𝑞规模为1024比特,其中𝑝,𝑞为素数&#xff1…

报名众筹小程序系统源码:在线投票+众筹模式+完整的安装部署教程

随着互联网的普及和发展,众筹作为一种新型的融资方式,逐渐受到越来越多人的关注和认可。众筹不仅可以帮助个人或企业筹集资金,还可以促进创意的传播和实现。因此,开发一款具有在线投票和众筹功能的微信小程序,对于满足…

基于pytorch 的RNN实现文本分类

首先,需要导入必要的库,包括torch、torchtext、numpy等: import torch import torch.nn as nn import torch.optim as optim import numpy as np from torchtext.datasets import AG_NEWS from torchtext.data.utils import get_tokenizer f…

EFK 部署(一次成功)并且验证测试

1、创建 Elasticsearch 集群 创建对应namespace 在创建 Elasticsearch 集群之前,我们先创建一个命名空间,我们将在其中安装所有日志相关的资源对象。 新建一个namespace-logging.yaml 文件 cat >>namespace-logging.yml<<-EOFapiVersion: v1 kind: Namespace …

多彩m618鼠标使用体验

第二次使用立式鼠标&#xff0c;据说这一款很经典&#xff0c;价格也不贵&#xff0c;买回来试试。 用了几天&#xff0c;手感比前一个鼠标差了好多&#xff0c;用了好几天稍微能接受那么一点了&#xff0c;勉强用着吧&#xff0c;多一个体验。 我一直以为立式鼠标有一个成熟…

influxdb docker安装

在Docker上安装InfluxDB是相对简单的过程&#xff0c;以下是基本的步骤&#xff1a; 拉取InfluxDB镜像&#xff1a; 打开终端或命令行界面&#xff0c;并运行以下命令拉取InfluxDB的官方Docker镜像&#xff1a; docker pull influxdb 创建InfluxDB容器&#xff1a; 使用以下命…

高效营销系统集成:百度营销的API无代码解决方案,提升电商与广告效率

百度营销API连接&#xff1a;构建无代码开发的高效集成体系 在数字营销的高速发展时代&#xff0c;企业追求的是快速响应市场的能力以及提高用户运营的效率。百度营销API连接正是为此而生&#xff0c;它通过无代码开发的方式&#xff0c;实现了电商平台、营销系统和CRM的一站式…