TM4C123GH6ZRB引脚复用与信号配置实战指南

Java高级:条件队列与同步器Synchronizer的原理+AQS的应用 14. 构建自定义的同步工具类库中包含了许多存在状态依赖性的类,例如 FutureTask , Semaphore和 BlockingQueue等。在这些类中的一些操作中有着基于状态的前提条件,例如,不能从一个空的队列中删除元素,或者获取一个尚未结束的任务的计算结果,在这些操作可以执行之前,必须等到队列进入 “非空 ”状态,或者任务进入 “已完成 ”状态。创建状态依赖类的最简单方法通常是在类库中现有的状态依赖类的基础上进行构造。本章将介绍实现状态依赖性的各种选择,以及在使用平台提供的状态依赖性机制时需要遵守 阅读详情

1. 从引脚列表到设计蓝图:理解TM4C123GH6ZRB信号表的深层逻辑

刚拿到Tiva™ TM4C123GH6ZRB这款微控制器的数据手册,翻到信号表那一章,看到密密麻麻的引脚编号、名称和功能列表,是不是有点头大?尤其是那张“按功能分类的信号(GPIO除外)”的表格,信息量巨大,但乍一看就是一堆冰冷的代号。我刚开始接触Cortex-M4系列MCU时也有同感,觉得这不过是芯片厂商提供的“字典”,需要时查一下就行。但后来在几个实际项目中踩了坑才明白,这份信号表远不止是字典,它是你硬件设计和软件配置的“宪法”,理解透了,项目就成功了一半;理解不透或者用错了,轻则功能异常,重则芯片损毁。

这份表格的核心价值,在于它揭示了TM4C123GH6ZRB强大的**引脚复用(Pin Muxing)**能力。简单来说,芯片上的物理引脚是有限的(这款是100引脚BGA封装),但内部集成的外设模块却非常丰富。为了让一个引脚在不同场景下干不同的活,芯片设计者引入了复用机制。比如,物理引脚 E2 ,在表格中我们看到它可以是 AIN0 (ADC输入通道0),也可以是 PE3 (GPIO端口E的第3位)。具体让它扮演哪个角色,完全由我们开发者通过软件配置决定。这种灵活性是双刃剑:它让我们能用更少的引脚实现更复杂的功能,但也要求我们在设计之初就必须规划好每个引脚的“职业生涯”,避免功能冲突。

所以,看这份表不能只看一行,而要横向、纵向关联着看。一个引脚编号对应着多个功能名,这很正常。我们的任务就是根据项目需求,从这些选项中为每个引脚选定一个最合适的“身份”,并在原理图设计和初始化代码中保持一致。接下来,我们就抛开枯燥的罗列,把这些信号分门别类,结合实战场景,拆解清楚每个功能族群的脾性和用法。

2. 模拟世界的入口:ADC与模拟比较器信号详解

在嵌入式系统里,MCU主要处理数字信号(0和1),但我们生活的物理世界充满了连续的模拟信号,比如温度、压力、光照、声音。连接这两个世界的桥梁,就是 模数转换器(ADC) 。TM4C123GH6ZRB内部集成了一个12位精度的ADC模块,最高采样速率可达1MSPS(每秒百万次采样),性能相当不错。

2.1 ADC输入通道(AIN0 - AIN23)与参考电压

信号表里最显眼的就是那24个ADC输入通道(AIN0到AIN23)。注意,这里的“通道”是逻辑概念,它们通过模拟多路复用器连接到同一个ADC转换器核心。也就是说,同一时刻只能有一个通道的电压被转换成数字值。你需要通过编程来切换通道进行采样。

引脚特性与设计要点: 这些 AINx 引脚(如 E2 对应 AIN0 , E1 对应 AIN1 )的“缓冲区类型”标注为“模拟”,管脚类型为“I”(输入)。这意味着:

  1. 禁止连接数字输出 :你绝不能将这些引脚配置为数字输出模式(比如GPIO输出高电平)并试图驱动外部电路。它们的内部结构是针对高阻抗模拟输入优化的,没有强推挽输出能力。
  2. 信号调理至关重要 :对于从传感器直接过来的小信号(比如热电偶的毫伏级信号),通常需要经过运算放大器进行放大、滤波(抗混叠滤波)后,再送入 AINx 引脚。直接连接可能导致信号无法被准确测量。
  3. 输入电压范围 :每个 AINx 引脚的输入电压必须在 VREFA- 和 VREFA+ 定义的参考电压范围之内,通常是在0V到 VDDA (模拟电源电压,通常为3.3V)之间。超过这个范围不仅会导致转换结果错误,还可能损坏芯片的模拟输入电路。

