| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 芯片端子的多路复用 -> 正文阅读 |
|
[嵌入式]芯片端子的多路复用 |
嵌入式软件的开发,经常要和芯片打交道,和个人电脑的通用平台的CPU使用X86或X64架构不同,嵌入式电子产品使用的主控芯片是各种各样的,从8051单片机,到ARM Cortex-M系列,再到ARM Cortex-A系列加Linux系统等。 PC的CPU架构比较统一,型号少,差异自然也小,而电子产品上用的芯片差异就很大,根据使用场景不同,需要不同的引脚或端子数目,同时集成了不同的片上资源,比如I2C、SPI、UART、USB等,并通过端子来将信号传递给外部或捕捉外部信号。 芯片上包含的端子或管脚(pin)是有限的,所以大部分的端子会有多个信号选项,比如可以作为I2C的clock信号,或者作为SPI的CS信号,或者作为AD转换的输入信号,或者作为普通GPIO等。就是让我们的IC可以将一个引脚(PAD)share给多个功能块(function block)。这种共享的实现方式,是将引脚的输入输出信号进行多路复用。 这些信号和端子的对应关系,是由IOMUX(input-output multiplexer)控制的,IO复用控制器。 IOMUX也用来配置端子的其他属性,比如电压档(3.3V / 1.8V)、驱动电流大小等。 这些芯片所接收或产生的信号,都属于外部信号,可以将它们按照模组(module instance)来分类,比如UART1, UART2,i2c1等。 下面以IMX6ULL芯片的某部分Muxing(等于multiplexing) Options为例: 在Chapter 4: External Signals and Pin Multiplexing。
I2C2, 是芯片上4个I2C bus中的第二个,这个放在instance一列。 有两个信号,clock和data,这个是port,是指片上外设使用的信号。 Pad指的是引脚或端子名字,是唯一的,命名方式可能是和module有关,也可以用GPIO编号命名。 Mode表示的是这个Pad可选的工作模式,具体支持多少种要以芯片手册为准,比如ALT0 ~ ALT7(Alternative),就是一个Pad最多可以选择对应8种不同的信号。这个ALT数值可以在寄存器里设定,来配置端子对应于不同的信号。 我们注意到,一个PAD加上一个Mode唯一确定了一个引脚的工作状态,表明当前要用于某个信号。 所以I2C2的SCL信号,用的是UART5_TX_DATA这个引脚的ALT2模式,这就是一个完整的IOMUX配置项。 我们再看一下以GPIO功能为分组的IOMUX配置:
这里就看到,PAD名字有的是以GPIO号命名,有的是以Module信号命名。 上面提到的UART5_TX_DATA这个PAD,对应的是GPIO1的第30号Pin。 关于多路复用功能,在硬件上包含IOMUX(实现多路复用的逻辑组合,a basic?IOMUX cell)和IOMUX_CTL(多路复用控制器,控制信号选择、端子设置等)。 下面的图显示了一个简单的Soc框图,两种端子复用的情况: 第一个是通常的端子复用例子: Module A, Module B,和Module GPIO 通过IOMUX共享同一个端子,复用配置通过IOMUX_CTL来控制。 第二个是没有使用复用的例子: 端子由Module C专用,信号在Module C和端子之间直接联通,没有IOMUX cell参与。 如图显示的这款芯片的多路复用功能,每个IOMUX cell最多支持8个模式(muxing modes (ALT0–ALT7)),表示每个pin最终可以由8个信号共享。 还可以看到IOMUX_CTL分为控制Input select的,PAD control的,还有MUX control的。 (完) |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 18:53:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |