TC3xx系列芯片--PortDio模块介绍

1、模块介绍

Port(端口)是芯片与板上其他外设或逻辑电路交互的重要引脚,用于芯片发出控制信号或接收外部信号。通过GPIO模式或各类通讯模式,对板载设备进行控制。

Aurix TC3xx系列芯片具有丰富的Port连接,而且每个Pin脚具有多种功能复用,提供了丰富的实现方式,支持多种几乎所有板极引脚通讯协议。

2、功能介绍

2.1、特性介绍

TC3xx系列中引脚是分组的,一组引脚称为Port,每个Port有最多16个Pin脚,具体的引脚资源情况需要参考对应芯片选型的DataSheet手册,如下图是TC38xx引脚Map图:

TC3xx的Port具有如下特性:

1、每个Port控制最多16个Pin脚;

2、软件能够控制每个Pin脚的输出

3、输出修改寄存器易于清除,设置和切换单Pin脚和Pin脚的波形不影响其它Pin脚的状态;

4、软件能够读取每个Pin脚的输入值

5、多路复用多达7个输出模式;

6、支持外设直接控制;

8、控制Pin的驱动特性,如驱动强度,偏移lv,上拉/下拉,推挽或开路漏极操作,选择TTL或CMOS/自动输入电平;

9、紧急停止功能允许SMU或通过Pin关闭Pin脚输出;

10、对于具有LVDS功能的Pad对,它可以控制LVDS特性,并允许LVDS和CMOS之间切换模式;

11、在减少引脚数的封装中,端口模块可以禁用所选引脚;

2.2、Port内部结构

TC3xx系列有多组Port,每组Port有最多16个Pin,每个Pin的输入输出以及控制模式都可独立配置。每个Pin脚内部结构如下图:

如上图可知,每个Pin脚包括一个Port Slice用于对引脚进行模式和输出控制,一个PAD用于与外界进行输入输出。

每个Pin脚都可以被配置为输入或者输出,通过Pn_IOCR寄存器进行切换。当配置为输入时,输出连接将被切断,可通过Pn_IN寄存器读取Pin脚的状态值;当配置为输出时,根据对应的输出模式(GPIO、HW_OUT、ALT1、ALT2…等),进行对应的输出连接。输入端是直连的,也就是说无论输出还是输入模式,都可以通过输入端读取Pin脚的状态。

当引脚配置为输出时,可通过配置多路复用选择器,同样也是通过配置Pn_IOCR寄存器进行输出模式控制。当输出模式配置为GPIO时,可通过Pn_OUT寄存器来控制Pin脚状态;当配置为ALT1---ALT7任意一种,则根据该Pin脚的实际输出连接,由外设进行控制。还有一种特殊的输出模式,即最下边的HW_OUT控制模式,当Pin脚配置为该输出时,由外设直接控制,例如RGMII/RMII/MII信号,AD输出信号,与ALT不同的是需要额外通过PCSR寄存器使能。

另外当输出模式设置为GPIO时,还可以通过位操作寄存器来进行设置。包括位设置寄存器Pn_OMSR和Pn_OMSRx

(x=0,4,8,12),位清除寄存器Pn_OMCR和Pn_OMCRx(x=0,4,8,12),以及位操作寄存器Pn_OMR。其中位设置寄存器只能对输出位进行置位,也就是Pin脚拉高,位清除寄存器只能进行拉低。位操作寄存器除了能够进行拉高拉低,还能进行翻转操作(toggle),就不需要预先读取引脚状态。

大部分引脚还具有紧急停止功能(Emergency Stop),能够在紧急情况下与输出连接断开,成为一个输入引脚。急停功能由System Control Unit(SCR),负责控制,可选择Safety Management Unit(SMU)或者P33.8(A)、P21.2(B)作为急停触发源,急停触发后所有配置急停使能的引脚都会执行急停操作,关闭输出。SCU内部关于急停的功能框图如下:。

2.3、Port控制寄存器

关于Port的原理部分其实内容比较简单,大致就是输入和输出,以及输出功能的配置,但是在使用过程中还是存在一些坑的,尤其是在使用高速SPI、RGMII、RMII、MII时,信号驱动能力和EMC等问题较难处理。如下介绍Port控制寄存器,并详细说明控制功能。

2.3.1、输入输出控制寄存器(Port Input/Output Control Registers,IOCR)

