The Event Link Controller – Automatically Manage Low Level System Tasks on RA MCUs
In this blog, we'll look at another one of the more unusual and less understood peripheRAls available in the RA microcontroller family.
In previous blogs, we looked at two of the peripherals that allow you to create complete autonomous subsystems on a typical RA microcontroller, reducing the CPU demand in your system by automating basic low-level tasks and often saving power consumption, being able to put the CPU to sleep while low-level systems tasks are managed automatically by the hardware. In the past blogs, we looked at the Data Operating Circuit, and the Data Transfer Controller and how we could combine these to automate simple I/O tasks that can operate without CPU intervention, and wake up the CPU when an important event occurs.
In this blog, we'll look at the Event Link Controller (ELC), a peripheral that allows us to directly link peripherals in hardware on RA microcontrollers, so an event such as a timer timing out or an I/O port changing state can be used to trigger the start of an ADC conversion cycle, trigger a timer to start counting or to capture the time of the event. This is all done with a predictable latency, based on the relevant peripheral clocks, so a device can respond to an external event much quicker than using the CPI's interrupt system, and it can also reduce the complexity of the systems software as some events can be handled in hardware rather than relying on an interrupt to be serviced. This can be especially useful in systems with a high interrupt load, where background tasks can almost be completely offloaded from the CPU.
So let's look in a little more detail at how this works. The diagram below shows a greatly simplified diagram of the Event Link Controller. You can see that almost every peripheral on the chip (most of which can be used to generate an interrupt or a DMAC or DTC transfer) can be used to trigger an event inside the Event Link Controller. Each of these events can then be used to trigger an action in a number of the peripherals or to change the state of an I/O pin.
For instance, a timer timing out or an input capture event can be connected to the Analog-to-Digital Converter (ADC) and can start an ADC conversion cycle. The arrival of a message on a serial interface could cause a pin to change state. These events can even be chained together to create more complex interactions directly between the peripherals. This can allow you to automate many low-level events, and by combining some of the peripherals we have already discussed with the ELC, we can create quite complex subsystems, which all can operate without CPU intervention. Each connection in the ELC will occur within 1 – 2 clock cycles of the receiving peripherals clock and does not rely on the CPU to react, so we aren't reliant on the interrupt latency of your application to respond to asynchronous events.
A simple example of using the Event Link Controller is shown below. An external interrupt causes a timer to start after the timer overflows, this then causes the ADC to start conversion. When this system is implemented using interrupts on a traditional microcontroller, three interrupts are required. One for the external interrupt, one for the timer overflow interrupt, and one for the ADC end of conversion, with the resulting CPU overhead and, of course, the software required for each Interrupt Service Routine.
The system will also experience some jitter, especially if the system has many other, often higher priority, interrupts active, or is using an operating system, which may be handling higher priority tasks when one or more of these interrupts occur.
The Event Link Controller can handle the whole function. After the Event Link Controller is initialized, the whole process can be handled automatically without any CPU involvement until the complete process is finished. We can compare the process flow of using the Event Link Controller against the use of interrupts in the next diagram.
In a typical microcontroller application, after each interrupt is generated, we must service each interrupt. This results in a delay and, depending on the software, some jitter. In a microcontroller with the Event Link Controller, each event triggers the next peripheral automatically. The CPU is only interrupted after the ADC conversion has finished.
So in this example, we have almost no jitter, as each peripheral starts 1 – 2 clock cycles after the generating event, and is not affected at all by the condition of the CPU, whether it's handling a priority task or not. We also have additional savings, apart from the initialization, there is no software required for this process, so the code space required for the application can be reduced.
We could also go even further to automate this example and reduce CPU load, by using the DTC. We could automatically transfer the data from the ADC into a buffer in SRAM. Therefore, we could choose to interrupt the CPU perhaps only after every 100 or 200 readings. If we also include some other intelligent functions, such as the Data Operating Circuit, or we decide to use the ADC comparison function, we can go even further, and only interrupt the CPU when a preset analog value is exceeded.
All these features can remove load from the CPU, increase the system response time, make the application software simpler, and often even reduce power consumption.
The combination of the Data Transfer Controller and the Event Link Controller means that many low-level tasks, especially those based around the I/O and timers, can be handled automatically without CPU intervention. This both reduces the load on the CPU and greatly reduces the system's reaction time to external events. You can find more about all these features in the relevant user manuals on our website. The Event Link Controller, like many other peripherals on the RA family microcontrollers, is supported by the RENESAS Free Software Package (FSP).
- |
- +1 赞 0
- 收藏
- 评论 0
本文由Vicky转载自Renesas Blogs,原文标题为:The Event Link Controller – Automatically Manage Low Level System Tasks on RA MCUs,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【技术】瑞萨RA系列如何通过定时器+ELC实现串口通信空闲中断
介绍串口空闲中断主要是在数据接收过程中出现接收不到连续数据的现象时,用来触发给主函数流程的。一般会用在不定长的数据包接收或者需要实时数据接收反应的场合。RA虽然没有集成硬件的串口空闲中断功能,但是可以通过定时器+ELC,在不做任何硬件修改的情况下实现串口通信空闲中断功能。
【经验】瑞萨RA系列MCU使用e2 studio的断点调试方法和注意事项
瑞萨RA系列MCU可以使用e2 studio等开发环境进行调试和下载程序,在使用e2 studio时我们经常会遇到一些异常现象,如没有办法下断点进行调试,无法debug观察寄存器状态等,本文将介绍一下e2 studio常见的断点调试方法和注意事项。
【经验】解析瑞萨RA家族MCU的主要区别及命名规则
目前瑞萨电子(Renesas)已经发布的RA产品家族MCU主要包括四个系列即RA2系列、RA4系列和RA6系列,以及计划发布的RA8系列。有很多客户不了解RA家族处理器的主要区别和命名规则,本文讲详细讲解。
RA系列MCU注入电流,防止损坏MCU应用笔记
描述- 本资料介绍了如何防止RA系列微控制器(MCU)因异常注入电流而损坏。内容包括推荐的注入电流条件、不同型号的参数限制以及额外的说明和建议,旨在指导用户在设计和应用过程中采取适当的措施以保护MCU免受损害。
型号- RA FAMILY,RA4T1,RA6T2,RA6T1,RA6T3,RA4M1,RA2L1,RA4M3,RA6M1,RA4M2,RA6M3,RA6M2,RA6M5,RA2E1,RA6M4,RA4E1,RA2E2,RA6E1,RA2A1,RA4E2,RA6E2
【经验】瑞萨RA系列MCU在Keil开发环境下的开发介绍
本文主要介绍在Keil环境下如何新建瑞萨RA项目工程以及在已存在的RA醒目工程中如何通过图形化工具进行代码的底层配置。
【经验】瑞萨RA系列MCU低功耗唤醒功能测试
瑞萨RA系列MCU低功耗一共有三种模式,本次测试选择时钟为32.76kHZ,使用电容触摸按键唤醒,datasheet上描述芯片常温下功耗为0.55uA,用开发板实测功耗为60uA,经过检测,功耗主要来源于电容电阻,开发板中有一颗电阻功耗在30uA,并具体分析。
【经验】瑞萨RA MCU CAN和CANFD IP介绍
目前RA MCU提供以上三种CAN&CANFD IP,如果需要在CAN总线上添加CAN节点,以上三种CAN&CAN IP均可;如果需要在CAN总线上添加CANFD节点,请选择CANFD或者CANFD Lite;如果需要用到2个通道,请选择RA6M5的CANFD。
【经验】瑞萨RA系列MCU时钟系统解析
本文以瑞萨MCU RA6T2为例,如下XTAL是外接的主时钟,频率为8到24M范围内任意可选。连接到单片机的XTAL和EXTAL引脚,HOCO:是片上高速振荡器,他不可以随意设置,比如RA6T2,他的HOCO为16,18,20M三选一。
瑞萨RX系列MCU实现二级MCU OTA升级:FreeRTOS篇
基于空中下载技术(OTA:Over-The-Air)并通过云服务端实现的MCU固件升级得益于云供应商和设备供应商之间的合作开展,目前已具备了简单且可快速部署的集成环境。瑞萨RX云互联解决方案开发团队开始提供即便在未直接与互联网连接的二级MCU中,也可以利用AWS IoT服务方案进行OTA固件升级的示例代码。
Reducing Noise Issues in Microcontroller Systems - Part 4
In any system, the best way to avoid noise problems is to consider noise reduction from the beginning of the design. It’s important to understand the environment that your system will operate in, what noise sources will be present, and what steps you can take to mitigate these.However, sometimes it’s not possible to completely remove every source of noise, and Renesas RA microcontrollers offer a range of features that can help you make your applications more robust.
【经验】瑞萨RA系列MCU的底层配置之ICU配置和使用方法
本文以RA2E1为例介绍RA系列产品的ICU(外部中断)外设以及其软件配置、使用方法。RA系列在Keil、IAR或者E2 Studio均基于瑞萨FSP插件完成底层代码的生成,故其配置、使用方法在不同平台上均使用相同的操作,下面我们以E2 Studio为例介绍ICU的配置和使用。
Renesas Smallest 16MHz Touch Microcontroller RL78/G16 for 8-Bit MCU Market
RL78/G16 is the smallest MCU in Renesas, operating at 16MHz. Similar to RL78/G15 MCU, it is optimized for 8-bit MCU applications, and its capacitive touch sensor function and safety features make it suitable for a wide range of applications including home appliances, lighting control, and more.
【经验】基于瑞萨RH850/F1K的MCU 15833 CAN通信中断接收实现注意点
最近有客户在调试基于RH850/F1K的MCU CAN通信功能程序时,一直无法进入中断接收程序;经过查验总结问题所在点,步骤如下:1.在boot.asm文件,如果使用eiint作为表引用方法,启用下一行的宏。
【经验】瑞萨RA系列MCU的底层配置之外部中断功能_外部中断
本文以RA2E1为例介绍RA系列MCU产品的外部中断的配置和软件调用的使用方法。
Using ECC to Correct Soft Errors on the RA Family Microcontroller
This article specifically likes to look at the error correction function available to use on the RA SRAM to detect and, in many cases, correct soft errors, as this has been a topic of discussion for a number of customers recently.
电子商城
现货市场
服务
提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论