Air780E的I2C软件使用指南
今天我们学习合宙低功耗4G模组Air780E的I2C接口操作方法,文末【阅读原文】获取最新资料。
一、I2C概述
Air780E可支持1路I2C接口,如果复用的话最多有两路:
I2C配置:
兼容PhilipsI2C标准协议。
支持Fastmode(400Kbps)和Slowmode(100Kbps)。
只支持master模式,不支持slaver模式。
可通过软件来配置内部的上拉电阻,1.8K或者20K。
理论上最多可支持127个从设备。
管脚名 | 类型 | 序号 | 电压域 | 描述 |
I2C_SCL |
IO |
67 |
VDD_EXT |
I2C时钟信号,用作I2C时需外加上拉 |
I2C_SDA |
IO |
66 |
VDD_EXT |
I2C时钟信号,用作I2C时需外加上拉 |
I2C的参考电路如下:
Air780E的I2C接口电压是1.8V/3.3V可配置,通过PIN100IO_SEL配置IO口电平,能够满足大部分外设的直接需求,但是如果要和5V或者以上电平的外设通信,那就必须要加电平转换电路
二、演示功能概述
本例程将使用I2C协议读取传感器数据并打印出来。
三、准备硬件环境
3.1 780E开发板一套
此核心板的详细使用说明参考:Air780E产品手册中的<<开发板Core_Air780E使用说明V1.0.5.pdf>>;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。
3.2 数据通信线
typec接口USB数据线即可。
3.3 PC电脑
WINDOWS系统。
3.4 sht20温湿度传感器一个
3.5 780E与sht20接线图如下
四、准备软件环境
4.1 基本的下载调试工具
使用说明参考:Luatools下载和详细使用;
https://docs.openluat.com/Luatools/
五、使用I2C读取sht20软硬件资料
5.1 文档和工具:
780E模块使用固件:SDK&Demo-合宙文档中心,本demo使用的固件版本是:
LuatOS-SoC_V1112_EC618_FULL.soc
本教程使用的demo:
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/sht20
将固件和脚本烧录到模块中:Luatools下载和使用教程-合宙模组资料中心
源码和固件已打包,如下所示:右键点我,另存为,下载完整压缩文件包
5.2demo使用api介绍
i2c.setup(id,speed,pullup)
作用:i2c初始化
参数:
传入值类型 | 解释 |
int |
设备id,例如i2c1的id为1,i2c2的id为2 |
int |
I2C速度,例如i2c.FAST |
bool |
是否软件上拉,默认不开启,需要硬件支持 |
返回值:
返回值类型 | 解释 |
int |
成功就返回1,否则返回0 |
i2c.send(id,addr,data,stop)
作用:i2c发送数据
参数:
传入值类型 | 解释 |
int |
设备id,例如i2c1的id为1,i2c2的id为2 |
int |
I2C子设备的地址,7位地址 |
integer/string/table |
待发送的数据,自适应参数类型 |
integer |
可选参数是否发送停止位1发送0不发送默认发送(105不支持) |
返回值:
传入值类型 | 解释 |
true/false |
发送是否成功 |
i2c.recv(id,addr,len)
作用:i2c接收数据
传入值类型 | 解释 |
int |
设备id,例如i2c1的id为1,i2c2的id为2 |
int |
I2C子设备的地址,7位地址 |
int |
接收数据的长度 |
返回值:
传入值类型 | 解释 |
string |
收到的数据 |
六、代码示例介绍
6.1 读取SHT20温湿度传感器
6.1.1 SHT20简介:
SHT20是使用I2C协议进行通信的温湿度传感器。
首先我们可以发送STH20的7位从机地址+1位读写位(写0读1),然后发送8位的命令,0xF3是读取温度的命令,0xF5是读取湿度的命令。发送完后接收应答,等待20us之后我们发出I2C的结束时序。
6.1.2 demo介绍
首先初始化i2c,然后给sht20发送读取温湿度命令,接收sht20回传的数据即可。
6.1.3 将程序下载到开发板:
使用说明参考:Luatools下载和详细使用
https://docs.openluat.com/Luatools/
七、功能验证
成功使用I2C协议读取到sht20传感器的温湿度数值。
八、总结
本例程使用i2c协议读取了sht20传感器传输的温湿度数值。
九、常见问题
9.1 i2c每次读写数据前都需要setup一次吗?
不需要。
正常的业务逻辑为:
i2c.setup,
…此处可以多次读写数据,
i2c.close,
setup之后,只要没有close,就可以反复读写数据,
一旦执行了close,下次读写数据前,必须再次setup。
9.2 i2c通信时模块可以做从设备吗?
注意:模块I2C只能做主设备,外部需要上拉,在配置FAST速率时,上拉电阻阻值不要大于4.7K。
9.3 i2c设备7位的地址为0x38,需要我手动转换到8位地址吗?
这里i2c_addr地址是7bit地址,如果i2c外设手册中给的是8bit地址,需要把8bit地址右移1位,赋值给i2c_addr变量;如果i2c外设手册中给的是7bit地址,直接把7bit地址赋值给i2c_addr变量即可。
Air780E的I2C软件使用指南的更多相关文章
- 《移山之道:VSTS软件开发指南》读书笔记
这两天看了<移山之道:VSTS软件开发指南>,对团队软件开发又有了新的认识.也许对于我们这些软件开发的新手来说,最重要的是具体技术与应用框架,但读了这本书后我感觉到,实际团队项目中工具的使 ...
- I2C软件模拟协议与电容触摸控制
I2C 与 Touch slide 最近做了一个与触摸滑条相关的测试,利用I2C通讯协议来配置触摸控制芯片的相关寄存器,读取触摸读数,并通过STM Studio动态显示触摸读数的变化过程.这个测试相对 ...
- 搜寻Linux软件实用指南
搜寻Linux软件实用指南 对于初学者来说,仅仅安装好Linux系统还是不够的,还需要安装大量的应用软件.许多下载网站都提供了诸如装机必备软件的下载,分门别类提供经典的工具软件下载.本文主要针对初学 ...
- I2C软件调试思路并知识总结
I2C是一种只使用两根线的串行通信协议.一根线是串行数据线SDA,另外一种是串行时钟线SCL. I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v. I²C的参考设计使用一个7比特长 ...
- Mac 平台下功能强大的Shimo软件使用指南
年初自从换了MAC工作站后,彻底享受了Apple产品给我们带来的完美体验,可能是刚转过来不适应,在访问网络设备时觉得远程连接不方便,例如ssh,vpn登陆都不是很方便,后来又安装了openvpnfor ...
- 读《移山之道——VSTS软件开发指南》
读<移山之道>这本书差不多用了一个星期的时间,感觉还是收获了一些知识的,以前只是会简单地编个小程序(虽然现在也是这样),但看过这本书之后我对软件开发这个概念的认识度有了从一片模糊到了解大体 ...
- 读《移山之道-VSTS软件开发指南》
首先,我选择<移山之道>有几个原因.第一,书的名字给我一种新鲜感,而不是像另外两本书那么平常:第二,作者邹欣是老师推荐的,看一看他的书或许能让我发现老师对他推崇备至的原因,而实际上,读完这 ...
- win10软件使用指南备忘录
altrun:http://xbeta.info/altrun.htm timer:https://www.playpcesor.com/2009/04/timer.html (好像要上网打开) do ...
- 蛋白组DIA分析:Spectronaut软件使用指南
官方文档: https://biognosys.com/media.ashx/spectronautmanual.pdf 0. 准备 Spectronaut软件是蛋白组DIA分析最常用的谱图解析软件之 ...
- 如何开发优质的 Flutter App:Flutter App 软件调试指南
本次博主带来的是<深入 Flutter 系列课程>第三讲,主要聊聊如何进行 Flutter App 代码的调试.本次课程将在GitChat平台上免费进行,通过本场 Chat,您将获得以下技 ...
随机推荐
- Graphics2D绘图方法总结
一.简介 在开发中可能会遇到这样一类场景,业务复杂度不算太高,技术难度不算太深,但是做起来就很容易把人整破防,伤害很高侮辱性很强的:绘图. 绘图最怕有人挑刺:这里变形,那里不对,全图失真. 最近在处理 ...
- Devexpress GridView 单元格输入检验
实现效果 打开设计器 找到CellValueChanged事件 编写代码 private void gvmain_CellValueChanged(object sender, DevExpress. ...
- Kubernetes利用Volume挂载ConfigMap与Secret
1.概述 在Kubernetes集群中,应用的配置管理是一个关键且复杂的任务.随着应用的扩展和微服务架构的普及,传统的配置文件管理方式已经难以满足动态.灵活的配置需求.幸运的是,Kubernetes提 ...
- WebShell流量特征检测_中国菜刀篇
80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测. 什么是一句话木马? 1.定义 顾名思义就是执行恶意指 ...
- 利用分布式锁在ASP.NET Core中实现防抖
前言 在 Web 应用开发过程中,防抖(Debounce) 是确保同一操作在短时间内不会被重复触发的一种有效手段.常见的场景包括防止用户在短时间内重复提交表单,或者避免多次点击按钮导致后台服务执行多次 ...
- cesium中添加建筑白模
1.在cesium中添加模型依赖于Cesium ion帐户的资产id,在这里创建账户. 2.上传模型(模型文件类型在Cesium ion中有说明,模型的提取办法可在这里查看)到账户中并平铺为3D Ti ...
- Round #2022/12/03
问题 B: 约数个数 题目描述 有 \(t\) 次询问,每次给你一个数 \(n\) ,求在 \([1,n]\) 内约数个数最多的数的约数个数. 输入 第一行一个正整数 \(t\) . 之后 \(t\) ...
- EF Core – 7.0 New Features
前言 这篇不会细谈功能, 只是一个总链接. 参考 Docs – What's New in EF Core 7.0 Breaking Change 参考: Docs – Breaking change ...
- CSS – min(), max(), clamp()
介绍 它们类似 calc(). 用来通过 formula 输出一个值. 用于 font-size, width, height 之类的, 这些地方. 非常适合用来做 RWD 哦 (特别是 font-s ...
- EF Core – Temporal Table 时态表
前言 EF core 6.0 开始有 build-in 的 Temporal Table 支持了. 关于 SQL Server Temporal Table 可以看这篇. 主要参考 What's Ne ...