当前位置: 首页 > article >正文

I2C通信

一、理论上了解I2C时序

I2C写数据时序如图:

 通过解析器解析I2C通信如上图(SCL和SDA反了)。

1---起始信号        2、3---应答信号ACK       5---停止信号

起始信号:SCL线是高电平时,SDA线从高电平向低电平切换。

停止信号SCL线是高电平时,SDA线从低电平向高电平切换。

I2C通信的过程:

起始--->写NFC芯片的地址(NFC芯片确认地址给MCU响应)--->MUC发送想要写入的寄存器地址(NFC芯片收到给响应)--->给地址写入数据(写入完成给响应)--->结束

注意:写NFC芯片的地址,一般NFC芯片为七位,比如:1010111,第八位是读写操作位。

1代表读;0代表写。

例如:0xA0是想对应芯片地址写数据。

遇到的问题:

写NFC地址的时候,没有收到对应响应。

查找数据手册后发现,有的芯片需要把CSN引脚拉低,拉低后解决问题。

二、实战

有一款NFC芯片FM11NT081D,它是通过I2C写入或读取里面数据的。

1、细看数据手册

粗略浏览数据手册目录,找到重点细看。

如:I2C工作流程、主机向从机写入数据流程及读取数据流程,还有写入数据用户区等。

 2、测试读写数据

2、1写数据

看数据手册分析:

芯片地址是1010111,七位地址

流程应该是:

start--->写NFC芯片的地址(最后一位是0,写数据)--->MUC发送想要写入的寄存器地址1--->MUC发送想要写入的寄存器地址2(注意高字节在前,低字节在后)  --->写入数据--->stop

对应写入代码测试效果。

 从下图看到数据写入成功。

遇到的问题:

我在写完两个寄存器地址后,告诉芯片现在开始写数据(这一步多余的,因为人家数据手册上告诉你:写入两个寄存器地址就可以写数据了!),加入了这个代码,时序上有回应,但是芯片读数据是没有写入信息。

 2、2读数据

 读数据就比较有意思了。

数据手册这样写:流程应该是:

start--->写NFC芯片的地址(最后一位是1,读数据)--->MUC发送想要写入的寄存器地址1 --->读数据--->stop

但是按照这个流程测试,读不到数据。

查看数据手册,字节数超过256,经询问要写入寄存器地址两个,在读取。

 

然后,修改了一下读数据流程:

start--->写NFC芯片的地址(最后一位是0,写数据)--->MUC发送想要写入的寄存器地址1--->MUC发送想要写入的寄存器地址2(注意高字节在前,低字节在后)  --->告诉芯片开始读数据 --->读数据--->stop

以上流程可以读到数据。虽然不太懂,MCU终于可以读到数据了(开心~)。

 


http://www.kler.cn/news/12005.html

相关文章:

  • clickhouse跳表索引最佳实践--minmax索引+Set索引
  • Spring中Bean的安全性问题--面试题
  • Spring IoC注解开发
  • 【我的创作纪念日】恒川的创作一周年
  • 剪枝与重参第五课:前置知识
  • 亚马逊云科技十七年持续进化,解锁Amazon S3的七项新发布
  • 关于运行时内存数据区的一些扩展概念
  • NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
  • elasticsearch 拼音分词器 自动补全。
  • 【测试面试汇总2】
  • 3.3 泰勒公式
  • 少儿编程 电子学会图形化编程等级考试Scratch三级真题解析(选择题)2022年12月
  • 顺序表(更新版)——“数据结构与算法”
  • Go语言流处理,工厂模式,命令参数,序列化,单元测试
  • 计算机网络 实验六
  • DC插装式流量阀压力阀
  • UDP/TCP的相关性你知道几个?
  • St link V2驱动安装方法
  • Spring Security 6.0系列【22】源码篇之防护跨站请求伪造流程分析
  • 全回显SSRF测试两则
  • C语言 字符串解析strchr/strrchr/strtok//strtok_r函数使用
  • 苏州源特VPT87DDF01B 隔离变压器 小体积/SMD/3000VDC 隔离
  • 历代程序员都无法逃脱的诅咒 -- 低代码
  • nodejs+vue家庭菜谱食谱管理系统
  • C++ 图系列之基于有向无环图的拓扑排序算法
  • oracle远程克隆pdb
  • 协议篇之以太网UDP协议
  • python爬虫基础
  • 场景搭建、素材库、在线标绘等,四维轻云地理空间数据云管理平台新增了这些功能
  • 【python学习】基础篇-列表推导式快速生成列表