【应用】如何使用EFM8 8位MCU的I2C Slave外设
SILICON LABS(亦称“芯科科技”)EFM8 8位MCU系列产品的用户在开发产品时,需要进一步了解如何使用EFM8LB1 / EFM8BB3 I2C slave器件,使它看起来与SMBus的外设完全不同?对此,我们制作了一篇知识库文章,引导工程师们加快设计流程。
M8LB1/M8BB3包含一个I2CSLAVE外设,它包含许多有助于高速传输的功能,但可能会使熟悉传统SMBus操作的用户感到困惑。在这里,我们简要介绍I2CSLAVE器件,并附加I2C SLAVE器件引导加载器示例代码以供参考。此代码示例是为EFM8BB3编写的,但如果需要,可以轻松移植到EFM8LB1。
I2C外设包含2字节FIFO和1字节移位寄存器,分别用于TX/ RX。I2C SLAVE器件支持自动ACK / NACK I2C master器件,由I2C0CN0寄存器的BUSY bit控制。默认情况下,BUSY为“1”,器件不响应I2Cmaster器件。发送到器件的所有I2C数据都将被NACKed。我们应将此BUSYbit设置为“0”,器件将确认I2Cmaster器件。 master设备持续向设备发送数据,设备自动向master设备确认最多3个ACK,因为FIFO中有两个字节,移位寄存器中有1个字节。然后SCL保持低电平以表示设备无法接收更多数据。我们应检查I2C0FCN1寄存器的RXE位,以了解FIFO中是否有数据,从I2C0DIN寄存器读取接收数据。
自动ACK功能使流量控制变得困难,如上所述,当RX FIFO已满时,SCL保持低电平,因此器件可以处理数据。 masster如何改变读/写方向呢?还有另一个功能可以帮助解决这种情况。 I2C0ADM寄存器的FACS位字段。默认值为“1”,表示FORCE_STRETCH。该位置为1时,时钟拉伸始终发生在地址字节的ACK之后,直到固件清零I2C0INT位。通过这种时钟拉伸功能,我们可以在读/写方向变化期间进行流量控制。
这里有一个基于AN945的I2C SLAVE引导加载程序示例代码,请查看它并参考I2C SLAVE机状态机的工作原理。(https://www.sekorm.com/doc/627258.html)
有几个原因导致某些状态未包含在Bootloader代码中:
Bootloader代码的编写方式使得上述某些情况永远不会发生,即使它们发生,它们也可以在默认情况下捆绑在一起。我们主要关注RD,WR和RD+ NACK状态。
Bootloader的代码受大小限制。我们尝试将其放入一个Flash页面,这反过来意味着我们包含的代码只是Bootloader运行所必需的,而不是考虑永远不会发生的情况。
- |
- +1 赞 0
- 收藏
- 评论 5
本文由下线老捷达转载自Silicon Labs,原文标题为:【MCU知识库】如何使用EFM8 8位MCU的I2C Slave外设,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
评论
全部评论(5)
-
用户68909777 Lv5. 技术专家 2018-11-15了解下
-
qditz Lv9. 科学家 2018-10-25不错的资料
-
地瓜糖 Lv6. 高级专家 2018-10-13学习了
-
守猪待兔 Lv7. 资深专家 2018-08-08学习了
-
闲云 Lv7. 资深专家 2018-08-08好文章
相关推荐
BB5x 8位MCU用于嵌入式的三大优势——小尺寸、经济高效、设计简化
芯科科技的8位MCU产品组合,在芯科科技提供Simplicity Studio软件开发平台上同步支持8位和32位产品,还可支持EFR32系列无线SoC。这种单一平台解决方案有助于消除设计过程中不必要的复杂性,使设计人员能够将时间和精力集中在产品研发方面,而不是适应新的开发环境,从而缩短了开发周期并加快了上市时间。
【应用】芯科8位MCU用于分酸分注器上,集成12位分辨率的ADC采样,主频达49MHz
分酸分注器,通过控制电机打开关闭阀门,将酸性液体注入到石油中,采用芯科的8位MCU EFM8BB31F64I-D-5QFN32作为信息采集和控制信号发送,此芯片集成了2个UART和 1个IIC接口,满足产品对外设接口的需求。
【应用】120uA/MHz 运行功耗的EFM8 8位MCU,自恢复式过欠压保护器应用主控MCU最佳选择
Silicon Labs EFM8是一款基于最节能的8位MCU, 非常适用于对功耗要求高的系统中,高效的处理能力、超低功耗性能以及丰富的外设,非常适合于自复式过欠压保护器的应用。其120uA/MHz 运行功耗,0.5uA 睡眠电流,可以极大延长电池的使用寿命。集成资源丰富,其不仅提供了最高64KB的闪存空间,还提供了丰富的外设接口,
【经验】使用Keil C51开发环境调试8位MCU EFM8之Jlink篇详解
本文详细介绍使用Jlink在Keil C51环境中开发和调试EFM8,本文中使用的Keil C51版本为C9.54,MCU型号为Silicon Labs 的EFM8BB31F64G-QFN32。
【经验】Silicon Labs 8位MCU 烧录程序异常的解决方法
本文介绍Silicon Labs的8位MCU C8051F/EFM8系列的芯片在量产烧录过程中遇到问题的解决方法。
SILICON LABS 8-bit Microcontroller选型表
SILICON LABS 8位MCU选型,MCU Core 8051,频率20MHz~100MHz,Flash存储2kB~120kB,RAM存储0.25kB~8kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
DAC
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
EMIF
|
CAN
|
LIN
|
VREF
|
Debug Interface
|
C8051F392-A-GM
|
8位MCU
|
C8051F39x Small Form Factor
|
50
|
16
|
1
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
17
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
6
|
3
|
10-bit, 2-ch.
|
1
|
1
|
1
|
2
|
0
|
0
|
0
|
0
|
VREF
|
C2
|
选型表 - SILICON LABS 立即选型
【经验】8位MCU EFM8LB1的SPI时钟频率度计算方法
EFM8LB1系列是Silicon Labs公司推出的高性能8位MCU,带有通信速率最高12 Mbps的 SPI,支持主/从模式,本文将介绍SPI时钟频率度是如何计算的,以及要产生一个时钟频率,软件如何初始化。
SILICON LABS EFM8 Sleepy Bee 8-bit Microcontrollers选型表
SILICON LABS 8位MCU选型,基于25MHz Frequency,2~64kB Flash,0.25~4kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
EFM8SB10F8G-QFN20
|
Microcontroller
|
8051
|
25
|
8
|
0.5
|
16
|
12-bit, 9-ch.
|
Temp Sensor
|
4
|
3
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1.8
|
3.6
|
QFN20
|
3x3
|
±2
|
VREF
|
C2
|
-40 to 85
|
选型表 - SILICON LABS 立即选型
Silicon Labs EFM8系列8位MCU的IO Crossbar硬件分配
EFM8系列是Silicon Labs公司的8位MCU,总共分为4个系列:通用型EFM8BB系列、低功耗EFM8SB系列、带USB的EFM8UB系列和高性能的EFM8LB系列。EFM8系列MCU的IO具有Crossbar功能,即软件上可以分配IO的外设,为硬件设计提供了灵活性。但是Crossbar功能分配外设时并不是引脚随意分配,而是具有优先级要求的。
【经验】8位MCU EFM8系列内部BOOTLOADER的空间分配
本文介绍Silicon Labs的8位MCUEFM8系列内部BOOTLOADER占用FLASH空间的情况,及程序中对FLASH空间地址的分配。
SILICON LABS EFM8 Universal Bee 8-bit Microcontrollers选型表
SILICON LABS 8位MCU选型,基于48MHz Frequency,8~64kB Flash,2~4kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
5 Volt Tolerant
|
ADC 1
|
USB
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
EFM8UB20F64G-QFP48
|
Microcontroller
|
8051
|
48
|
64
|
4
|
40
|
5 Volt Tolerant
|
10-bit, 32-ch.
|
USB
|
Temp Sensor
|
6
|
5
|
2
|
2
|
1
|
2
|
1
|
0
|
0
|
2.7
|
5.25
|
QFP48
|
7x7
|
±1.5
|
VREF
|
C2
|
-40 to 85
|
选型表 - SILICON LABS 立即选型
【经验】8位MCU EFM8LB1 FLASH擦写操作步骤
EFM8LB1系列是silabs专门针对光模块以及消费市场推出的高度集成的3x3mm小封装8位MCU,内部自带温度传感器,+/-3℃温度范围,可选0-4路DAC,UART或者SMBUS bootloader,以及其他通用接口。本文主要介绍EFM8LB1系列Flash的擦写方式以及步骤。
【经验】在Simplicity Studio中8位MCU EFM8用C编程时嵌入汇编代码的方法
目前MCU领域主流的编程语言仍是C语言,但是在某些关键的地方仍需要使用少部分汇编代码来实现,比如精确的延时,在不使用定时器的情况下C代码很难控制精确,这时嵌入汇编就有很大优势。下面就是以Silicon Labs 8位MCU EFM8BB10为例的一个操作例子。
【经验】如何读取8位MCU EFM8SB2的UID值?
Silicon Labs的8位MCU EFM8BB2系列中有一个唯一识别码,叫做UID。我们在开发中有些时候需要使用读取UID,本文将分享如何在程序中读取EFM8BB2系列MCU的UID。
电子商城
现货市场
品牌: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 提交需求>
登录 | 立即注册
提交评论