痞子衡嵌入式:恩智浦i.MX RT1xxx上特色外设XBAR那些事(1)- 初识
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT1xxx系列上的XBAR外设。
得益于 Arm Cortex-M 内核的普及,现如今 MCU 厂商遍地开花,只要能取得内核授权,再去 OpenCores 开源网站或者直接第三方 IP 公司买一些通用的外设模块拼拼凑凑就能快速设计出一颗最基础的 MCU,但是这样的 MCU 在市场上显然竞争力不够,那么如何才能增加产品本身的竞争力呢?那就需要再给 MCU 附上独一无二的特性。
恩智浦公司深耕半导体行业几十年,无数工程师呕心沥血设计出了非常多稳定又可靠的外设模块,其中既有行业通用的基础外设(即使是基础外设,也包含了独特功能),也有独属于恩智浦的"浪漫"外设,正是这些外设构筑起了恩智浦 MCU 的行业地位。
如果要票选出恩智浦 MCU 里最“浪漫”外设,本文要介绍的 XBAR 必定会在入围名单里。本系列痞子衡将会带大家逐步深入探究 XBAR 模块,领略她的独特魅力。本文是第一篇,我们先来对她有个感性认识。
一、XBAR外设来源
熟悉 i.MXRT 尤其是 RT1xxx 产品的朋友应该都知道该系列脱胎于 i.MX6 处理器平台,XBAR 是 RT1xxx 上必备外设,然而 XBAR 并不存在于 i.MX 上,看到这你可能以为 XBAR 是在 i.MX RT 上全新设计的,但其实并不是!
如果你对恩智浦(尤其是飞思卡尔)足够了解,你会在 MC9S08 系列、MC56F8xxx 系列、Kinetis KV/KM 系列、S32 汽车平台、MPC5xxx 系列等多个产品上看到 XBAR 倩影,这其实是一个非常经典的外设。
如果非要找出最早引入 XBAR 模块的产品,极有可能是十几年前飞思卡尔推出的 DSC 系列 MC56F82xx。DSC 产品主要面向电源转换、电机控制市场,产品内部有多通道 ADC 以及各种类型 Timer,从这里可以初步推测 XBAR 非常适用与这些外设配合使用。

二、什么是XBAR?
XBAR 是 Inter-Peripheral Crossbar Switch 的简称,可以理解为是在指定的片内外设信号以及 I/O 之间加了一个交叉开关矩阵,可以自由地连接它们的输入输出。下图是最简单的 RT1010 上 XBAR 实现:
黄色框图统称交叉开关网络,由 XBAR 和 AOI 组成,黄框左边是全部的输入信号源,右边是全部的输出信号。XBAR 的每个输出选项均可配置来自于任一输入源,此外同一输入源可以同时配置给多个输出信号。
- Note:AOI 是 And-Or-Inverter 的缩写,也就是与非门,AOI 可以进一步丰富 XBAR 输入信号的组成形式。

