【经验】EFR32FG23无线SoC使用I2C读写MSA311传感器寄存器的方法

2023-06-29 世强
无线SoC,EFR32FG23,SILICON LABS 无线SoC,EFR32FG23,SILICON LABS 无线SoC,EFR32FG23,SILICON LABS 无线SoC,EFR32FG23,SILICON LABS

本文以 SILICON LABSEFR32FG23 无线SoC芯片的 rail_soc_simple_trx 工程为例,介绍如何使用 EFR32FG23 芯片 I2C 外设来读写敏芯微 MSA311 三轴加速度传感器的寄存器的方法。


1、在使用 EFR32FG23 芯片的 I2C 外设之前,我们需要先在 rail_soc_simple_trx 工程安装 I2CSPM(I2C Simple Polled Master) 驱动。双击打开 rail_soc_simple_trx.slcp 文件,点击 SOFTWARE COMPONENTS,在右上方的搜索栏输入 i2c,按下电脑键盘的 enter 按键。点击搜索到的 I2CSPM 组件,点击 Install。

在弹出的对话框中,可以修改 INSTANCE NAME 的名称,本文使用默认的名称 sensor,点击 Done。


2、点击 I2CSPM 组件下面的 sensor,点击右边的 Configure。

在 I2CSPM (sensor) 页面可以修改 I2C 的速率、选择使用哪个 I2C 模块和设置 SCL 和 SDA 的引脚等。

3、为了方便管理代码,我们在 rail_soc_simple_trx 工程目录下新创建一个 user_i2c.c 文件。在 rail_soc_simple_trx 工程名称点击鼠标右键,点击 New,再点击 Source File。

输入文件名称 user_i2c.c,点击 Finish。

4、使用类似的方法,再创建一个 user_i2c.h 文件。记得创建 .h 文件需要选择 Header File。

5、在 user_i2c.c 文件添加如下代码。注意在读寄存器时,需要把 seq.flags 设置为 I2C_FLAG_WRITE_READ;在写寄存器时,需要把 seq.flags 设置为 I2C_FLAG_WRITE。

#include "user_i2c.h"


sl_status_t user_i2c_read_register(sl_i2cspm_t *i2cspm, uint8_t addr, uint8_t reg, uint8_t *data)

{

  I2C_TransferSeq_TypeDef    seq;

  I2C_TransferReturn_TypeDef ret;

  uint8_t                    i2c_read_data[2];

  uint8_t                    i2c_write_data[2];


  seq.addr  = addr << 1;

  seq.flags = I2C_FLAG_WRITE_READ;

  /* Select command to issue */

  i2c_write_data[0] = reg;

  seq.buf[0].data = i2c_write_data;

  seq.buf[0].len  = 1;

  /* Select location/length of data to be read */

  seq.buf[1].data = i2c_read_data;

  seq.buf[1].len  = 1;


  ret = I2CSPM_Transfer(i2cspm, &seq);


  if (ret != i2cTransferDone) {

    *data = 0;

    return SL_STATUS_TRANSMIT;

  }


  *data = i2c_read_data[0];


  return SL_STATUS_OK;

}


sl_status_t user_i2c_write_register(sl_i2cspm_t *i2cspm, uint8_t addr, uint8_t reg, int8_t data)

{

  sl_status_t retval = SL_STATUS_OK;


  I2C_TransferSeq_TypeDef    seq;

  I2C_TransferReturn_TypeDef ret;

  uint8_t                    i2c_read_data[2];

  uint8_t                    i2c_write_data[2];


  seq.addr  = addr << 1;

  seq.flags = I2C_FLAG_WRITE;

  /* Select command to issue */

  i2c_write_data[0] = reg;

  i2c_write_data[1] = data;

  seq.buf[0].data   = i2c_write_data;

  seq.buf[0].len    = 2;

  /* Select location/length of data to be read */

  seq.buf[1].data = i2c_read_data;

  seq.buf[1].len  = 0;


  ret = I2CSPM_Transfer(i2cspm, &seq);


  if (ret != i2cTransferDone) {

    retval = SL_STATUS_TRANSMIT;

  }


  return retval;

}

6、在 user_i2c.h 文件添加如下代码。MSA311 传感器的 I2C 地址为 0x62。

#include <stddef.h>

#include "sl_i2cspm.h"

#include "sl_status.h"


#define MSA311_SENSOR_ADDR    0x62