参考电压引脚(VREFA+, VREFA-): 这是ADC精度的心脏。 VREFA+ 和 VREFA- 引脚(对应 D2 和 D1 )用于设定ADC转换的电压基准。

  • VREFA+ :定义了输入电压的上限。当 AINx 引脚上的电压等于 VREFA+ 时,ADC转换结果为满量程值4095(对于12位ADC)。
  • VREFA- :定义了下限。当电压等于 VREFA- 时,转换结果为0。

最常见的配置 是将 VREFA- 连接到模拟地( GNDA ),将 VREFA+ 连接到 VDDA (例如3.3V)。这样,ADC的测量范围就是0V至3.3V。如果你需要更高的测量精度(比如测量一个0-1V的精密电压源),可以使用一个外部更精准、更稳定的基准电压芯片(如REF3033)来提供 VREFA+ (1V),并将 VREFA- 接地。这样可以充分利用ADC的12位分辨率在0-1V区间内,而不受3.3V电源噪声的影响。

实操心得:ADC的坑,多数在PCB布局上

  1. 电源去耦 : VDDA 和 GNDA 必须就近(1cm以内)放置一个10uF的钽电容和一个0.1uF的陶瓷电容进行去耦。这是降低电源噪声、保证ADC精度的第一要务。
  2. 走线隔离 : AINx 引脚的走线应尽可能短,并远离高频数字信号线(如时钟、PWM),防止串扰。如果空间允许,可以用地线包围模拟走线。
  3. 未使用的模拟引脚 :悬空的 AINx 引脚容易拾取噪声,导致ADC读数随机跳动。建议在软件中将其禁用,或者在硬件上通过一个电阻(如100kΩ)连接到 GNDA 。

2.2 模拟比较器(C0+, C0-, C0o...)

除了ADC,芯片还集成了3个独立的模拟比较器(Comp0, Comp1, Comp2)。比较器的功能很简单:比较两个模拟输入电压( Cx+ 和 Cx- ),当 Cx+ 电压高于 Cx- 时,数字输出 Cxo 为高,反之则为低。它的响应速度极快,常用于过流保护、零交叉检测、窗口电压监控等需要快速响应的场合。

使用要点:

  • 输入引脚 :如 C0+ ( K1 )、 C0- ( K2 )等,同样是纯模拟输入,注意事项同 AINx 引脚。
  • 输出引脚 :如 C0o ( M9 或 B11 ),这是一个数字输出。 关键点来了 :这个输出信号是可以通过引脚复用映射到多个物理引脚上的!例如, C0o
TM4C123GH6ZRB模拟比较器与PWM模块实战配置指南 在嵌入式系统开发中,模拟比较器和脉宽调制(PWM)是两大核心外设,分别负责高速电压比较与高效功率控制。模拟比较器通过直接比较两个模拟电压,无需经过ADC转换,能实现纳秒级的快速响应,常用于过压保护、零交叉检测等实时性要求高的场景。PWM技术则通过调节数字方波的占空比来精确控制平均电压或功率,是驱动电机、调节LED亮度及开关电源的核心手段。本文聚焦于TI Tiva™ C系列TM4C123GH6ZRB微控制器,深入解析其片上模拟比较器与PWM模块的寄存器级配置。内容涵盖内部参考电压(VIREF)的精确计算、中断 阅读详情

相关推荐

嵌入式开发实战:从TM4C123信号表到管脚复用配置全解析

在嵌入式系统设计中,管脚复用(Pin Multiplexing)是一项基础且关键的技术,它允许单个物理管脚通过内部可编程开关矩阵(如AFSEL和PCTL寄存器)分时承载多种信号功能。这项技术的核心价值在于,能在有限的芯片封装尺寸和成本约束下,最大化外设集成度与设计灵活性,从而满足物联网、电机控制等场景对小型化与多功能的需求。理解管脚复用机制,是进行芯片选型、硬件原理图设计和底层驱动开发的基础。本文以TI Tiva™ TM4C123GH6ZRB微控制器为例,深入解读其信号功能与管脚复用表,并结合UART、I2

