【经验】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支持~
相关推荐
【经验】8位MCU EFM8系列编程接口与U-EC6的连接方法
Silicon Labs 的EFM8系列的MCU是最新一代的8位MCU,芯片支持在线调试功能,采用的调试接口继承了C8051F系列的C2调试接口,这是一个两线制的调试接口,调试时只需要C2CK时钟信号与C2D数据信号就可以。本文介绍U-EC6的信号定义及Silicon Labs 8位MCU EFM8的编程接口与U-EC6的连接方法。
设计经验 发布时间 : 2019-10-31
【经验】Silicon Labs 8位MCU 烧录程序异常的解决方法
本文介绍Silicon Labs的8位MCU C8051F/EFM8系列的芯片在量产烧录过程中遇到问题的解决方法。
设计经验 发布时间 : 2019-01-27
【经验】8位MCU EFM8LB1的SPI时钟频率度计算方法
EFM8LB1系列是Silicon Labs公司推出的高性能8位MCU,带有通信速率最高12 Mbps的 SPI,支持主/从模式,本文将介绍SPI时钟频率度是如何计算的,以及要产生一个时钟频率,软件如何初始化。
设计经验 发布时间 : 2020-12-24
东软载波推出高性能、高稳定性的8位MCU ES7P702x,多达8通道的外部中断,用于消防产品
ES7P702x是由我司精心设计的一款高性能、高稳定性、高性价比的8位MCU,其包含增强型定时器、外部中断、ADC等丰富的外设和各种功能模块,可以通过编程实现多种任务,如数据采集、信号处理、通信控制等。在消防产品中有着广泛的使用。同时也可用于电源管理、美容仪器、个人护理、小家电等行业。
产品 发布时间 : 2024-01-04
【产品】集成12位高速ADC、DAC的8位MCU C8051F00x,最高执行速度达25MIPS
C8051F00x系列是Silicon Labs的一款高集成度的混合信号8位MCU,采用强大的8051微处理器,最高执行速度可达25MIPS。还集成了12位/10位多通道ADC、VDD监控器、看门狗定时器、时钟振荡器以及其他通用部件,可以作为真正的独立片上系统解决方案,可应用于诸如便携式医疗器械、测试设备和光纤系统等领域。
新产品 发布时间 : 2017-01-05
简单至关重要:为何8位MCU将持续发展?
几十年来,8位MCU一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。简单、有效的8位MCU在推动智能物联网产品的发展中发挥了核心作用。虽然其后代的功能(如32位和无线MCU)继续领先,但对于广泛的应用来说,8位MCU的普及和偏好没有放缓的迹象。
设计经验 发布时间 : 2023-11-22
【经验】一文教你如何快速搭建8位MCU EFM8开发环境
Silicon Labs(芯科科技)在本文讲述如何快速搭建8位MCU EFM8开发环境,帮助行业人士深入掌握EFM8 8位MCU的开发及应用技巧。
设计经验 发布时间 : 2019-01-27
Silicon Labs EFM8系列8位MCU的IO Crossbar硬件分配
EFM8系列是Silicon Labs公司的8位MCU,总共分为4个系列:通用型EFM8BB系列、低功耗EFM8SB系列、带USB的EFM8UB系列和高性能的EFM8LB系列。EFM8系列MCU的IO具有Crossbar功能,即软件上可以分配IO的外设,为硬件设计提供了灵活性。但是Crossbar功能分配外设时并不是引脚随意分配,而是具有优先级要求的。
设计经验 发布时间 : 2018-06-27
【应用】主频高达50MHz的芯科科技8位MCU用于电子烟,静态功耗低至1.3μA
芯科科技EFM8BB51F8G-A-QFN20这颗多功能的8位MCU,具有小型的综合功能集包裹具有高效的8051核、支持5V的I/O、精确模拟和增强的脉宽调制,本文主要介绍芯科科技EFM8BB51F8G-A-QFN20 MCU应用于电子烟产品。
应用方案 发布时间 : 2023-03-11
【经验】8位MCU EFM8LB1 FLASH擦写操作步骤
EFM8LB1系列是silabs专门针对光模块以及消费市场推出的高度集成的3x3mm小封装8位MCU,内部自带温度传感器,+/-3℃温度范围,可选0-4路DAC,UART或者SMBUS bootloader,以及其他通用接口。本文主要介绍EFM8LB1系列Flash的擦写方式以及步骤。
设计经验 发布时间 : 2019-01-31
Silicon Labs(芯科科技) C8051F58x/F59x 汽车级8位MCU数据手册
型号- C8051F580-IQR,C8051F580-IMR,C8051F590,C8051F580-AM,C8051F591,C8051F580-IQ,C8051F589-IM,C8051F585-IM,C8051F580-IM,C8051F587-IM,C8051F585-IQ,C8051F583-IM,C8051F581-IM,C8051F587-IQ,C8051F586-IMR,C8051F583-IQ,C8051F581-IQ,C8051F583,C8051F582,C8051F585,C8051F584,C8051F587,C8051F586,C8051F591-IM,C8051F589,C8051F58X,C8051F588,C8051F583-IMR,C8051F582-IQR,C8051F581,C8051F580,C8051F588-IM,C8051F584-IM,C8051F586-IM,C8051F582-IM,C8051F584-IQ,C8051F586-IQ,C8051F582-IQ,C8051F590-IM,C8051F59X
【应用】找水仪项目选用芯科科技8位MCU C8051F340,带有USB控制器,开发简单,提供案例程序
找水仪项目,使用芯科C8051F340的8位MCU,带有USB控制器,专用开发环境,以及接口协议的案例,减少开发难度,降低开发成本。USB控制全速12Mbps,速率相对比较快,加快信息上传;外设接口多,便于添加外设。
应用方案 发布时间 : 2022-12-15
【经验】Windows无法识别Silicon Labs 8位MCU适配器的解决方法
C8051F及EFM8的适配器包括有U-EC6/ToolStick/UDA及JLINK(只适用于EFM8系列芯片),最近笔者在使用ToolStick及U-EC6时发现在IDE环境中无法选择适配器,本文介绍在WIN7/WIN10系统下出现无法识别Silicon labs 8位MCU 适配器的解决方法。
设计经验 发布时间 : 2019-03-15
【技术】8位MCU与32位MCU的区别
对某类应用做产品定义和规划时,首要任务之一就是选择理想的处理器/控制器,但开发人员往往难以选择合适的MCU。本文是关于微控制器的技术文章,该文从基本差异、基准性能、应用适用性等角度详细地对8位和32位MCU进行了分析。
技术探讨 发布时间 : 2016-07-01
【应用】芯科8位MCU C8051F321用于脂肪测量仪,带USB驱动设计,集成ADC、比较器等丰富资源
脂肪测量仪它是一种利用脂肪不导电原理,通过流经双手的微弱电流来测量身体电阻,从而测定身体脂肪率。作为它的主控MCU推荐芯科8位MCU C8051F321,优势:集成丰富的资源降低成本,而且运算处理能力卓越、性能稳定。
应用方案 发布时间 : 2022-10-09
电子商城
现货市场
品牌: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 提交需求>
登录 | 立即注册
提交评论