sl_status_t user_i2c_read_register(sl_i2cspm_t *i2cspm, uint8_t addr, uint8_t reg, uint8_t *data);

sl_status_t user_i2c_write_register(sl_i2cspm_t *i2cspm, uint8_t addr, uint8_t reg, int8_t data);

7、打开 app_init.c 文件,添加如下包含头文件的代码:

#include "user_i2c.h"

#include "sl_i2cspm_instances.h"

8、在 app_init.c 文件的 app_init() 函数添加如下代码。

uint8_t i2c_test_data = 0xFF;


//读取MSA311传感器0x1A寄存器的数据

 if(!user_i2c_read_register(sl_i2cspm_sensor, MSA311_SENSOR_ADDR, 0x1A, &i2c_test_data))

  {

    app_log_info("Data read from 0x1A register of MSA311: 0x%02X\n", i2c_test_data);

  }

//向MSA311传感器的0x1A寄存器写数据0x01

  if(!user_i2c_write_register(sl_i2cspm_sensor, MSA311_SENSOR_ADDR, 0x1A, 0x01))

  {

    app_log_info("Write 0x01 to the 0x1A register of MSA311\n");

  }

//重新读取MSA311传感器0x1A寄存器的数据

  if(!user_i2c_read_register(sl_i2cspm_sensor, MSA311_SENSOR_ADDR, 0x1A, &i2c_test_data))

  {

    app_log_info("Reads data from the 0x1A register of MSA311 again: 0x%02X\n", i2c_test_data);

  }

9、编译 rail_soc_simple_trx 工程,直到工程没有报错。将 MSA311 传感器连接到 EFR32FG23 开发板的 I2C 接口,并使用逻辑分析仪来捕捉 I2C 的 SCL 和 SDA 引脚的波形。

10、打开串口软件,开始监控 EFR32FG23 开发板所在 COM 口的串口数据。打开逻辑分析仪软件,开始捕捉 SCL 和 SDA 引脚的波形。将 rail_soc_simple_trx 工程的固件烧录到 EFR32FG23 芯片,从串口软件可以看到:

EFR32FG23 芯片成功的读到 MSA311 传感器 0x1A 寄存器的默认数据为 0x00;

然后 EFR32FG23 芯片对 MSA311 传感器 0x1A 寄存器写数据0x01;

最后 EFR32FG23 芯片成功的读到 MSA311 传感器 0x1A 寄存器的数据变为 0x01。

11、查看逻辑分析仪捕捉到的波形如下图所示:

a. 从 MSA311 传感器的 0x1A 寄存器读到的默认数据为 0x00;

b. 将数据 0x01 写入到 MSA311 传感器的 0x1A 寄存器;

c. 从 MSA311 传感器的 0x1A 寄存器读到的数据变为 0x01。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由潮汕小菜提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】多协议无线 SOC EFR32MG实现ZigBee的OTA操作指南

EFR32MG系列是Silicon Labs公司推出支持多协议无线 SOC,可以单芯片支持私有协议、BLE5.0、BLE MESH、ZigBee和Thread协议,并且可以单芯片支持Sub-GHz和2.4GHz的频段。由于其超低功耗、高射频性能以及高集成度等特点被广泛应用于智能家居、安防、智能工业等市场。在ZigBee的实际应用中,OTA是必不可少的功能,由于选择的型号不同,配置OT

设计经验    发布时间 : 2018-09-24

【经验】芯科科技EFR32MG21A020F512IM32无线SOC固件烧录方法及步骤

笔者设计了一款Zigbee无线通信模块,采用Silicon Labs(芯科科技)EFR32MG21A020F512IM32无线SOC作为主芯片,包含512KB Flash、64KB RAM和丰富硬件外设,最大发射功率20dBm,支持Zigbee 3.0协议,主要用于智能家居中的网关、智能开关等产品的无线连接。本文介绍EFR32MG21A020F512IM32无线SOC固件烧录方法及步骤。

设计经验    发布时间 : 2020-03-16

【经验】创建ZigBee的无线SOC网关工程操作步骤

Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。

设计经验    发布时间 : 2020-04-09

研讨会2024高算力SOC/MCU新技术研讨会

描述- 9月26日直播,带来SOC,DSP,MCU,AFE,IMU等高算力及周边产品,分享在机器人,多模态感知,AI,低空无人机,自动驾驶,视觉惯性里程计,微型逆变器,光伏储能,智慧医疗,数字健康,光模块等领域应用,点击了解报名