weixin_34355559的博客 632

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法 前言 在训练自己模型的时候,会遇到GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢的问题。这个问题一方面是由于硬件没有设置到最佳工作状态,另一方面是代码中参数没有设置好。最近在跑Halcon DL遇到这个问题,而Halcon不像开源的几个框架那样自由,代码封装的比较多。所以遇到这种问题,只能在参数最优的情况下,通过设置硬件参数来提升性能。 当然,在跑DL之前,无论什么框

ZiLiangQin的博客 9916

地心地固坐标系与北天东坐标系的转换

经过这一步旋转,x3轴和y3轴就处在过O3点的经度线所在的平面了,而且z3轴指向了东。将图3的坐标系旋转成图2的样子。这里需要多次旋转,每次以某个轴为对称轴进行旋转,对应的坐标变换参考。的原点在地心,Z轴指向北极点,X轴指向本初子午线与赤道的交点,Y轴指向符合右手定则,如下图所示。下面实现地心地固坐标系到北天东坐标系的转换,问题描述为:设一点。以y1轴为对称轴,顺时针旋转90°,得到图4的样子。,X轴指向北,Y轴指向天,Z轴指向东,如下图所示。因此,北天东坐标下的坐标为。点在图3坐标系下的坐标。

csdnqixiaoxin的博客 3556

ROS2实战:手把手教你用CMake集成自定义DDS(以CycloneDDS为例)

本文详细介绍了如何在ROS2中通过CMake集成自定义DDS(以CycloneDDS为例),涵盖环境准备、源码编译、ROS2工作区集成、性能调优及常见问题排查。通过RMW中间件抽象层,开发者可以灵活切换DDS实现,提升系统实时性和可靠性。

weixin_29284201的博客 348

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 243

图解链表 —— JAVA中的单链表基本操作

文章目录1. 什么是链表2. 链表的种类3. 创建单链表3.1 创建 Node 类(车厢类)3.2 创建 MySingleList (火车类)4. 单链表的基本操作4.1 增加链表元素4.1.1 在链表头部添加元素4.1.2 在链表任意位置添加元素4.1.3 在链表尾部添加元素4.2 删除链表元素4.2.1 删除第一个节点元素4.2.2 删除任意位置 index 元素4.2.3 删除链表中指定元素的第一个节点4.2.4 删除链表的所有指定元素4.3 查找链表元素4.3.1 判断链表中是否包含元素 data4

AlinaQ05的博客 2502

SRT公网点对点传输及搭建SRT流媒体服务器

SRT是一种开源传输技术,它是基于UDP协议的,与RTMP不同的是,它具有高码率低延迟的传输特性,加强了在复杂不稳定网络环境中的传输可靠性,提升了不可预测的网络环境上的流传输性能。它不像NDI那样只适用于局域网传输,它更适用于公网环境下的信号传输。 S代表Secure,即安全加密的视频流,R代表Reliable,即具有从数据严重丢包中恢复的可靠性,T代表Transport,即动态适应变化的网络状况。 在音视频数据包传输的过程中,SRT会检测并适应两个传输点之间的实时网络状况,有助于补偿由于网络的拥塞而引起的

罗宇。的媒体技术工作室 1万+

Android16 RK3576 Bluetooth source和sink模式切换

摘要:本文介绍了在RK3576平台上实现蓝牙A2DP模式动态切换的修改方案。通过在device配置文件中添加A2DP Sink相关属性,修改Bluetooth模块代码实现:1)在Config.java中增加persist.bluetooth.rka2dpsink属性控制模式切换;2)修改A2dpSinkStreamHandler.java取消音频焦点限制;3)调整btif_a2dp_sink.cc默认授予音频焦点。最终通过设置persist.bluetooth.rka2dpsink属性为true/false

tzj1058756809的博客 862

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 电流镜原理与应用:模拟集成电路中的关键技术
下一篇: Delta-Sigma ADC原理与高精度模数转换设计
deepfuture
博客等级 码龄17年 211粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值