首先是Port的输入输出控制寄存器,该寄存器控制的功能比较多,包括Pin脚输入输出方向、输入上下拉配置、输出推挽或开漏配置、输出功能选择配置等。每个Port端口具有4个IOCR寄存器,对应Pin关系如下:

Pn_IOCR0:Pn.[3:0]

Pn_IOCR4:Pn.[7:4]

Pn_IOCR8:Pn.[11:8]

Pn_IOCR12:Pn.[15:12]

如下图:以Pn_IOCR0为示例

可以看到每个IOCR寄存器有4个位域,分别对应其控制的4个Pin脚,每个位域有5位,这5位表征的值如下表:

从上表中可以看出:

位域的最高位PCx[4]为1时,则为输出,为0时则该Pin脚为输入;

当Pin脚为输入时

PCx[1:0]表征该Pin脚的上下拉状态;

当Pin脚为输出时

PCx[3]表征该Pin脚的输出方式,0表示推挽输出,1表示开漏输出;

PCx[0:2]表征该Pin脚的输出功能选择,0表示GPIO功能1---7分别对应ALT1--ALT7;

这其中需要注意,若配置为输入上拉,在外部阻抗较小的情况下是可能输出虚高电平的,如果硬件明确该引脚需要输出低,则就会出现问题。另外对于一些硬件场景,比如使用I2C通讯时,对于所有主从设备,一般外部是有公共上拉的因此这时候MCU作为主机,输出如果配置为推挽,就会导致通讯失败,需要配置为开漏。

2.3.2、驱动模式寄存器(Pad Driver Mode Register,PDR)

驱动模式寄存器负责控制输出时的驱动强度、翻转速度以及输入上下拉的电源电阻。每个Port端口有两个PDR寄存器,其中PDR0对应Pin0--Pin7,PDR1对应Pin8---Pin15。每个PDR寄存器中包括两部分内容,分别是输出控制的PDx和输入控制的PLx,其寄存器结构如下。

从图中可以看到每个Pin脚又一个PDx和一个PLx,都占两个位宽。

其中PDx控制了输出时的驱动强度和翻转能力,驱动强度和翻转能力越高,对外部阻抗的能力就越强,信号的波形就越方正,但功耗会拉高,并且产生的信号辐射和干扰(EMC)就会越高。因此选择怎样的驱动强度及翻转能力,要具体取决于引脚的翻转频率,外部阻抗和EMC需求,例如SPI时钟较高,达到30MHz,那对应的驱动强度就该越高,否则信号波形跳变达不到要求,就会导致对端采样出错,通信失败;而对于GMII这样的告诉以太网通信,时钟一般高于100MHz,这时候容易产生高辐射,超出EMC要求的标准,反而需要适当降低驱动强度。

关于驱动强度和翻转能力,TC3xx的不同Pin脚具有不同的驱动速度,包括RFAST、FAST、SLOW、这是硬件资源使用情况,每个Pin脚类型需要查询对应的DataSheet,如下图中P00.8为SLOW

然后对于不同驱动速度的引脚,Pdx的含义不同,每个PDx有两个Bit位,对应PDx.0和PDx.1,具体情况参考下面对应的表格例如有一个Rfast Pin脚,若想配置为RGMII模式,则PDx = 11b。

另外需注意的是,SpeedGrade越小,表示对应的强度越高,功耗和EMC等级也就越高,RGMII属于例外。

然后在看PAD寄存器的PLx,PLx表征的是输入时的上下拉电源和电阻情况,每个PLx也是两个bit位宽。具体配置情况如下表:

2.3.3、差分控制寄存器(LVDS Pad Control Register, LPCR)

TC3xx系列芯片的Port支持差分信号功能,比如通过Hssl协议与外设进行信号交互时,此时数据采用的差分信号,因此引脚要配置为差分信号模式。

每个Port有8个LPCR寄存器,每个寄存器控制一对Pin脚,相邻的两个Pin组成一队差分Pin脚。差分信号控制寄存器中,[0---7]位为输入差分控制,[7--15]位为输出差分控制,位[7]为输入输出公用位。

REN_CTRL:输入控制选择,为0时表示普通Pin控制,1表示由HSCT控制,也就是Hssl协议使用;

Rx_EN:输入控制使能位,为1表示使能接收LVDS,0表示CMOS;

TERM:接收接地模式,0表示使用芯片外接电阻接地,1表示内部连接一个100Ω电阻接地;

