如何使用PRS连接外围设备避免MCU过载

通常,mcu 花费大量时间在外设之间传递信息。不一定是这样。
外围反射系统 (prs) 是一个网络,它允许不同的外围模块直接相互通信,而不涉及 cpu。发出反射信号的外围模块称为生产者。prs 将这些反射信号路由到消费外围设备,这些外围设备根据接收到的反射信号应用操作。没有给出反射信号的格式,但 prs 可以应用边沿触发和其他功能。
概述
图 1 概述了一个通道以及如何使用 prs 连接四个不同的外围设备。prs 包含八个互连通道,每个通道都可以在生产商提供的所有输出反射信号之间进行选择。然后,消费者可以选择要收听的 prs 通道,并根据通过该通道路由的 reflex 信号执行操作。reflex 信号既可以是脉冲信号,也可以是电平信号。同步 prs 脉冲是一个 hfperclk 周期长,可以由生产者发出(例如 adc 转换完成)​​,也可以由 prs 通道中的边沿检测器生成。电平信号可以是任意波形,但会与 hfperclk 同步。
图 1 显示了连接到两个 prs 通道的四个外设。一个通道上有 timer0 和 adc0,acmp 和 timer1 连接到第二个通道。timer0 溢出可启动 adc 单次转换,acmp 输出可用作 timer1 上比较/捕捉通道的输入。
图 1:prs 概览。
一般操作
通道功能
可以对 prs 内的反射信号应用不同的功能。每个通道都包括一个边沿检测器,可以从电平信号中生成脉冲信号。也可以通过软件写入 prs_swpulse 和 prs_swlevel 寄存器来生成输出反射信号。prs_swlevel 是每个通道的可编程电平,并保存其编程到的值。如果 prs_swpulse 写入 1,它将发出一个周期的高脉冲,否则断言 0。然后,swlevel 和 swpulse 信号与来自生产者的选定输入进行异或运算,以形成发送到收听频道的消费者的输出信号。如图 1 所示。
efm32lib 函数void prs_sourcesignalset(unsigned int ch, uint32_t source, uint32_t signal, prs_edge_typedef edge)可用于轻松配置 prs 通道。通过指定从外设产生外设信号的 prs 通道和产生脉冲的边沿,该函数相应地配置 prs。
生产者
每个 prs 通道可以在来自多个生产者的信号之间进行选择,这在 prs_chx_ctrl 的 sourcesel 中进行配置。这些生产者中的每一个都输出一个或多个信号,可以通过设置 prs_chx_ctrl 中的 sigsel 字段来选择这些信号。将 sourcesel 位设置为 0(关闭)会导致输入多路复用器输出恒定的 0。表 1 中给出了可用生产者的概述。
表 1:反射生产者。
消费者
消费者外围设备(表 2)可以设置为侦听 prs 通道并根据该通道上接收到的信号执行操作。大多数消费者期望脉冲输入,而有些消费者也可以处理电平输入。
表 2:反射消费者。
软件示例
本节介绍了四个软件示例,用于探索使用 prs 的外设之间可能的交互:
timer 触发 adc 转换
使用 acmp 和 timer 进行脉冲宽度测量
gpio触发uart传输
软件触发的 dac 转换
timer 触发的 adc 转换
图 2 显示了如何设置 adc0 以在每次 timer0 溢出时启动单次转换。timer0 在每次溢出时通过 prs 将 timer0 发送的一个 hfperclk 周期的高脉冲发送到 adc0,adc 进行一次转换,显示在 stk/dk 开发板的 lcd 上。adc 消耗脉冲信号,这些信号与 timer 产生的信号相同。在这种情况下,不需要边缘检测,因此 prs 使输入信号保持不变。
图 2:timer0 溢出使用 prs 启动 adc0 单次转换。
adc 配置为 8 位分辨率和 vdd 作为参考和输入。当 adc 完成转换时,它会产生一个转换完成中断。然后 cpu 将获取结果并将其显示在 lcd 上。显示的结果是从始终为 255 的 adc0_singledata 寄存器直接读取的结果,假设输入与参考相同。dma 也可用于获取转换结果,并且由 an0021 模数转换器覆盖。
该软件项目prs_timer_adc实现了这个示例,可以在 stk 和 dk 开发板上使用。
使用 acmp 和 timer 进行脉冲宽度测量
图 3 说明了如何测量任意波形的脉冲宽度或周期。acmp 用于通过 prs 发送电平信号。timer0 同时消耗脉冲和电平信号,因此 prs 使输入信号保持不变。在 timer0 上,prs 信号用作 cc0 通道的输入。timer0 在上升沿开始计数,在下降沿捕获计数器值。
图 3 还显示了 acmp 通过 prs 发送到 timer 的电平输出,timer 使用捕捉功能测量脉冲宽度。
软件项目prs_pulse_width实现了这个例子,可以在 stk 和 dk 上使用。要触发脉冲宽度测量,引脚 pc4(dk 原型板上的 p4.7)必须连接到 vmcu 以产生将触发 acmp 并启动 timer 的高电平。当连接被释放时,acmp 的输出将再次变为低电平,并且 timer 捕获计数器值并将其显示在 lcd 上。
图 3:acmp 电平输出用作 timer0 cc0 通道输入的 prs 信号。
gpio 触发的 usart 发送
图 4 说明了如何使用通过 gpio 传入的外部信号来启用 usart 发送器。它显示了来自生产者端的 gpio 引脚通过 prs 边沿检测器发送的正边沿,以在消费者端创建一个 hfperclk 周期脉冲。gpio 产生不被 uart 消耗的电平信号,因此必须使用边沿检测器在 gpio 正边沿转换时生成脉冲信号。时钟脉冲使能 usart tx 并传输放置在 tx 缓冲区中的数据。要使 gpio 生成 prs 信号,必须在 gpio_insense 寄存器中启用 prs sense。
软件项目prs_gpio_uart实现了这个例子,并且只适用于 dk。要启用 usart tx,引脚 pd0 必须连接到 vmcu 以产生上升沿。然后,efm32 将通过 serial a 以 57600 波特率、无奇偶校验和一位停止位发送字符“x”。
图 4:使用 prs 由 gpio 信号启用的 usart tx。
软件生成的 prs 脉冲触发 dac 转换
图 5 显示了如何通过软件生成 prs 脉冲。prs 脉冲将触发 dac 转换,在引脚 pb11 上输出 0.5 v 信号。可以通过软件生成脉冲和电平信号。在这种情况下,会生成一个脉冲信号,因为它是 dac 消耗的信号类型。dac 转换也可以由 dac 本身中的软件启动。此示例仅显示如何也可以通过 prs 完成此操作。
图 5:软件触发的 prs 信号。
图 5 显示了由软件触发的一个 hfperclk 周期脉冲。脉冲和电平信号可由软件分别直接写入 prs_swpulse 和 prs_swlevel 寄存器来生成。它们也可以使用 efm32lib 中的函数生成:
void prs_pulsetrigger(uint32_t channels)产生脉冲信号
void prs_levelset(uint32_t level, uint32_t mask)产生电平信号
该软件项目prs_soft_dac实现了这个示例,并且可以在 stk 和 dk 上使用。
监测 prs 信号
可以使用消耗 prs 信号的外设监测 prs 通道。一个示例是使用 timer 在连接到的 prs 通道上有活动时进行捕获。该软件项目main_prs_channel_scan举例说明了如何实现这一点,并且可以在 stk 和 dk 上使用。
该function prs_scanchannel(timer_typedef *timer, timer_prssel_typedef prsch, timer_edge_typedef edgetype) in the main_prs_channel_scan项目可用于监控特定 prs 频道上的活动。它在选定的 timer 上设置 cc0 通道以捕获选定的信号边沿。该项目可以在stk和dk上使用,参数如下:
timer:指向 timer 外设寄存器 c\block 的指针
prsch:要监控的 prs 频道
edgetype:要监视/捕获的信号边沿
此函数将挂起等待 prs 通道中的活动的 while 循环。当此类活动发生时,它会在 lcd 上写入 prs 和频道号。要在这条线上产生活动,用户必须将 pc4 连接到 vmcu 以使用 acmp 在 prs 通道上产生上升沿转换。
另一种选择是使用捕获中断而不是轮询。这样程序就不会挂起,处理器将可用于执行其他任务。当触发捕获时,用户知道所选 prs 通道上有活动。

Unity正式推出AR制作工具MARS
直流电子负载的三种工作模式
自旋量子比特在量子计算领域具有更好的发展前景
氮化镓晶体管应用领域
华为将通过5G+AI让工业互联网成为现实
如何使用PRS连接外围设备避免MCU过载
怎么测量直线模组的精度?
DSO-X2012A示波器不开机面板灯常亮故障维修
关于 STM32 的几点内容
欧菲智联第三代热成像人体测温仪的特点介绍
卓岚信息科技WiFi串口服务器ZLAN7146概述
边缘人工智能正在推动一个更安全、更智能的世界
小吉推出专业化妆品冰箱 超高的颜值和彩妆融为一体
交流电路中电容的作用分析
5G智能手机2022年可望放量增长
无人机在应急救援领域的几个典型应用
什么是轴电流_轴电流对电机轴承的危害
调幅波的波形与调频波的波形有何区别?
西安紫光国芯成功入选国家企业技术中心
电机的现状以及未来发展趋势