【经验】瑞纳捷RJM8L151安全MCU快速上手(7)——配置调试I2C/IIC通讯主模式的发送与接收
RJM8L151是瑞纳捷推出一款超低功耗的8位MCU,最大的优势在超低功耗以及内置硬件真随机数发生器和AES/DES/SM4硬件加密引擎。I2C通讯是嵌入式开发中经常要用到的功能,本文将以读取Silicon Labs的温湿度传感器Si7021的温度数据来介绍如何使用RJM8L151的I2C主模式进行发送和接收,文中用到的Demo板来自于瑞纳捷官方推出的开发套件。关于开发板的介绍可以参见文章“瑞纳捷RJM8L151安全MCU快速上手(1)——开发板/Demo板介绍”。
RJM8L151有两路I2C,每路I2C都支持主模式和从模式。本文中的例程使用的I2C1进行温度数据的读取。Si7021的从机地址和命令码如下图,本文例程采用的0xF3作为读取温度的指令码,如下图:
关于上图中的“Measure Tempreature,No Hold Master Mode“,主机与从机的交流过程如下图:
具体详细的说明可以去参考Si7021的数据手册:Silicon Labs(芯科科技) Si7021-A10温湿度传感器 数据手册
本文demo程序在上电后首先对I2C通讯的SDA线进行了电平检测,如果检测到SDA电平被从机拉低,则通过控制CLK线产生电平跳变使从机释放SDA线。过程如下图,代码中的函数大多使用瑞纳捷提供的库函数,读者可以通过在平台搜索关键词“RJM8L151库函数”获得库函数文件。
I2C的初始化过程为:
1、I2C1时钟使能。
2、配置SCL线的GPIO引脚复用功能。
3、配置SDA线的GPIO引脚复用功能。
4、配置I2C的速率为100K。
5、关闭I2C中断。
代码见下图:
整个的读取Si7021温度数据的过程为:
1、等待I2C模块空闲。
2、使能I2C主机模块。
3、开始I2C通讯,发送7位从机地址,数据方向配置为发送。
4、发送读取温度的指令码0xF3,I2C主机模块配置为发送。
5、再次开始I2C通讯,发送7位从机地址,数据方向配置为接收。
6、检测从机是否回复ACK,如果否则继续跳回执行过程5。
7、I2C主机模块配置为接收,主机配置回复ACK。等待1byte数据传输完成获取温度数据的高8位。
8、I2C主机模块配置为接收,主机配置回复NACK。等待1byte数据传输完成获取温度数据的低8位。
9、结束通讯。
代码见下图:
通过逻辑分析仪抓到的数据如下:
从图中我们可以看到接收到的温度数据为0x67C4,从Si7021数据手册上看到摄氏温度转换的公式为:
通过计算可得当时温度如下25℃,如下图:
- |
- +1 赞 0
- 收藏
- 评论 0
本文由黄昏提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】Silicon Labs 8位MCU 烧录程序异常的解决方法
本文介绍Silicon Labs的8位MCU C8051F/EFM8系列的芯片在量产烧录过程中遇到问题的解决方法。
【经验】8位MCU EFM8LB1的SPI时钟频率度计算方法
EFM8LB1系列是Silicon Labs公司推出的高性能8位MCU,带有通信速率最高12 Mbps的 SPI,支持主/从模式,本文将介绍SPI时钟频率度是如何计算的,以及要产生一个时钟频率,软件如何初始化。
Silicon Labs EFM8系列8位MCU的IO Crossbar硬件分配
EFM8系列是Silicon Labs公司的8位MCU,总共分为4个系列:通用型EFM8BB系列、低功耗EFM8SB系列、带USB的EFM8UB系列和高性能的EFM8LB系列。EFM8系列MCU的IO具有Crossbar功能,即软件上可以分配IO的外设,为硬件设计提供了灵活性。但是Crossbar功能分配外设时并不是引脚随意分配,而是具有优先级要求的。
BB5x 8位MCU用于嵌入式的三大优势——小尺寸、经济高效、设计简化
芯科科技的8位MCU产品组合,在芯科科技提供Simplicity Studio软件开发平台上同步支持8位和32位产品,还可支持EFR32系列无线SoC。这种单一平台解决方案有助于消除设计过程中不必要的复杂性,使设计人员能够将时间和精力集中在产品研发方面,而不是适应新的开发环境,从而缩短了开发周期并加快了上市时间。
【经验】8位MCU EFM8SB2擦除Flash会复位的解决方法
SILICON LABS的EFM8SB2是最节能的小封装8位MCU。采用高效的8051内核,最低睡眠电流为50nA,功耗可达170μA/MHz,可应用手持设备、电池驱动式消费电子设备、传感器接口等。
简单至关重要:为何8位MCU将持续发展?
几十年来,8位MCU一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。简单、有效的8位MCU在推动智能物联网产品的发展中发挥了核心作用。虽然其后代的功能(如32位和无线MCU)继续领先,但对于广泛的应用来说,8位MCU的普及和偏好没有放缓的迹象。
【经验】简介EFM8SB2 8位MCU的3线制SPI配置,使片选线(CS/NSS)的选择更灵活
嵌入式开发中,我们经常会用到SPI通讯,本文主要介绍Silencon Labs EFM8SB2 8位MCU的3线制SPI。当使用3线制的SPI时,我们可以更方便的配置片选线。
【经验】8位MCU EFM8系列内部BOOTLOADER的空间分配
本文介绍Silicon Labs的8位MCUEFM8系列内部BOOTLOADER占用FLASH空间的情况,及程序中对FLASH空间地址的分配。
瑞纳捷MCU选型表
瑞纳捷推出低功耗MCU,最低功耗可达0.65微安,覆盖常规封装,最大Flash64KB,RAM2-8KB
产品型号
|
品类
|
摘要算法
|
密钥长度(bit)
|
用户存储器(Bytes)
|
ESD性能(HBM)
|
工作电压(V)
|
封装(尺寸)
|
Flash(KB)
|
RAM(KB)
|
RJM8L003D6P6
|
MCU
|
UART/LPUART
|
128bit
|
128 Bytes
|
4KV HBM
|
2.0~5.0V
|
SOP14(8.65×3.9mm)
|
32KB
|
4KB
|
选型表 - 瑞纳捷 立即选型
【经验】Silicon Labs 8位MCU EFM8LB SMBUS通信异常状态的处理
Silicon Labs 8位MCU EFM8LB芯片工作主频可以达到72MHz,在3*3mm的极小封装内集成有14位ADC、12位DAC、±3℃温度传感器、模拟比较器及高速通信外设等功能,芯片集成度高,运算速度快,在信号处理等领域有广泛的应用。 本文介绍Silicon Labs 8位MCU EFM8L SMBUS总线通信异常的分析及解决方法。
【经验】8位MCU EFM8LB1 FLASH擦写操作步骤
EFM8LB1系列是silabs专门针对光模块以及消费市场推出的高度集成的3x3mm小封装8位MCU,内部自带温度传感器,+/-3℃温度范围,可选0-4路DAC,UART或者SMBUS bootloader,以及其他通用接口。本文主要介绍EFM8LB1系列Flash的擦写方式以及步骤。
【应用】主频高达50MHz的芯科科技8位MCU用于电子烟,静态功耗低至1.3μA
芯科科技EFM8BB51F8G-A-QFN20这颗多功能的8位MCU,具有小型的综合功能集包裹具有高效的8051核、支持5V的I/O、精确模拟和增强的脉宽调制,本文主要介绍芯科科技EFM8BB51F8G-A-QFN20 MCU应用于电子烟产品。
【经验】如何读取8位MCU EFM8SB2的UID值?
Silicon Labs的8位MCU EFM8BB2系列中有一个唯一识别码,叫做UID。我们在开发中有些时候需要使用读取UID,本文将分享如何在程序中读取EFM8BB2系列MCU的UID。
【经验】一文教你如何快速搭建8位MCU EFM8开发环境
Silicon Labs(芯科科技)在本文讲述如何快速搭建8位MCU EFM8开发环境,帮助行业人士深入掌握EFM8 8位MCU的开发及应用技巧。
【应用】芯科8位MCU用于分酸分注器上,集成12位分辨率的ADC采样,主频达49MHz
分酸分注器,通过控制电机打开关闭阀门,将酸性液体注入到石油中,采用芯科的8位MCU EFM8BB31F64I-D-5QFN32作为信息采集和控制信号发送,此芯片集成了2个UART和 1个IIC接口,满足产品对外设接口的需求。
电子商城
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论