【技术】 EFM8SB1系列MCU工作模式及SFRPAGE寄存器详解
EFM8SB1系列是SILICON LABS最节能的8位MCU,非常适用于对功耗要求高的系统中,其150uA/MHz 运行功耗,0.5uA 睡眠电流,可以极大延长电池的使用寿命。
EFM8SB1系列集成资源丰富。其不仅提供了最高8KB的闪存空间,还提供了丰富的外设接口,包括I2C、UART、SPI,芯片集成了12位ADC和比较器,可用于低电压检测。此外,其也集成了最佳的电容式感应控制器,提供超低功耗<1uA的触摸唤醒能力。
EFM8SB1除了具有以上丰富的资源以外,还有多种工作模式可供选择,本文将进行重点介绍,EFM8SB1支持四种工作模式:
1)正常工作模式(Normal):在该模式下,CPU内核以及相应的外设,全部正常工作,MCU上电后,默认工作在此模式下。
2)空闲模式(Idle):在该模式下,CPU内核停止工作,但是外设和时钟正常工作,在软件中,只需一条语句即PCON0 = 0x01;即可使MCU进入该模式,在此模式下,任意中断即可唤醒MCU,使MCU进入Normal模式。举例说明,如下所示,软件中有3条语句,
当MCU执行到PCON0 = 0x01;时,MCU进入IDLE模式,程序停止运行,当有任意中断产生时,MCU被唤醒,程序从LED1 = 0;开始执行。
LED0 = 0;
PCON0 = 0x01;//进入IDLE模式
LED1 = 0;
3)挂起模式(Suspend):在该模式下,CPU内核停止工作,内部时钟停止,在软件中,通过执行PMU0CF= 0x40;使MCU进入Suspend模式,可以通过RTC定时、端口匹配、CS0通道,比较器0上升沿进行唤醒。
4)睡眠模式(Sleep):在该模式下,MCU的功耗最低,CPU内核停止工作,IO引脚状态及RAM保持不变,在软件中,通过执行PMU0CF= 0x80;使MCU进入Sleep模式
EFM8SB1系列MCU,具体的工作模式介绍,如下图所示:
在EFM8SB1系列MCU中还有一个SFRPAGE分页寄存器,当对某个寄存器进行操作时,需要先设置分页到该寄存器所在的分页下,然后才能对该寄存器进行操作,例如:要操作PMU0MD寄存器,首先要对该寄存器所在的页进行配置,因为该寄存器在0F页,所以要使SFRPAGE = 0x0F;如果没有该页指向,那么对PMU0MD的操作是无效的。
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 17
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
技术问答 发布时间 : 2016-10-25
【经验】PCB布线技巧:8位单片机端口Crossbar功能的使用及配置
如果单片机自带Crossbar功能,只要软件配置调整一下各端口功能,PCB布线就会畅通。
设计经验 发布时间 : 2017-08-09
8位单片机EFM8BB21F16中比较器参数表中的磁滞和偏移怎么理解?
8位单片机EFM8BB21F16 中比较器的磁滞是V_+在V_-附近时不会马上反转,会滞后一定的电压,磁滞的电压会导致比较器输出反转滞后,如果输入电压比较接近时有干扰可以 避免比较器输出频繁反转。比较器的偏移是指在V_+/V_-很接近时,比较器的输出电平跳转需要一定的上升/下降时间。
技术问答 发布时间 : 2017-10-10
8位单片机EFM8系列中芯片上的UID是什么?
UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID。有两类获取UID的方式,一种通过读取RAM的特定地址获得,一种通过读取Flash的特定地址获得。在早期引入此ID的MCU上(比如EFM8BB1/SB1/SB2)这个ID为32位,在芯片复位时(PC指针被复位至0之前)被复制至RAM中特定位置,用户程序可以读取其值。此位置的RAM仍然可以由用户使用。需要注意的是如果此位置被编译器分配了变量,那么当函数执行至main()时此位置的内容会被初始化代码覆盖。EFM8UB2的UID也是此类,但其位数为128位。在新的EFM8系列MCU上(比如EFM8BB3/LB1/UB1),UID位数为128位,存储在Flash上。
技术问答 发布时间 : 2017-05-05
8位单片机EFM8在线烧录时,使用烧录软件Flash Programming Utility每次更换芯片都需要重新连接,请问是否有不需要重新连接的在线烧录软件?
除了Flash Programming Utility烧录软件,Silicon Labs还提供MCUProductionProgrammer烧录软件,后者更换芯片时无需再重新连接。
技术问答 发布时间 : 2016-10-25
8位单片机EFM8BB21F16可以使用哪些仿真器,与C8051F系列有什么不同?
8位单片机EFM8系列MCU仍然使用了C2接口,所以C8051F使用的仿真器都可以与其通信。目前有如下类型: 1、EFM8 STK 上的J-Link,这种仿真器由Segger开发。 2、Silabs的UDA、第三方的仿真器。 3、Silabs的TOOL STICK。
技术问答 发布时间 : 2017-10-10
8位单片机C8051F930在程序调成完成之后,使用Flash Programming Utility进行程序烧录发现无法烧录进入,提示连接失败,应如何处理?
因为C8051F930单片机是SiLICON LABS的C8051Fxx系列比较后期的产品,所以需要使用4.21.00以上版本的Flash Programming Utility进行程序烧录。
技术问答 发布时间 : 2016-10-25
8位单片机EFM8LB11,既有I2C,也有SMBus,那么,I2C与SMBus的主要差别是什么?
SMBus和I2C的主要差别是与各种时序要求相关。下面列举最重要的方面:SMBus定义一个最小总线时钟频率FSMB,10KHz。I2C没有明确任何最小总线时钟频率。除了维持有效的总线吞吐量,该SMBus协议参数还可作为一个简单的检测总线空闲条件(除了或代替检测每个STOP条件)和实现比特位超时的方法。SMBus定义一个数据保持时间,即从SMBCLK下降沿之后,SMBDAT仍然必须维持至少300ns有效。这在I2C协议中定义的保持时间为0。SMBus时钟最大频率定义为100KHz。I2C提供多种不同速率模式操作,Standard模式最高频率达到100KHz,Fast模式为400KHz,Fast Plus为1MHz,而High-speed高达到3.4MHz。SMBus定义一个时钟低电平超时 TTIMEOUT,最大为35ms。I2C并没有明确指定任何超时限制。SMBus明确TLOW:SEXT,即SMBus从设备的累积时钟低扩展时间。I2C没有类似的规定。SMBus明确 TLOW:MEXT,即SMBus主设备的累积时钟低扩展时间。I2C没有类似的规定。
技术问答 发布时间 : 2017-05-05
请问8位单片机EFM8BB系列有汽车级的产品吗?
8位单片机EFM8BB系列的每个型号都有汽车级的型号,经过AEC-Q100的认证。
技术问答 发布时间 : 2017-10-10
在Simplicity studio平台使用Keil编译器编译8位单片机EFM8SB20F64G程序时,总是编译失败,错误提示为:data:segment too large,是什么原因造成的?
由于EFM8SB2单片机内部RAM分为内部RAM和片上XRAM,内部RAM为256 Bytes,XRAM为4KB。用户数据(变量)会默认优先保存在内部RAM中,如果用户定义了比较大的数据或者结构体变量,该变量超出内部RAM的范围时,会导致内部RAM分配错误,Keil编译器会提示data数据过大,此时需要对Keil编译器进行设置,将内存模式设置为Large模式即可,此时变量会默认优先保存在XRAM中。具体的设置方式如下:从Simplicity studio中打开Simplicity IDE,右键单击工程文件名,打开“properties”->“C/C++ Build”->“Settings”,在属性的右侧界面中打开“Tool settings”->“general settings”,然后在最后侧属性设置页面中将“Memory model”设置为“Large(variables in XDATA)”,设置完成重新编译即可。
技术问答 发布时间 : 2016-10-25
对于8位单片机EFM8LB10,在使用ADC功能时,如何计算ADC详细的转换时间以及速率?
根据EFM8LB1 Datasheet,ADC转换总所需时间为:Total ConverSion Time=RPT×(ADTK+NUMBITS+1)×T(SARCLK)+(T(ADCCLK)×4);where RPT is the number of converSions represented by the ADRPT field and ADCCLK is the clock selected for the ADC;在高速模式下,以最快的SARCLK为18MHz 计算,跟踪时间至少需230ns( =T(SARCLK)x4),若RPT为累计一个样本,ADCCLK为系统时钟72MHz,那么ADC的转换速率约为:14 Bit Mode:1/[230ns+(14+1)/18MHz+4/72MHz]=0.9Mbps;12 Bit Mode:1/[230ns+(12+1)/18MHz+4/72MHz]=1Mbps;10 Bit Mode:1/[230ns+(10+1)/18MHz+4/72MHz]=1.1Mbps。
技术问答 发布时间 : 2017-05-05
对于Silicon Labs 8051 微控制器的定时器 Timer 0 或 Timer 1, 可以使用的外部输入时钟的最大频率是多少?
定时器外部输入时钟源的频率的限制实际上取决于系统时钟 SYSCLK的频率。一个脉冲信号必须稳定维持至少2个系统时钟周期才能被识别,无论是高电平还是低电平。这意味 着在理想条件下(准确的50%占空比),外部输入时钟频率的最快为系统时钟频率的1/4。然而实际上并没有具有占空比精确为50%的信号。假如信号的占空比接近50%,则 外部输入时钟的频率绝对最大值应该是系统时钟频率的1/5。
技术问答 发布时间 : 2017-10-10
8位单片机EFM8BB2系列的PWM精度是多少?
EFM8BB2系列单片机的PWM精度跟timer有关,EFM8BB2系列支持8bit和16bit的timer,所以PWM的精度是16bit。
技术问答 发布时间 : 2016-10-25
8位单片机芯片C8051F410,使用内部数模转换DAC时,输出电压值和程序设定值不匹配,产生的原因有哪些?
导致C8051F410单片机的DAC输出电压和程序设定值有误差的原因有:(1)输入参考电压Vref不稳定,导致输出有误差;(2)DAC数据更新模式默认为“On-Demand”模式,更新发生在写数据寄存器高字节(IDAnH)时。如果程序先写IDAnH寄存器,寄存器IDAnL的数据将不能更新,导致误差产生。所以需要先把数据更新到IDAnL寄存器,再更新IDAnH寄存器。
技术问答 发布时间 : 2017-05-05
8位单片机EFM8BB21F16SMBus的FIFO有多少个字节?
8位单片机EFM8BB21F16SMBus的FIFO大小为 1个字节,有了FIFO,SMBus总线只有在收到2个字节以后才可能出现阻塞情况。
技术问答 发布时间 : 2017-10-10
电子商城
现货市场
服务
支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。
提交需求>
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
查看全部1条回复