实际上这个整体系统框图已经可以让我们初步感受到 XBAR 的作用了,我们不妨大胆猜想 XBAR 如下应用场景,后续文章痞子衡将带大家逐一探索这些场景。
- 场景1:将输入输出两端 I/O PAD 直连形成通路(注意可能会有传输延时)
- 场景2:将 FlexPWM1 信号连到 I/O PAD 上(假设这个 I/O 本身不具备 FlexPWM 复用功能)
- 场景3:将 PIT 信号连到 LPI2C/SPI/UART 模块定时触发传输
- 场景4:将 ADC 数据送到 eDMA (多通道数据放在不同地址)
- 场景5:将输入输出两端 eDMA 通道级联 (最多可实现4级)
- 场景6:将外设触发信号连到 XBAR 中断(用于调试时观测)
至此,恩智浦 i.MXRT1xxx 系列上的 XBAR 初步介绍痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园、CSDN、微信公众号、知乎、与非网、电子技术应用AET、电子星球、51CTO 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:恩智浦i.MX RT1xxx上特色外设XBAR那些事(1)- 初识的更多相关文章
- 痞子衡嵌入式:解锁i.MXRTxxx上FlexSPI模块自带的地址重映射(Remap)功能
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT三位数系列隐藏的FlexSPI Remap功能. 前段时间痞子衡写了一篇文章 <利用i.MXRT1060,1010上新 ...
- 痞子衡嵌入式:在i.MXRT1060-EVK上利用memtester程序给SDRAM做压力测试
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在i.MXRT1060-EVK上利用memtester程序给SDRAM做压力测试. 我们知道恩智浦i.MXRT1xxx系列是高性能MCU ...
- 痞子衡嵌入式:实测i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率. 上一篇文章 <聊聊i.MXRT1xxx上的普通GPIO与高速GP ...
- 痞子衡嵌入式:在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle (以MT35XU512为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Octal或Hyper Flash上DQS信号与Dummy Cycle联系. 关于在 i.MXRT 上启动 NOR Flash 时如何设 ...
- 痞子衡嵌入式:揭秘i.MXRT1170上串行NOR Flash双程序可交替启动设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1170上串行NOR Flash双程序可交替启动设计. 在上一篇文章 <i.MXRT1060/1010上串行NOR F ...
- 痞子衡嵌入式:聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT上的普通GPIO与高速GPIO差异. GPIO 可以说是 MCU 上最简单最常用的外设模块了,当一些原生功能外设接口模块不能 ...
- 痞子衡嵌入式:揭秘i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1170上安全调试策略实现对JLink调试的影响. 痞子衡之前写过一篇旧文 <i.MXRT600的ISP模式下用J-L ...
- 痞子衡嵌入式:关于i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区. 关于串行四线NOR Flash,当其作 ...
- 痞子衡嵌入式:理解i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值. 关于 FlexSPI 外设的 loo ...
- 痞子衡嵌入式:高性能MCU之人工智能物联网应用开发那些事 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是高性能MCU之人工智能物联网应用开发相关知识. 恩智浦半导体2017年开始推出的i.MX RT系列跨界处理器,这种高性能MCU给嵌入式 ...
随机推荐
- OxyPlot:一个功能强大、漂亮.Net跨平台开源绘图库
推荐一个支持多平台.多框架的.Net绘图库. 01 项目简介 OxyPlot是一个基于.NET开发的.跨平台的绘图库,可用于多种平台和框架,如WPF.Windows 8.Windows Phone.W ...
- 从存钱罐到子数组:一个关于累加和的精妙问题|LeetCode 560 和为K的子数组
LeetCode 560 和为K的子数组 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 生活中的算法 你有没有这样的经历:每天往存钱罐里存一些零钱,某一天突 ...
- 浅谈云主机在VPC中进行迁移的使用场景和操作方法
本文分享自天翼云开发者社区<浅谈云主机在VPC中进行迁移的使用场景和操作方法>,作者:刘****雪 一.客户经常遇到的网络迁移问题 客户在天翼云购买一台云主机并且部署完成想要的应用后,发现 ...
- Maven配置多数据源
一.配置文件 修改maven配置文件,用户目录下.m2文件夹中的setting.xml,内容如下 <?xml version="1.0" encoding="UTF ...
- .Net Core WebAPI部署多服务器配置Nginx负载均衡
下载Nginx包: https://nginx.org/en/download.html 首先下载Nginx包 注意:下载路径必须为英文,不能到中文: 启动Nginx: 打开刚刚下载的Nginx包,然 ...
- macOS Monterey(MacOS 12) 系统升级cocoapods
老款MacBook系统Monterey(MacOS 12)由于brew停止了从上游下载cocoapods提示不支持os12系统,无法安装最新版cocoapods,本文讲述了另一种方法来更新cocoap ...
- HTML骨架简述
<!DOCTYPE html><!-- <!声明 DOC docment文件/文档 TYPE 类别/类型 告知浏览器当前文档为html> --><html&g ...
- @Scheduled参数及cron表达式解释
@Scheduled支持以下8个参数:1.cron:表达式,指定任务在特定时间执行:2.fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms:3.fixedDela ...
- mysql where条件:某时间字段为今天的sql语句
1.查询:注册时间为今天的所有用户数: select count(*) from customer where TO_DAYS(createtime) = TO_DAYS(NOW()) 2.获取当前时 ...
- C++基础练习案例 - 模拟时钟系统 [DOS]
大学时期初学C++,做了些案例练习,想着整理一下,供自己和网友翻阅参考,谢谢支持!有个[模拟时钟系统]做的还可以. [PS]存在一些小问题,如编写习惯等,文末有简单小结,请自行辨析.算是提供不良模板, ...