大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦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)- 初识的更多相关文章

  1. 痞子衡嵌入式:解锁i.MXRTxxx上FlexSPI模块自带的地址重映射(Remap)功能

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT三位数系列隐藏的FlexSPI Remap功能. 前段时间痞子衡写了一篇文章 <利用i.MXRT1060,1010上新 ...

  2. 痞子衡嵌入式:在i.MXRT1060-EVK上利用memtester程序给SDRAM做压力测试

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在i.MXRT1060-EVK上利用memtester程序给SDRAM做压力测试. 我们知道恩智浦i.MXRT1xxx系列是高性能MCU ...

  3. 痞子衡嵌入式:实测i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率. 上一篇文章 <聊聊i.MXRT1xxx上的普通GPIO与高速GP ...

  4. 痞子衡嵌入式:在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle (以MT35XU512为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Octal或Hyper Flash上DQS信号与Dummy Cycle联系. 关于在 i.MXRT 上启动 NOR Flash 时如何设 ...

  5. 痞子衡嵌入式:揭秘i.MXRT1170上串行NOR Flash双程序可交替启动设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1170上串行NOR Flash双程序可交替启动设计. 在上一篇文章 <i.MXRT1060/1010上串行NOR F ...

  6. 痞子衡嵌入式:聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT上的普通GPIO与高速GPIO差异. GPIO 可以说是 MCU 上最简单最常用的外设模块了,当一些原生功能外设接口模块不能 ...

  7. 痞子衡嵌入式:揭秘i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1170上安全调试策略实现对JLink调试的影响. 痞子衡之前写过一篇旧文 <i.MXRT600的ISP模式下用J-L ...

  8. 痞子衡嵌入式:关于i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区. 关于串行四线NOR Flash,当其作 ...

  9. 痞子衡嵌入式:理解i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值. 关于 FlexSPI 外设的 loo ...

  10. 痞子衡嵌入式:高性能MCU之人工智能物联网应用开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是高性能MCU之人工智能物联网应用开发相关知识. 恩智浦半导体2017年开始推出的i.MX RT系列跨界处理器,这种高性能MCU给嵌入式 ...

随机推荐

  1. 基于Pamion的流实数仓架构

    目录 1. 背景 2. 目标 3. Pamion 的概念和设计 3.1 架构 3.2 统一存储 3.3 基础概念 3.3.1 文件布局 3.3.2 Snapshot 3.3.3 Manifest 文件 ...

  2. superset 图表加水印

    转载wenqiang1208的文章 superset 作为一个数据可视化的工具,其中的图表,报表数据是非常敏感的,为了防止数据外泄,大部分公司需要在敏感图表上加上水印. 本篇文章有2种方式去介绍如何在 ...

  3. BackupBuddy pg walkthrough Intermediate

    nmap ┌──(root㉿kali)-[~/lab] └─# nmap -p- -A 192.168.189.43 Starting Nmap 7.94SVN ( https://nmap.org ...

  4. 使用天翼云云容器引擎CCE创建简单nginx服务

    本文分享自天翼云开发者社区<使用天翼云云容器引擎CCE创建简单nginx服务>,作者:b****n 一.创建一个nginx应用. 1.选择资源池,如[杭州2],进入云容器引擎CCE平台页面 ...

  5. P9869 [NOIP2023] 三值逻辑 题解

    NOIP2023 T2 三值逻辑 题解 题面 思路 乍一看好像很并查集,而且不太难,但是, 注意到:按顺序运行这 \(m\) 条语句 事情并没有那么简单. 比如说如下情况: x1:=T x2:=x1 ...

  6. 浅说 c++20 cppcoro (三)

    浅说 c++20 cppcoro (三),https://www.cnblogs.com/bbqzsl/p/18679860 接着上一篇浅说 c++20 coroutine (二) ,继续没说完的事. ...

  7. mongo数据库CPU使用率飙高及优化

    出现的情况 某天高高兴兴上班,发现一台mongo数据库负载较高,达到了300多,且一直很稳定,难道是硬件过时了. 检查主机的资源使用发现一个mongod进程使用了几乎所有的CPU资源. top - 1 ...

  8. [JOISC2019] 聚会 题解

    随机化好题,但是不会证. 考虑把树看成一条链,链的每个点上缀了一棵树. 那么先随机出两个点 \(x,y\)(实际上随机一个点,另一个点固定似乎更好?),然后对于当前这棵树上的任意点 \(z\),都让他 ...

  9. 怎么证明二元函数的极限是多少?& 怎么证明二元函数的极限不存在?

    怎么证明二元函数的极限是多少:https://zhaokaifeng.com/16589/ 怎么证明二元函数的极限不存在:https://zhaokaifeng.com/16600/

  10. docker - [10] 容器数据卷

    将应用和环境打包成一个镜像,然后发布启动就成为一个容器了. 一.什么是容器数据卷   容器数据卷(Container Data Volumes)是Docker管理的一种特殊类型的存储区域,它为容器提供 ...