LRXTERM:芯片测试阶段的可编程接地电阻设置,不允许用户修改的;

LVDSM:LVDM-M模式使能,0表示默认使用LVDS-H模式,1表示使用LVDS-M模式,可降低数据速率到160Mbps,以降低静态电流;

PS:选择该Pin脚对的外部供电Vext,0表示3.3V,1表示5V;

TEN_CTRL:输出控制选择,为0时表示普通Pin控制,1表示由HSCT控制,也就是Hssl协议使用;

TX_EN:输出控制使能位,为1表示使能接收LVDS,0表示CMOS;

VDIFFADJ:LVDS输出幅值调节,可用来调节输出幅值,调节能力参考DataSheet中如下图:

VOSDYN:VOS控制静态/动态回环调节,不允许用户修改;

VOSEXT:VOS控制内部/外部回环调节,不允许用户修改;

TX_PD:TC3xx中未使用该位,TX_EN可表征发送LVDS开关;

TX_PWDPD:发送端下电下拉,该功能禁用或启用LVDS下拉电阻;

2.3.4、Pin脚AD功能选择寄存器(Pin Function Decision Control Register,PDISC)

TC3xx系列中部分Pin脚是支持AD输入的,也就是将Pin复用为AD采样引脚,例如P40.0复用为AN24。如果复用为AD引脚,那Port端无法再去读取引脚的输入,而是由ADC模块来负责采样读取。

每个Port端口有一个PDISC寄存器,16个位域各控制一个引脚。

PDISx:Pinx的输入控制,0表示数字输入,为普通Pin脚,1表示模拟输入,ADC Pin脚;

2.3.5、Pin脚控制选择寄存器(Pin Control Select Register, PCSR)

前面提到,部分引脚是可以由外设直接控制的,例如RGMII输出,SMU的FSP输出,SCR(standby核)的控制。对于这类引脚,需要通过配置PCSR寄存器使能的,否则外设无法控制。

每个Port端口有1个PCSR寄存器,其图如下:

SELx:Pinx控制选择,0表示不使能外设控制,1表示使能;

LCK:该位只是一个只读位,为1时表示数据正在向SCR核传递,无法修改PCSR寄存器,为0则可修改;

PCSR寄存器的使用时需注意,尤其在以太网通信中,输出端Pin脚是需要配置该寄存器为1的。

2.3.6、Port输出寄存器(Port Output Register,OUT)

当Pin脚被设置为GPIO输出时,可直接通过修改输出控制寄存器的值来输出电平,1就是高电平,0就是低电平。每个Port端口有一个OUT寄存器,16个位域对应16个Pin脚。

2.3.7、Port输出修改寄存器(Port Output Modification Register,OMR)

若我们需要修改某一个Pin脚,一般是希望Port中的其它Pin脚保持不变的,这时若使用OUT寄存器则需要先回读OUT状态,在修改我们需要修改的位。但是这样未免有点浪费资源,因此我们可以通过操作OMR寄存器,只操作我们的目标位,其它位不进行修改。每个Port有一个OMR寄存器,包括16个Set位和16个Clear位,分别对应16个Pin脚。

关于OMR的Pin脚具体操作,可以通过查询下表可知,若要拉高某个Pin脚,就将PSx置1,拉低则将PCLx置1,若要翻转两个都置1,而其它没有设置位的Pin脚则不会受影响。

对于这个修改是直接作用于OUT寄存器的,因此不用担心OUT不同步的问题,另外该寄存器是虚拟的,没有存储位的,也就是说写这个寄存器相当于执行一种操作,而不是修改某个值,回读的话也是0。

2.3.8、Port输出修改置位寄存器(Port Output Modification Set Register,OMSR)

除了OMR寄存器,TC3xx还支持置位寄存器OMSR,它和OMR功能一样是虚拟寄存器,只不过是置位功能,每个Port端口有一个MOSR,16个位域对于16个Pin脚

PSx:Pinx置位,1表示将该Pin脚拉高,0表示无操作。

2.3.9、Port输出修改清除寄存器(Port Output Modification Clear Register,OMCR)

和输出修改置位寄存器的功能相反,修改清除寄存器OMCR的功能是将目标位清零,其它位不作修改。每个Port端口有一个OMCR寄存器,和4个OMCRx寄存器,每个位域对应一个Pin脚。

