【应用】如何使用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 赞 1
- 收藏
- 评论 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好文章
相关推荐
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 立即选型
Silicon Labs的8位MCU EFM8SB10F8G下载程序方式有哪些?
Silicon Labs的8位MCU EFM8SB10F8G可以通过C2接口和串口(在确定片上已含bootloader的情况下)下载程序。
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,bootloader烧录/升级最新固件的问题。
需要注意的是I2C接口的硬件连接,连接的线不要过长,可以考虑在线的两端都加上拉电阻。另外,C2接口是芯片的调试接口,可以直接对芯片的FLASH进行烧录,者的烧录原理不一样,但同样的,C2接口的连接线也不能过长。
Silicon Labs EFM8BB1系列8位MCU的量产软件有哪些?
Silicon Labs EFM8BB1系列8位MCU的量产软件可以采用Silicon Labs 原厂提供的MCU Production Programmer 和 Flash Programming Utility软件,建议采用前者,下载效率更高;
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 EFM8BB3如何工作在49MHz模式?
Silicon Labs的EFM8BB3是一款小封装、多用途8位MCU,最高运行频率可达49MHz, RAM容量最大为4352B,FLASH容量最大可达64KB。EFM8BB3默认是采用内部24.5MHz的时钟,那么如何切换到内部49MHz的时钟呢?
Silicon Labs中的8位MCU的EFM8系列中UID与UUID什么区别?
Silicon Labs中的8位MCU的EFM8系列中 UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID,。Silicon Labs公司推出的EFM8UB系列8位微控制芯片,具有内部Flash加密功能,防止非法读取内部程序,并提供128位universally unique identifier (UUID);
Silicon Labs 8位MCU EFM8LB1 比较器的参考电平DACLVL是如何计算的呢?
silicon labs 的 EFM8LB1 8位MCU的比较器的参考电平DACLVL 是由公式DAC Output = CMPREF * (DACLVL / 64)计算出来的,CMPREF是由INSL位配置得出,例如,将INSL设置为0x3,就是将CMP-输入连接到内部DAC输出,CMXP选择CMP+。内部DAC使用CMXN指定的信号作为全面的参考。那么再将CMP0MX设置为0XB1,也就是CMPREF的值为VDD,正端设置为P0.2,此外,如果DAC Output也就是比较器的负端输入为0.5倍的VDD,那么通过上面的公式可以得出,(DACLVL / 64)= 0.5,所以DACLVL= 32即0x20。
Silicon Labs的8位MCU EFM8LB10的出厂默认bootloader被擦除了,如何恢复?
可以在平台搜索AN945SW,在这个文件里面包含所有EFM8LB系列的出厂默认bootloader的.HEX文件,找到对应型号,烧录进去就可以恢复了。
Silicon Labs EFM8LB12系列8位MCU有ES0,ES1两个版本,两者之间的区别是什么?
ES0版本的mcu bootloader引脚是P0.2,P0.3;ES1版本的mcu bootloader引脚是P0.2,P0.3;此外两个芯片的 Derivative ID也是不同的,具体要看芯片封装和Flash尺寸;
Silicon Labs的8位MCU EFM8LB12的P3.0 -P3.3引脚的管脚耐压是多少?
Silicon Labs的8位MCU EFM8LB12的结温是否和工作温度一样?
Silicon Labs的EFM8LB1系列8位MCU的BOOTLOADER I2C硬件引脚是哪个?
Silicon Labs的EFM8LB1系列8位MCU的BOOTLOADER I2C硬件引脚如下; ES1版本的EFM8LB系列BOOTLOADER的I2C硬件引脚是P0.2(SDA),P0.4(SCL),而ES0版本的是P0.2(SDA), P0.3(SCL);
Silicon Labs 的8位MCU EFM8LB1系列的CLU模块可以同时实现曼切斯特编码和解码功能吗?
silicon labs的8位MCUEFM8LB和EFM8BB3系列都具有CLU(配置逻辑单元),其中包括CLU0~CLU3,4个单元,可以用于实现曼切斯特编码或者解码功能,silicon labs提供相关的例程,其中解码实现需要4个CLU单元,编码实现需要使用2个CLU单元,故如果要同时实现编码解码功能,需要2个MCU才可以完成。具体资料请参考:https://www.sekorm.com/doc/706211.html
Silicon Labs的8位MCU EFM8LB1里的PINRSTMD功能如何使用?
Silicon Labs的8位MCU EFM8LB1里的PINRSTMD功能是可通过非上电复位保持端口IO输出状态,将PCON1寄存器中的PINRSTMD置1来实现,具体操作如下:1)正常运行 - MCU运行 2)固件设置PINRSTMD位。写入PxMDIN,PxMDOUT,Pn和XBARE寄存器仍会影响引脚模式和输出状态。 3)发生非POR复位。此时,PxMDIN,PxMDOUT,Pn和XBARE寄存器复位,但端口引脚的输出状态保持不变。PINRSTMD位保持不变。 4)当PINRSTMD仍然置1时,固件可以写入PxMDIN,PxMDOUT,Pn和XBARE寄存器,但引脚模式或输出状态不会发生变化。 5)固件清除PINRSTMD位。引脚模式和输出状态会更新,以反映自非POR复位后PxMDIN,PxMDOUT,Pn和XBARE寄存器的任何变化。 6)固件设置PINRSTMD位。写入PxMDIN,PxMDOUT,Pn和XBARE寄存器仍会影响引脚模式和输出状态。(与第2步相同)
电子商城
现货市场
品牌: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烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论