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,您将获得以下技 ...
随机推荐
- OBS直播抠绿插件(Matting123)
一.产品概述 OBS直播抠绿插件(Matting123)是使用绿幕.蓝幕进行抠像的虚拟直播软件,本软件需要配合OBS30.0.0或以上版本进行使用.Matting123采用自研抠图算法,该算法已达到影 ...
- vs2022不安装docker desktop可以打包镜像吗
vs2022开发的项目可以直接打包镜像到 linux主机. idea 可以使用docker插件直接打包镜像到linux,我想vs2022也可以,于是开始摸索 官网只说支持docker desktop ...
- Goby漏洞发布 | CVE-2024-4879 ServiceNowUI /login.do Jelly模板注入漏洞【已复现】
漏洞名称:ServiceNowUI /login.do Jelly模板注入漏洞(CVE-2024-4879) English Name:ServiceNowUI /login.do Input Val ...
- parser.add_argument
parser.add_argument 在解析参数时,有个地方很值得注意. --dict-name,会把dict-name解析为变量dict_name.也就是说会把破折号转成下划线.
- JS的可选链操作符(?.)与双问号(??),你用到了吗?
可选链操作符(?.) 以前一般这样使用: let nestedProp = obj.first && obj.first.second; 或者这样: let temp = obj.fi ...
- CSS – display, visibility, opacity, transparent 的区别
前言 要让一个元素"消失", 有 3 种做法. 它们有一点点的不同. 在实战时要清楚什么时候用什么哦. 例子说明 <div class="abc"> ...
- [34](CSP 集训)CSP-S 联训模拟 1
A 几何 重复若干次 -> 不能重叠,因此考虑直接暴力 DP 设 \(f_{i,j,k}\) 表示主串匹配到第 \(i\) 位(将前 \(i\) 位分别归为两类),其中 \(x\) 在重复了若干 ...
- .NET 8.0 酒店管理系统设计与实现
前言 给大家推荐一个基于.NET 8.0 的中小型酒店设计的管理系统. 随着酒店的日常工作增加,很难用人工去进行处理一些繁琐的数据,也可能会因为人工的失误而造成酒店的损失,因此需要一款可以协助酒店进行 ...
- ftrace options 中的irq-info
/sys/kernel/debug/tracing/options/irq_info 是 ftrace 中的一个选项,用于启用或禁用有关中断的详细信息的跟踪. options/irq_info 的具体 ...
- 使用SourceTree管理仓库代码
1.首先我们需要下载sourcetree,你可以去官网下载自己需要的版本. 2.安装完毕之后,我们需要获取ssh密钥与github关联上才能使用 按下面的操作开始执行.确定之后,会出现一个字符界面,输 ...