PCLx:Pinx清除位,1表示将该Pin脚拉低,0表示无操作;

2.3.10、急停开关寄存器(Emergency Stop Register,ESR)

急停开关寄存器用于控制急停功能的使能,急停的触发在SCU模块内配置。每个Port端口有一个ESR寄存器,16个位域对应16个Pin脚。

ENx:Pinx急停开关使能位,0表示不使能,1表示使能;

2.3.11、Port输入寄存器(Port Input Register,IN)

Port输入寄存器可以用来读取Pin脚当前的状态,无论Pin脚处于输入还是输出,都可以通过该寄存器读取Pin脚的高低电平。每个Port端口有一个IN寄存器,16个位域分别对应16个Pin脚。

Px:Pin脚读取状态,0表示低电平,1表示高电平;

2.3.12、寄存器总结

  • Port需要设置输入输出,包括输入上下拉,输出推挽等,使用输入输出控制寄存器IOCR
  • 驱动模式需要调整以适配不同的硬件需求,使用驱动模式寄存器PDR
  • Pin脚如果复用为ADC,使用Pin脚AD功能寄存器PDISC
  • Pin脚如果需要被外设控制例如使用RGMII接口,使用Pin脚控制选择寄存器PCSR
  • Pin脚如果需要修改GPIO输出,可使用OUTOMROMSROMCR
  • 读取Pin脚状态使用IN寄存器;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/423483.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜索软件 Everything 的安装与使用教程

一、Everything简介 适用于 Windows 的免费搜索工具 Everything 是 Windows 的即时搜索引擎。发现、整理并轻松访问文件和文件夹,一切尽在指尖! PS:Everything无法对文件内容进行搜索,只能根据文件名和路径进行搜索 二、Everyt…

面向对象程序设计之模板进阶(C++)

在之前我出过一篇博客介绍了模版的初阶:面向对象程序设计(C)模版初阶,接下来我们将进行模版的进阶学习,介绍关于更多模版的知识 1.非类型模版参数 模板参数分类类型形参与非类型形参 类型形参即:出现在模板参数列表中,跟在class或…

电力系统调度控制台的功能有哪些

在复杂多变的现代电力系统中,调度控制台作为其核心管理与控制的中枢,扮演着不可或缺的角色。它不仅是确保电网安全稳定运行的关键,也是实现电力资源高效配置的重要工具。那么,电力系统调度控制台究竟具备哪些关键功能呢? 首先&am…

Easyexcel导入数据,没有指定文件路径临时文件在什么位置?

