【经验】如何基于8位单片机EFM8LB实现SMBus多机通信?
SMBus总线(兼容I2C),具有占用端口资源少、可以多机通信等优点,自推出以来,便被广泛应用。世界著名精密混合器件供应商SILICON LABS推出的EFM8LBLB系列单片机,具有速度快、性能好、体积小、集成度高等鲜明特征,被广泛应用在光模块、电机控制等产品上,深受广大用户喜爱。当然,该芯片也支持SMBus协议,本文将详细讲解如何基于EFM8LB实现SMBus多机通信,供大家参考。
图1 EFM8LB SMBus外设结构框图
一、EFM8LB在多机通信中的特性
如图1,是EFM8LB SMBus外设结构框图,它支持主模式,从模式和多主模式。在多主机模式中,它支持硬件同步和仲裁。硬件支持7位从站和通用呼叫地址识别,固件支持10位从机地址解码。EFM8LB还具备禁止所有从机状态的能力。
二、EFM8LB在多机通信中硬件的连接
SMBus规范允许在3.0到5.0 V之间的任何电压。 总线上的不同设备可能以不同的电压电平运行。 但是,任何端口引脚上的最大电压必须符合电气特性规范。 双向SCL(串行时钟)和SDA(串行数据)线必须通过上拉电阻器或类似电路连接到正电源电压。 连接到总线的每个设备对于SCL和SDA线都必须具有漏极开路或集电极开路输出,以便在总线空闲时将二者都拉高。 总线上的最大设备数量仅受总线上的上升和下降时间分别不超过300 ns和1000 ns的要求所限制。
图2 SMBus硬件连接图
三、EFM8LB在多机通信中相关寄存器的配置
SMBus配置寄存器(SMB0CF)用于启用SMBus主模式和/或从模式,选择SMBus时钟源,以及选择SMBus时序和超时选项。当ENSMB位置1时,将为所有主事件和从事件启用SMBus。通过将INH位置1可以禁止从事件。在禁止从机事件的情况下,SMBus接口仍将监视SCL和SDA引脚。但是,接口将对所有接收到的地址进行NACK,并且不会产生任何从设备中断。当INH位置1时,所有从事件将在下一次START之后被禁止(中断将在当前传输期间继续)。
当EFM8LB在多机通信中,当处于主机模式,发送时,如下图3,只要将目标从机地址写入即可。
图3 当EFM8LB在SMBus多机通信为主机模式时
当EFM8LB在多机通信中,当处于从机模式,接收时,寄存器SMB0ADM中的EHACK位置1,自动从地址识别和ACK产生使能。 作为接收器,当前由ACK位指定的值将在传入数据字节的ACK周期内自动发送到总线上。 作为发送器,读取ACK位表示在最后一个ACK周期接收到的值。 启用硬件ACK生成后,将不使用ACKRQ位。 如果接收到的从机地址被硬件NACK,则其他从机事件将被忽略,直到检测到下一个START,并且不会产生中断。
EFM8LB的SMBus硬件具有自动识别传入的从设备地址并发送ACK的能力,而无需软件干预。通过将寄存器SMB0ADM中的EHACK位置1来启用自动从地址识别。这将启用自动从地址识别和接收字节的自动硬件ACK生成。用于定义哪个地址的寄存器由硬件识别的SMBus从设备地址寄存器和SMBus从设备地址掩码寄存器。可以使用这两个寄存器指定一个地址或地址范围(包括通用呼叫地址0x00)。两个寄存器中的最高7位用于定义将要确认的地址。从地址掩码SLVM的一位为1,可以比较接收到的从地址和该位的硬件从地址SLV。从地址掩码的某个位为0表示出于比较目的将该位视为“无关”。在这种情况下,传入从站地址上的值可以是1或0。此外,如果寄存器SMB0ADR中的GC位设置为1,则硬件将识别通用呼叫地址(0x00)。
图4 硬件地址识别示例
- |
- +1 赞 0
- 收藏
- 评论 1
本文由风起云扬提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】如何下载、安装、设置Silicon Labs 8位单片机集成开发环境IDE?
Silicon Labs的8位单片机集成开发环境IDE,简单、容易、强大,是C8051F及EFM8等8位单片机软件开发的强大利器!为了让新手能够快速上手IDE,本将详细接收Silicon Labs IDE的下载、安装、设置等方法。
设计经验 发布时间 : 2018-09-19
【经验】8位单片机EFM8系列的SFR Page操作
Silicon Labs的8位单片机EFM8系列,集成丰富的外设,高性能,小封装。软件开发时,由于外设多,寄存器操作引入了SFR Page机制,注意SFR Page设置,防止程序错误,让EFM8系列芯片设计出稳定的优质产品。
设计经验 发布时间 : 2019-04-17
【经验】解决8位单片机EFM8BB51驱动三相电机过零检测不灵敏的问题
对于简单的8位MCU实现,块换向用于驱动电动机。这种驱动方法需要逆变器电路对根据霍尔传感器给出的转子位置,电机相位电角度每120度的电流或者无传感器方法。本文主要解决8位单片机EFM8BB51F16I-QFN20驱动三相电机过零检测不灵敏的问题。
设计经验 发布时间 : 2023-03-31
【经验】如何计算8位单片机EFM8LB系列PWM最高输出频率?
在电机驱动、电源发生、可调电压发生等应用中,经常需要PWM波,Silicon Labs推出的高性能、高集成度、小体积、高性价比的EFM8LB系列8位单片机,可广泛应用光模块、电机控制等领域,它支持输出PWM波。本文将详细讲解如何计算EFM8LB系列8位单片机PWM最高输出频率。
设计经验 发布时间 : 2020-02-05
【经验】如何基于Simplicity Studio快速配置EFM8LB 8位单片机串口波特率?
对于嵌入式的代码开发,大家经常会用到串口,而串口的波特率,是串口配置中重要的参数。本文基于Silicon Labs提供的功能强大的软件开发平台Simplicity Studio,讲解如何正确、快速地配置串口波特率,籍此让大家对软件开发平台Simplicity Studio的GUI配置功能以及EFM8LB单片机串口配置流程有所熟悉。
设计经验 发布时间 : 2018-12-29
【经验】解析Silicon Labs的8位单片机EFM8SB10休眠时如何处理GPIO口降低功耗
Silicon Labs的8位单片机EFM8SB10采用C8051内核,主频25MHz,集成12BIT的ADC、模拟比较器、触摸按键、UART、SPI、I2C等功能,休眠功耗低至50nA。本文将介绍EFM8SB10休眠时如何处理GPIO口降低功耗。
设计经验 发布时间 : 2022-04-14
【经验】8位单片机C2自制烧录器不能用于EFM8问题分析及解决
Silicon Labs公司推出的8位单片机,采用独特的C2调试接口,在占用极少的引脚资源的情况下,实现在线仿真调试,烧录功能,方便软件的开发设计。客户自制C2烧录器,可以更好的用于批量生产。以前用于C8051F系列的自制烧录器如果在EFM8烧写时出现问题,可以根据文章内容进行简单修改,解决烧写问题。
设计经验 发布时间 : 2019-08-02
【经验】对EFM8系列8位单片机可编程逻辑单元CLU的作用及应用的理解
Silicon Labs的EFM8系列8位单片机,集成了独特数字外设可编程逻辑单元CLU,让EFM8单片机的功能更加强大。那么,这个CLU的作用及应用是什么呢?本文将详细为你解读。
设计经验 发布时间 : 2019-08-21
【经验】8位单片机C8051F360如何实现多个SPI通信?
快速与不同配置的多个从设备进行通信,已经成为当前MCU芯片设计中的核心技术点之一。在现有微控制器芯片中spi接口一般只有1个,如何实现多个SPI通信是个问题。本文将介绍Silicon Labs的8位单片机C8051F360实现多个SPI通信的方法。
设计经验 发布时间 : 2021-07-15
【经验】如何基于Production Programmer实现EFM8系列8位单片机HEX文件下载?
当软件工程师调试并测试完毕代码后,下一个步骤,就是交给生产进入下载、生产环节。对于Silicon Labs的8位单片机,产线上下载方式有多种多样。本文将为你介绍一种简单、高效、低成本的下载方式,即基于原厂提供的通用软件“Production Programmer”+ U-EC6的方式。
设计经验 发布时间 : 2019-11-27
【经验】8位单片机EFM8系列的ADC对参考电压Vref引脚设计要求
Silicon Labs的8位单片机EFM8系列,高精度ADC功能时该芯片的一大特点,为了ADC获得准确的采用值,除了正确操作ADC外设外,还需要正确设计参考电压,结合EFM8芯片的特点,介绍参考电压设计需要注意的事项。
设计经验 发布时间 : 2019-10-29
【经验】基于8位单片机EFM8SB10F实现高精度液位检测的方法
本文根据实际经验,推荐一个基于电容检测原理的方法进行液位检测,主控选用Silicon Labs的EFM8SB10系列8位单片机,集成“电容传感器”单元,可实现16位检测精度,最小分辨单位为1fF,检测量程为0~500pF,实现高精度低成本方案。
设计经验 发布时间 : 2021-03-25
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
技术问答 发布时间 : 2016-10-25
【经验】如何基于SMBus接口让8位单片机EFM8实现bootloader操作?
Silicon Labs推出的8位单片机EFM8,具有模拟性能好、集成度高、运行速度快、体积小巧等优点,被广泛应用在光模块、电机控制、智能家居等领域。它还支持bootloader功能,而且出厂芯片即可自带boot代码(基于UART的,或基于SMBus的,根据型号而定)。那么在实际操作中,对于EFM8,在实现Bootloader时具体操作步骤是怎样的呢?本文将详细为你解读。
设计经验 发布时间 : 2019-09-29
【经验】如何正确设置EFM8LB1系列8位单片机的堆栈空间?
Silicon Labs推出的EFM8LB1系列8位单片机,具有集成度高、速度快、模拟性能好及体积小等优点。最近有使用的软件工程师问,为了让EFM8LB1配合DSP工作, 如何扩大它的堆栈空间?本文就将为你讲解。
设计经验 发布时间 : 2021-03-18
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,128
现货市场
服务
支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。
提交需求>
提供7~27寸工控机定制,支持嵌⼊式/ 壁挂式 /桌⾯式/悬挂式等安装方式,采用纯平⾯板IP65防尘防⽔等级,莫⽒7级硬度触摸屏,兼容多种操作系统:组态软件/安卓/XP/win7/8/10/Linux等,支持主板、接⼝、外观、⽀架、刷卡器、⾝份证阅读器、LOGO、⻨克⻛、系统、电池、蓝⽛、4G/5G、摄像头、GPS系统、⼆维码扫描器、指纹等特殊应⽤场景定制
最小起订量: 1台 提交需求>
登录 | 立即注册
提交评论