【经验】Silicon Labs 8位MCU EFM8LB SMBUS通信异常状态的处理


SILICON LABS 8位MCU EFM8LB芯片工作主频可以达到72MHz,在3*3mm的极小封装内集成有14位ADC、12位DAC、±3℃温度传感器、模拟比较器及高速通信外设等功能,芯片集成度高,运算速度快,在信号处理等领域有广泛的应用。
芯片内部集成了SMBUS接口,这是双向的串行总线接口,完全兼容I2C串行总线,支持100kbps标准速率和400kbps快速速率,支持硬件地址识别功能,这个接口在实际应用中使用的比较多,即可以作为主模式也可以作为从模式使用,下图是SMBUS总线接口的功能框图:
在将SMBUS总线设置为从模式状态下,完整的从读时序过程如下:
SMBUS的主设备在在发起读过程后,在每收到一个数据后都会发出一个ACK应答直到数据接收完成,数据接收完成后主器件会发出NACK应答及STOP命令,整个读过程结束,从器件的接收中断处理一般也会如下面的代码一样进行处理。
// Slave Transmitter: Data byte transmitted
case SMB_STDB:
if (SMB0CN0_ACK == 1) // If Master SMB0CN0_ACK's, send the next byte
{
if (sent_byte_counter <= NUM_BYTES_RD)
{
// Prepare next outgoing byte
SMB0DAT = SMB_DATA_OUT[sent_byte_counter-1];
sent_byte_counter++;
}
} // Otherwise, do nothing
break;
但如果在读的过程中,如果主器件意外发出一个NACK应答后,还在继续发送读的时序时钟,这时就会出现异常的状况,我们从上面的代码中可以看出,从器件并没有对NACK做出相应的处理,只是被动的等待主器件发出STOP命令。同时在数据手册关于从发送器一节的描述中我们可以找到,在收到应答后如果没有将数据写入SMB0DAT中,SMBUS接口会由从发送器状态切换到从接收器状态,产生的后果就是主器件发出的下一个读时钟后从器件会认为是从接收状态收到了一个数据,如果程序中没有对这一状况做出处理会产生不可预期的后果。
解决这一问题的思路就是对主器件发出的STA+SLA+R/W作一个标志,表明当前的过程是一个读过程还是一个写过程,如果在读或写的过程中收到了相反状态的数据可认为通信已经出错,作出相应的出错处理,在中断服务程序中也可以对接收到NACK应答作出相应的标志判断处理,避免主器件意外出错后引起严重的后果。
- |
- +1 赞 0
- 收藏
- 评论 3
本文由John提供,版权归开云手机入口平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:开云手机入口平台”。
评论
全部评论(3)
-
志成 Lv7. 资深专家 2019-03-01学知识,下载,学习,关注,收藏
-
鹏鹏 Lv7. 资深专家 2019-03-01学知识,下载,学习,关注,收藏
-
maomao Lv8. 研究员 2019-03-01支持~
相关推荐
【经验】Silicon Labs 8位MCU EFM8LB模拟外设的参考电压选择
本文主要介绍Silicon Labs 8位MCU EFM8LB模拟外设的参考电压选择,包括ADC的参考电压源的4种输入选项,6种参考电压源的选择与区别;DAC的参考电压源只有两种输入选项:VDD与VREF的选择与区别。
【经验】Silicon Labs8位MCU EFM8LB比较器输出异常的分析
Silicon Labs 8位MCU EFM8LB芯片工作主频可以达到72MHz,在3*3mm的极小封装内集成有14位ADC、12位DAC、±3℃温度传感器、模拟比较器及高速通信外设等功能,芯片集成度高,运算速度快,在信号处理等领域有广泛的应用。本文详细介绍Silicon Labs 8位MCU EFM8LB比较器功能的使用及异常状况的分析方法。
【经验】Windows无法识别Silicon Labs 8位MCU适配器的解决方法
C8051F及EFM8的适配器包括有U-EC6/ToolStick/UDA及JLINK(只适用于EFM8系列芯片),最近笔者在使用ToolStick及U-EC6时发现在IDE环境中无法选择适配器,本文介绍在WIN7/WIN10系统下出现无法识别Silicon labs 8位MCU 适配器的解决方法。
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
|
【产品】集成12位高速ADC、DAC的8位MCU C8051F00x,最高执行速度达25MIPS
C8051F00x系列是Silicon Labs的一款高集成度的混合信号8位MCU,采用强大的8051微处理器,最高执行速度可达25MIPS。还集成了12位/10位多通道ADC、VDD监控器、看门狗定时器、时钟振荡器以及其他通用部件,可以作为真正的独立片上系统解决方案,可应用于诸如便携式医疗器械、测试设备和光纤系统等领域。
【产品】低成本光模块8位MCU推荐:EFM8LB 8位MCU,助力打造集成度更高、设计更简单的系统方案
早期25G光模块,多采用通用型单片机,及进口品牌电源及模拟等器件,资源浪费严重,使得光模块成本较高。通过Silicon Labs(亦称“芯科科技”)的EFM8 8位MCU芯片家族中的Laser Bee(LB)系列产品,有助于打造集成度更高、设计更简单的系统方案,进而使光模块器件总成本更低、产品市场竞争力更强。
Silicon Labs 8位MCU系统是否需要外部VDD监视器?
在大多数情况下,内部VDD监视器就足够了,并且不需要外部VDD监视器,除非应用程序有特殊要求要求使用外部VDD监视器。每当使用内部VDD监视器时,都应注意使用8位MCU,以确保始终将监视器用作复位源,并且不会因写入RSTSRC而被意外禁用。在高于50 MHz的频率下运行的C8051F12x或C8051F36x器件的最低电源电压规格为3.0V。但是,内部VDD监视器的校准值通常为2.7V。在这种情况下,可能需要一个外部VDD监视器。
Silicon Labs EFM8BB1系列8位MCU的量产软件有哪些?
Silicon Labs EFM8BB1系列8位MCU的量产软件可以采用Silicon Labs 原厂提供的MCU Production Programmer 和 Flash Programming Utility软件,建议采用前者,下载效率更高;
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 EFM8SB10F8G下载程序方式有哪些?
Silicon Labs的8位MCU EFM8SB10F8G可以通过C2接口和串口(在确定片上已含bootloader的情况下)下载程序。
Silicon Labs的8位MCU EFM8LB10的出厂默认bootloader被擦除了,如何恢复?
可以在平台搜索AN945SW,在这个文件里面包含所有EFM8LB系列的出厂默认bootloader的.HEX文件,找到对应型号,烧录进去就可以恢复了。
【应用】8位MCU EFM8BB10用于电动式吸痰器,不需要采用外部分立器件就可以实现PWM信号输出
一般常用电动式吸痰器主要是通过手控开关,利用负压原理进行吸痰和口腔护理,用于对伤病员进行常规吸痰等处理,Silicon Labs推出的EFM8BB10系列8 bit MCU,拥有12 位ADC以及2个低电流模拟比较器,并且该系列MCU还集成有3通道可编程计数器阵列 (PCA),支持 PWM、捕获/比较和频率输出等工作模式,本文将介绍高集成8位MCU EFM8BB10在吸痰器上的应用优势。
【应用】小尺寸、内置系统时钟的8位MCU EFM8BB10助力超声波测厚仪低成本设计
便携式厚度测试仪采用低成本设计,要求主控MCU具有集成度高,运算速度快等特性,以实现对数据的精准测量,本文介绍基于Silicon Labs的EFM8BB10系列MCU为主控, 3mm*3mm QFN20小尺寸封装,可有效节省PCB面积,内置最高24.5MHz的系统时钟,保证了信号处理速度的需求,同时省去外接晶振,节约成本。满足便携式厚度测试仪的低成本要求。
8位MCU EFM8LB1的可配置逻辑单元CLU有什么功能?
8位MCU EFM8LB1的可配置逻辑单元CLU可以将外部引脚输入和内部的定时器溢出等信号进行256种混合逻辑运算(包括与、或、异或等)且不需要CPU的干预,大大加强系统的多任务并行处理能力以及对突发事件的响应速度。
在Silicon Labs 8位MCU上使用灌封料时,我需要考虑什么?
需要确保灌封料具有一些共同的特性,例如低内应力,低水平的离子污染物,低Tg等,还需要确保灌封材料的热膨胀系数离PCB板不太远,否则焊点可能会从板上脱落。除此之外,没有任何特殊要求或问题。
电子商城
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务市场

可定制平板变压器、主变压器的开关频率2MHz以内、输入电压1400V以内、输出电压1400V以内,50%以上的产品采用自动化生产,最快3天提供样品、7天交货。
最小起订量:3000 提交需求>

Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量:2500 提交需求>
登录 | 立即注册
提交评论