1、SpringBoot接口导入Excel,MultipartFile转File public static File convertToFile(MultipartFile multipartFile) throws IOException {// 将 MultipartFile 转换为 byte[]byte[] bytes multipartFile.getBytes();// 创建一个临时文件File tempFile File.creat…

大模型时代的企业转型:RAG技术的进化与挑战

从2023年起开始火爆的大语言模型(Large Language Model,LLM),如GPT/Gemini/通义千问/GLM/文心一言/豆包等,经过了一年多的比拼和进化,已经几乎涵盖了所有通用性、常识性的知识和理解力; 与之同…

基于Java+Mysql实现(web)大型企业管理系统

技术报告 第一章 系统概述 包括用户管理、权限管理、软件项目管理、软件模块管理、测试用例管理、测试任务分配、bug管理等功能。实现公司不同部门间团队协作,管理人员也能够更加有效的把控系统开发的进度。 本实验综合应用JavaWeb编程中的Servlet,JS…

iPhone 16分辨率,屏幕尺寸,PPI 详细数据对比 iPhone 16 Plus、iPhone 16 Pro、iPhone 16 Pro Max

史上最全iPhone 机型分辨率,屏幕尺寸,PPI详细数据!已更新到iPhone 16系列! 点击放大查看高清图 !

电商api接口:让数据成为生产力的第一利器

随着电子商务的蓬勃发展,数据已成为推动业务增长和优化用户体验的关键因素。为了满足商家和开发者对多元化电商服务的需求,聚合电商 API 接口平台应运而生。这类平台通过整合多个电商平台的 API 接口,为商家和开发者提供一站式的数据服务&…

Apisix离线安装

上传离线包 #ll apisix-3.2.2-0.el7.x86_64.rpm apisix-base-1.21.4.1.8-0.el7.x86_64.rpm apisix-dashboard-3.0.1-0.el7.x86_64.rpm cyrus-sasl-2.1.26-24.el7_9.x86_64.rpm cyrus-sasl-devel-2.1.26-24.el7_9.x86_64.rpm cyrus-sasl-gssapi-2.1.26-24.el7_9.x86_64.rpm cyr…

HTB-Unified(log4j2漏洞、MongoDb替换管理员密码)

前言 各位师傅大家好,我是qmx_07,今天给大家讲解Unified靶机 渗透过程 信息搜集 服务器开放了SSH服务,HTTP服务 访问网站 验证log4j2漏洞 8443端口:UniFi 网络 ,访问查询 是否有Nday漏洞利用 可以观察到UniFi的版…

【网络安全的神秘世界】渗透测试基础

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 渗透测试基础 基于功能去进行漏洞挖掘 1、编辑器漏洞 1.1 编辑器漏洞介绍 一般企业搭建网站可能采用了通用模板&#xff…

【计算机网络】电路交换、电报交换、分组交换

【计算机网络】电路交换、电报交换、分组交换 目录 【计算机网络】电路交换、电报交换、分组交换1. 电路交换2. 电报交换3. 分组交换4. 基于分组交换~“虚电路交换”技术 1. 电路交换 电路交换(Circuit Switching):通过物理线路的连接,动态地…

linux_L2_linux删除文件

linux 删除文件 在Linux下删除文件有多种实现方法,以下是其中几种常见的方法: 方法一:使用rm命令删除单个文件 rm 文件路径例如,删除当前目录下的文件file.txt: rm file.txtQuestion :当你在Linux系统中使用rm命令删…

Git学习尚硅谷(005 idea集成git)

尚硅谷Git入门到精通全套教程(涵盖GitHub\Gitee码云\GitLab) 总时长 4:52:00 共45P 此文章包含第27p-第p32的内容 文章目录 忽略特定文件在家目录里创建这个文件在.gitconfig文件里配置这个文件 配置IDEA定位到git程序进行添加文件初始化本地库添加单个…

Mini-Omni 语言模型在流式传输中边思考边听说应用

引入简介 Mini-Omni 是一个开源的多模态大语言模型,能够在思考的同时进行听觉和语言交流。它具有实时端到端语音输入和流媒体音频输出的对话能力。 语言模型的最新进展取得了显著突破。GPT-4o 作为一个新的里程碑,实现了与人类的实时对话,展示了接近人类的自然流畅度。为了…

下一代 AI 教育:知识图谱RAG + 多智能体,听老师的话没前途,让老师听你的才是正道

下一代 AI 教育:知识图谱RAG 多智能体,听老师的话没前途,让老师听你的才是正道 下一代 AI 教育:基于最本质的用脑方式学习 理解 记忆?学习的 3 个层次文科:关联理解 关联分析 关联记忆秒背古诗古文商业…

前端用html写excel文件直接打开

源码 <html xmlns:o"urn:schemas-microsoft-com:office:office" xmlns:x"urn:schemas-microsoft-com:office:excel" xmlns"http://www.w3.org/TR/REC-html40"> <head><meta charset"UTF-8"><!--[if gte mso 9]&…

打架监测识别摄像机

打架监测识别摄像机 是一种用于监控和识别打架行为的智能监控设备。这种摄像机利用先进的人工智能和计算机视觉技术&#xff0c;能够准确识别出监控画面中发生的打架事件&#xff0c;从而及时采取必要的应对措施。 打架监测识别摄像机的工作原理是通过对监控画面的实时分析和识…

YOLOv8 人体姿态估计动作识别关键点检测(代码+教程)

YOLOv8 人体姿态判断 项目介绍 YOLOv8 人体姿态判断 是一个基于最新YOLOv8模型的深度学习项目&#xff0c;旨在识别和分析人体姿态。该项目利用先进的计算机视觉技术和深度学习框架&#xff0c;通过摄像头捕捉实时图像或处理存储图像&#xff0c;识别人体的关键点&#xff0c…

大语言模型如何助力药物开发? 哈佛George Church Lab最新综述

大语言模型因其展现出类人般的推理、工具使用和问题解决能力而备受瞩目&#xff0c;此外&#xff0c;它在化学、生物学等专业领域也展现出深厚的理解能力&#xff0c;进一步提升了其应用价值。本文阐述大语言模型可以在理解疾病机制、药物发现和临床试验三个药物发现的基本阶段…