议题- SOC,DSP,MCU,AFE  |  IMU,传感器,激光雷达  |  USB转换,图像处理,电机,连接器等周边产品  |  机器人:多模态感知,电子皮肤,服务机器人,机械手臂, 灵巧手,人形机器人,应用机器人  |  AI:视觉AI,AI割草机  |  智能出行:低空无人机,自动驾驶,视觉惯性里程计  |  新能源:微型逆变器,光伏储能  |  IoT&医疗:智慧医疗,数字健康,智能电表,光模块  |  全球电子成就奖●年度微控制器/接口产品奖获得者——国民技术(Nations)  |  MEMS传感器平台的全球领先供应商——TDK InvenSense  |  机器人智能计算平台——地平线(Horizon Robotics)  |  Melexis(迈来芯)——全球五大汽车半导体传感器供应商之一  |  高性能MCU产品及应用解决方案供应商——先楫半导体(HPMicro)  |  进芯电子——国内唯一可批量供货的32位工业控制DSP供应商  |  芯片出货量累计130亿颗专注混合SoC制造商:中微半导体(CMSemicon)  |  青稞RISC-V内核的MCU和自研PHY的USB/蓝牙/以太网接口芯片——沁恒(WCH)  |  全球高性能微控制器单元、显示IC产品的领先半导体公司——Bridgetek(碧洁特)  |  全球优秀的USB桥接解决方案专家——FTDI Chip(飞特蒂亚微电子)  | 

活动    发布时间 : 2024-07-04

芯科科技FG25 Sub-GHz无线SoC成功案例推动智慧城市能源转型

SILICON LABS芯科科技正在为改善世界和生活的产品的物联网开发人员创建硬件、软件和解决方案。凭借多样化的无线SoC、所有主要和次要物联网标准和协议方面的专业知识,以及至高的质量和安全标准,公司为正在重塑能源管理、电气化和分销的变革者提供支持。

应用方案    发布时间 : 2024-09-06

芯科科技MG24系列多协议SoC助力Centero工业网络,提升工业无线连接设备性能和安全性

SILICON LABS的合作伙伴Centero运用MG24多协议无线SoC提供了易于集成、兼容的端到端无线IEEE 802.15.4和802.11解决方案,从而满足严格的行业要求。其保证的延迟是安全、关键应用程序所必需的。Centero的解决方案还提供强大的数据存储和使用信息,以及预测性维护(predictive maintenance),从而提高运营效率和工厂安全性。

厂牌及品类    发布时间 : 2024-05-17

芯科科技提供多款无线连接和控制芯片产品及解决方案,BG2x系列蓝牙SoC成就多样医疗物联网用例,

Silicon Labs(亦称“芯科科技”)的无线SoC和MCU助力全球客户的医疗物联网应用创新,持续打造更智能、高效、安全和便捷的健康监测设备。智能和网联技术近年来一直是医疗和健康保障领域内的热门技术,许多厂商都在利用医疗物联网(IoMT)技术开发更加智能和互联的健康监测设备,以利用物联网、云计算、人工智能和可穿戴等新一代信息通信技术,来帮助用户时刻监控自己的健康状况、降低医疗费用和就医麻烦。

厂牌及品类    发布时间 : 2023-06-29

2.4GHz无线SoC MG21助力开发SONOFF微型Zigbee USB智能适配器支持路由和快充

SILICON LABS近日宣布,其EFR32MG21(MG21)2.4GHz无线SoC获SONOFF公司选用于开发新型“ZBMicro”智能开关。该产品是SONOFF最新的微型Zigbee USB智能适配器,也是智能家居技术领域的开创性产品。从作为USB设备的智能开关到作为Zigbee路由器和支持快速充电的功能,ZBMicro提供了无与伦比的用户体验,提升了现代智能家居的连接性和便利性。

厂牌及品类    发布时间 : 2024-08-17

与智能同行 - 借力微型、内置ML加速器的芯科科技无线SoC实现医疗电子多样功能!

针对医疗电子控制器当前的应用现状和未来的发展方向,Silicon Labs无线产品营销高级经理Brian Blum先生近期参与大比特(Big-Bit)半导体器件应用网的访谈,针对产业链上下游的半导体器件应用和医疗设备发展趋势展开对话,以洞悉行业未来方向。本文介绍本次访谈的问答摘要内容。

应用方案    发布时间 : 2024-08-10

【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程

EFR32MG系列是Silicon Labs公司针对多协议推出的无线SOC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。Token是用来存储非易失性数据的即掉电后也能保存,本文档指导大家如何在EmberZNet PRO应用程序中自定义Token来存储非易失性数据。

设计经验    发布时间 : 2019-02-13

【经验】Matter入门指导10:使用Raspberry Pi 4B更新EFR32MG21 USB STICK固件

Matter演示套件中的EFR32MG21 USB STICK需要下载 ot-rcp-mg21-usbstick.gbl 固件,才能正常使用Matter over Thread的功能。本文主要介绍使用树莓派4B(Raspberry Pi 4B)给EFR32MG21 USB STICK更新固件的方法。

设计经验    发布时间 : 2023-06-22

Matter、LPWAN技术构建未来无线通信新生态

Silicon Labs(亦称“芯科科技”)作为物联网无线技术领域动化等领域提供高性能、低功耗、高安全的无线连接解决方案。近日,芯科科技主任现场应用工程师黄良军(Bruce Huang)接受EEPW无线通信专题采访,就芯科科技对未来无线通信市场的展望、新产品发布以及多协议无线通信趋势等话题进行了深入探讨。

厂牌及品类    发布时间 : 2024-07-23

【IC】全新xG22E无线SoC系列支持能量采集应用,开创无电池物联网产品

Silicon Labs宣布推出全新的xG22E系列无线片上系统(SoC),这是芯科科技有史以来首个设计目标为可在无电池、能量采集应用所需超低功耗范围内运行的产品系列。这一新系列包括BG22E、MG22E和FG22E三款SoC产品。是芯科科技迄今为止能量效率最高的SoC。

产品    发布时间 : 2024-04-26

【经验】Matter入门指导11:如何将Matter over Thread的灯和开关设备加入OTBR网络?

本文主要介绍将Matter over Thread的灯和开关设备加入OTBR网络的方法,并使用OTBR控制灯设备的方法。

设计经验    发布时间 : 2023-06-22

芯科科技基于MG24 SoC的蓝牙测距应用演示

开发人员对于蓝牙测距(Ranging)和定位应用的实现有诸多考量,包括低功耗以实现长电池寿命,在测量位置或范围内的准确性,设计的复杂性以减少上市时间,并为消费者提供安全的物联网解决方案,可以防止恶意攻击。综合上述要求,Silicon Labs提供的低功耗且高性能的EFR32MG24(MG24)无线SoC成为理想选择。

设计经验    发布时间 : 2024-07-18

展开更多

电子商城

查看更多

只看有货

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.0516

现货: 29,122

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 98,034

品牌:SILICON LABS

品类:Wireless SoC

价格:¥21.5556

现货: 92,861

品牌:SILICON LABS

品类:Wireless SoC

价格:¥9.1982

现货: 88,300

品牌:SILICON LABS

品类:Wireless SoC

价格:¥27.2234

现货: 86,020

品牌:SILICON LABS

品类:Wireless SoC

价格:¥22.1593

现货: 76,980

品牌:SILICON LABS

品类:Wireless SoC

价格:¥19.9760

现货: 74,309

品牌:SILICON LABS

品类:Wireless SoC

价格:¥20.4401

现货: 48,328

品牌:SILICON LABS

品类:Wireless SoC

价格:¥25.9222

现货: 24,433

品牌:SILICON LABS

品类:Wireless SoC

价格:¥16.8169

现货: 17,486

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:150,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:Position Sensor

价格:¥3.0897

现货:12,568

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:Gecko MCU

价格:¥15.6000

现货:5,353

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

网络分析仪/频谱仪/信号分析仪/无线综测仪/信号发生器租赁

提供是德(Keysight),罗德(R&S)测试测量仪器租赁服务,包括网络分析仪、无线通讯综测仪、信号发生器、频谱分析仪、信号分析仪、电源等仪器租赁服务;租赁费用按月计算,租赁价格按仪器配置而定。

提交需求>

无线充电传输效率测试

配备KEYSIGHT网络分析仪,可测量无线充电系统发射机/接收机线圈的阻抗,电感L、电阻R、电感C以及品质因数Q,仿真不同充电负载阻抗下的无线充电传输效率。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面