今天我们学习合宙低功耗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软件使用指南的更多相关文章

  1. 《移山之道:VSTS软件开发指南》读书笔记

    这两天看了<移山之道:VSTS软件开发指南>,对团队软件开发又有了新的认识.也许对于我们这些软件开发的新手来说,最重要的是具体技术与应用框架,但读了这本书后我感觉到,实际团队项目中工具的使 ...

  2. I2C软件模拟协议与电容触摸控制

    I2C 与 Touch slide 最近做了一个与触摸滑条相关的测试,利用I2C通讯协议来配置触摸控制芯片的相关寄存器,读取触摸读数,并通过STM Studio动态显示触摸读数的变化过程.这个测试相对 ...

  3. 搜寻Linux软件实用指南

    搜寻Linux软件实用指南  对于初学者来说,仅仅安装好Linux系统还是不够的,还需要安装大量的应用软件.许多下载网站都提供了诸如装机必备软件的下载,分门别类提供经典的工具软件下载.本文主要针对初学 ...

  4. I2C软件调试思路并知识总结

    I2C是一种只使用两根线的串行通信协议.一根线是串行数据线SDA,另外一种是串行时钟线SCL. I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v. I²C的参考设计使用一个7比特长 ...

  5. Mac 平台下功能强大的Shimo软件使用指南

    年初自从换了MAC工作站后,彻底享受了Apple产品给我们带来的完美体验,可能是刚转过来不适应,在访问网络设备时觉得远程连接不方便,例如ssh,vpn登陆都不是很方便,后来又安装了openvpnfor ...

  6. 读《移山之道——VSTS软件开发指南》

    读<移山之道>这本书差不多用了一个星期的时间,感觉还是收获了一些知识的,以前只是会简单地编个小程序(虽然现在也是这样),但看过这本书之后我对软件开发这个概念的认识度有了从一片模糊到了解大体 ...

  7. 读《移山之道-VSTS软件开发指南》

    首先,我选择<移山之道>有几个原因.第一,书的名字给我一种新鲜感,而不是像另外两本书那么平常:第二,作者邹欣是老师推荐的,看一看他的书或许能让我发现老师对他推崇备至的原因,而实际上,读完这 ...

  8. win10软件使用指南备忘录

    altrun:http://xbeta.info/altrun.htm timer:https://www.playpcesor.com/2009/04/timer.html (好像要上网打开) do ...

  9. 蛋白组DIA分析:Spectronaut软件使用指南

    官方文档: https://biognosys.com/media.ashx/spectronautmanual.pdf 0. 准备 Spectronaut软件是蛋白组DIA分析最常用的谱图解析软件之 ...

  10. 如何开发优质的 Flutter App:Flutter App 软件调试指南

    本次博主带来的是<深入 Flutter 系列课程>第三讲,主要聊聊如何进行 Flutter App 代码的调试.本次课程将在GitChat平台上免费进行,通过本场 Chat,您将获得以下技 ...

随机推荐

  1. 详谈怎样配置微信小程序的分包以解决体积过大问题(转载)

    一.文件结构和工具功能 1.小程序编译的文件结构 非常必要推荐了解小程序文件结构,对于稍大的项目,对于包的精简会起到柳暗花明又一村的效果 .众所周知,微信小程序分为"主包"和&qu ...

  2. JVM学习第二篇思考:一个Java代码是怎么运行起来的-下篇

    JVM学习第二篇思考:一个Java代码是怎么运行起来的-下篇 在上一篇<JVM学习第一篇思考:一个Java代码是怎么运行起来的-上篇>中咱们知道类一个Java类的生命周期需要经历以下七个阶 ...

  3. 使用 nuxi upgrade 升级现有nuxt项目版本

    title: 使用 nuxi upgrade 升级现有nuxt项目版本 date: 2024/9/10 updated: 2024/9/10 author: cmdragon excerpt: 摘要: ...

  4. [JS设计模式]:策略模式及应用-计算奖金、表单验证的实现(5)

    介绍 策略模式的意义是定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.此模式让算法的变化不会影响到使用算法的客户. 实现 举一个例子,比如我们做数据合法性校验,一般是通过swich来实现 ...

  5. Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体

    近日,TextIn开发的PDF转Markdown插件正式上架Coze平台. 在扣子搜索"pdf转markdown",或在Coze平台搜索"pdf2markdown&quo ...

  6. PRCV 2023:语言模型与视觉生态如何协同?合合信息瞄准“多模态”技术

    PRCV 2023:语言模型与视觉生态如何协同?合合信息瞄准"多模态"技术 近期,2023年中国模式识别与计算机视觉大会(PRCV)在厦门成功举行.大会由中国计算机学会(CCF). ...

  7. @vue/cli eslint插件使用指南

    使用步骤 使用 npm 安装 @vue/cli-service 版本对应的 @vue/cli-plugin-eslint 例如:"@vue/cli-service": " ...

  8. 升讯威在线客服系统如何高性能同时支持 MySQL 和 SQL Server

    升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放.开源.共享.努力打造 .net 社区的一款优秀开源产品. 前段时间我发表了一系列文章,开始介绍基 ...

  9. 用PowerDesigner创建Oracle模型转为mysql模型

    一.首先打开PowerDesigner 1.File(位置:左上角)–>New Model–>Physical Date Model(物理数据模型) (1)DBMS选择MySQL5.0(版 ...

  10. 高通pmic voter机制

    前不久在高通 SDM450 平台接触了 voter 机制(投票机制).最近终于得空,结合一个问题简单研究了一下.现将研究流程简单记录一下,由于时间有限,所以是实用为目的,没有做详细的分析,不过结合着这 ...