【经验】8位MCU EFM8BB10 端口匹配实现外部中断的方法
SILICON LABS 8位MCU EFM8BB10系列运行频率可达到25MHz,芯片在3*3mm封装内集成了丰富的模拟外设与数字外设,是空间受限应用的理想。
EFM8BB10内部集成有两个外部中断,INT0与INT1。而且这两个外部中断的引脚只能分配在P0端口,这就给实际应用带来了一些问题,有时PCB已经设计好,但外部信号所在的引脚无法分配到P0端口。或者在实际的应用中需要用到3个或3个以上的外部中断,这时要如何解决呢?
EF8BB10的GPIO有端口匹配功能,端口匹配功能可由一个或多个端口I/O引脚上的逻辑值改变而触发。端口匹配这个功能在P0、P1端口的16个GPIO上设置,使用灵活。可由用户自行定义。这个功能主要通过两个寄存器设置,一个是PnMASK,一个是PnMAT。
PnMASK用于单独选择与PnMAT寄存器进行比较的引脚,设置为1表示对应的引脚要与PnMAT对应位进行比较,设置为0表示对应的引脚被忽略,默认为0X00。引脚的电平变化不会与PnMAT比较。比如,当P0MASK = 0X81时,只有P0.0与P0.7两个引脚需要比较,这两个引脚的电平变化会产生端口匹配的中断,其它引脚的电平变化不会产生端口匹配事件。
PnMAT寄存器用于存放引脚的正常状态时的电平值,默认是0XFF,即全是高电平。当引脚输入的电平与PnMAT不相同时产生端口不匹配事件并触发中断。默认值是高电平,所以在默认条件下,只有外部的GPIO的引脚输入为低电平时才会产生不匹配中断。
在将端口匹配功能作为一个外部中断使用时,还有一个要注意的事情是端口匹配事件是由电平触发的,即如果端口一直维持在一个不匹配的电平的条件下,会不间隔的产生中断,为了产生外部中断的效果,需要在端口匹配中断服务程序中禁止端口匹配中断,并在主程序中判断端口是否已经释放,如果已经释放再使能端口匹配中断。另外,如果是要对上升沿、下降沿都产生中断,可以在中断服务程序中修改PnMAT的值,以保证下次的匹配。如下的程序对PnMAT的值做修改才可以,如下:
SI_SBIT(S1,SFR_P0,0);
SI_INTERRUPT (PMATCH_ISR, PMATCH_IRQn)
{
if(S1 == 0)
{
P0MAT = 0X00;
}
if(S1 == 1)
{
P0MAT = 0X04;
}
EIE1 &= ~0x02;
}
另外,端口匹配也可以将芯片从休眠状态唤醒,可以在低功耗的应用中使用。
- |
- +1 赞 0
- 收藏
- 评论 1
本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】Silicon Labs 8位MCU 烧录程序异常的解决方法
本文介绍Silicon Labs的8位MCU C8051F/EFM8系列的芯片在量产烧录过程中遇到问题的解决方法。
【经验】8位MCU EFM8LB1的SPI时钟频率度计算方法
EFM8LB1系列是Silicon Labs公司推出的高性能8位MCU,带有通信速率最高12 Mbps的 SPI,支持主/从模式,本文将介绍SPI时钟频率度是如何计算的,以及要产生一个时钟频率,软件如何初始化。
简单至关重要:为何8位MCU将持续发展?
几十年来,8位MCU一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。简单、有效的8位MCU在推动智能物联网产品的发展中发挥了核心作用。虽然其后代的功能(如32位和无线MCU)继续领先,但对于广泛的应用来说,8位MCU的普及和偏好没有放缓的迹象。
Silicon Labs EFM8系列8位MCU的IO Crossbar硬件分配
EFM8系列是Silicon Labs公司的8位MCU,总共分为4个系列:通用型EFM8BB系列、低功耗EFM8SB系列、带USB的EFM8UB系列和高性能的EFM8LB系列。EFM8系列MCU的IO具有Crossbar功能,即软件上可以分配IO的外设,为硬件设计提供了灵活性。但是Crossbar功能分配外设时并不是引脚随意分配,而是具有优先级要求的。
【经验】基于8位MCU C8051F850的BLDC参考设计演示操作指南,也适用EFM8BB10
Silicon Labs提供有基于8位MCU C8051F850的BLDC的参考设计,这个参考设计也同样适用于EFM8BB10系列的8位MCU。本文介绍基于C8051F850(EFM8BB10) BLDC相关资料的下载地址及如何快速的搭建开发环境并演示。
【经验】8位MCU EFM8SB2擦除Flash会复位的解决方法
SILICON LABS的EFM8SB2是最节能的小封装8位MCU。采用高效的8051内核,最低睡眠电流为50nA,功耗可达170μA/MHz,可应用手持设备、电池驱动式消费电子设备、传感器接口等。
【经验】简介EFM8SB2 8位MCU的3线制SPI配置,使片选线(CS/NSS)的选择更灵活
嵌入式开发中,我们经常会用到SPI通讯,本文主要介绍Silencon Labs EFM8SB2 8位MCU的3线制SPI。当使用3线制的SPI时,我们可以更方便的配置片选线。
【经验】8位MCU EFM8系列内部BOOTLOADER的空间分配
本文介绍Silicon Labs的8位MCUEFM8系列内部BOOTLOADER占用FLASH空间的情况,及程序中对FLASH空间地址的分配。
【应用】主频高达50MHz的芯科科技8位MCU用于电子烟,静态功耗低至1.3μA
芯科科技EFM8BB51F8G-A-QFN20这颗多功能的8位MCU,具有小型的综合功能集包裹具有高效的8051核、支持5V的I/O、精确模拟和增强的脉宽调制,本文主要介绍芯科科技EFM8BB51F8G-A-QFN20 MCU应用于电子烟产品。
【经验】8位MCU EFM8LB1 FLASH擦写操作步骤
EFM8LB1系列是silabs专门针对光模块以及消费市场推出的高度集成的3x3mm小封装8位MCU,内部自带温度传感器,+/-3℃温度范围,可选0-4路DAC,UART或者SMBUS bootloader,以及其他通用接口。本文主要介绍EFM8LB1系列Flash的擦写方式以及步骤。
【经验】Silicon Labs 8位MCU EFM8LB SMBUS通信异常状态的处理
Silicon Labs 8位MCU EFM8LB芯片工作主频可以达到72MHz,在3*3mm的极小封装内集成有14位ADC、12位DAC、±3℃温度传感器、模拟比较器及高速通信外设等功能,芯片集成度高,运算速度快,在信号处理等领域有广泛的应用。 本文介绍Silicon Labs 8位MCU EFM8L SMBUS总线通信异常的分析及解决方法。
【应用】芯科8位MCU用于分酸分注器上,集成12位分辨率的ADC采样,主频达49MHz
分酸分注器,通过控制电机打开关闭阀门,将酸性液体注入到石油中,采用芯科的8位MCU EFM8BB31F64I-D-5QFN32作为信息采集和控制信号发送,此芯片集成了2个UART和 1个IIC接口,满足产品对外设接口的需求。
【经验】在Simplicity Studio中8位MCU EFM8用C编程时嵌入汇编代码的方法
目前MCU领域主流的编程语言仍是C语言,但是在某些关键的地方仍需要使用少部分汇编代码来实现,比如精确的延时,在不使用定时器的情况下C代码很难控制精确,这时嵌入汇编就有很大优势。下面就是以Silicon Labs 8位MCU EFM8BB10为例的一个操作例子。
【经验】如何读取8位MCU EFM8SB2的UID值?
Silicon Labs的8位MCU EFM8BB2系列中有一个唯一识别码,叫做UID。我们在开发中有些时候需要使用读取UID,本文将分享如何在程序中读取EFM8BB2系列MCU的UID。
【经验】使用8位MCU C8051F580时如何计算CAN位时间寄存器
在使用Silicon Labs的8位MCU C8051F580的CAN功能时,相对复杂的是CAN位时间寄存器的设置,在本文将举例说明C8051F580的CAN位时间寄存器的计算方法。
电子商城
现货市场
品牌: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 提交需求>
登录 | 立即注册
提交评论