0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MAXQ微控制器上的多路复用JTAG接口引脚

星星科技指导员 来源:ADI 作者:ADI 2023-01-10 11:34 次阅读

通常在嵌入式应用中,微控制器上的每一个端口引脚都需要,没有多余的端口引脚。大多数具有可重写内部程序存储器(如闪存或EEPROM)的MAXQ®微控制器支持标准化的JTAG/TAP接口(也称为调试端口),外部主机使用该接口访问在线调试或在线编程(引导加载程序)功能。构成此接口的引脚通常与标准 GPIO 端口引脚功能多路复用,这意味着它们可能可用于应用程序,而不是在开发阶段完成后浪费。本应用笔记讨论了在一般应用中重复使用这些引脚的方法,并介绍了在这样做时应牢记的注意事项。

概述

通常在嵌入式应用中,微控制器上的每个端口引脚都是应用所必需的;没有一个作为备用。但是,开发人员可以选择解决此问题。大多数具有可重写内部程序存储器(如闪存或EEPROM)的MAXQ微控制器支持标准化的JTAG/TAP接口(也称为调试端口),外部主机使用该接口访问在线调试或在线编程(引导加载程序)功能。用于此接口的引脚通常与标准 GPIO 端口引脚功能多路复用,以便在开发阶段完成后潜在地将其提供给应用程序。本应用笔记解释了如何在一般应用中重复使用这些接口引脚。该说明还确定了在多路复用这些引脚时要考虑的一些情况。

应用程序开发的阶段

在开发阶段,JTAG兼容的调试端口提供了许多有用的功能。首先,调试端口允许在外部主机的控制下加载应用程序(使用MAX-IDE,Rowley CrossWorks或IAR Embedded Workbench®等开发环境)。这意味着可以测试、修改应用程序,并在下一个测试周期中再次快速加载应用程序。其次,调试端口允许访问MAXQ架构提供的在线调试功能。这些调试功能包括读写寄存器、一次单步执行程序代码以及查看程序、数据和堆栈存储器的能力。最后,使用引导加载程序和在线调试器对应用程序可用的内存资源几乎没有影响。这是因为在线调试功能完全在MAXQ硬件和实用程序ROM中实现。

一旦应用完成并经过测试,就不再需要在线调试功能。此外,在大批量部署中,可重新编程的MAXQ器件被屏蔽ROM版本所取代,也不需要在线编程(引导加载程序)功能,这意味着调试端口不再有任何用途,可以忽略不计...或更有创意地使用。当MAXQ器件上的GPIO端口引脚数量有限且不足以满足应用需求时,回收专用于JTAG兼容调试端口的端口引脚并使其可用于一般应用可能特别有用。

重复使用调试端口引脚

以下四个引脚用于实现JTAG兼容的调试端口接口。

TCK:测试时钟—MAXQ输入

TMS:测试模式选择—MAXQ输入

TDO:测试数据输出—MAXQ输出

TDI:测试数据输入—MAXQ输入

这四个引脚通常与四个 GPIO 端口引脚多路复用;用于此目的的确切引脚因MAXQ器件而异。默认情况下,在复位或上电复位(POR)条件之后,调试端口使能,这意味着端口引脚不可用于一般应用。要禁用调试端口功能并使端口引脚用于通用,必须将系统控制寄存器中的TAP位(SC.7)清零。然后使用PD、PO和PI寄存器以正常方式控制端口引脚。

硬件注意事项

如果在应用程序开发和部署阶段使用相同的硬件,则必须注意,当调试接口中的端口引脚在GPIO模式或JTAG/TAP模式下使用时,硬件将正常运行。例如,当引脚用于JTAG/TAP模式时,连接到这些引脚的任何外部器件都必须将引脚释放到三态模式,从而允许主机和MAXQ驱动这些线路上的信号。此外,连接到这些线路的器件必须忽略在在线调试或引导加载程序操作期间由主机或MAXQ驱动的任何信号。如果响应信号可能会损坏设备,则尤其如此。

例如,假设其中一个端口引脚既用于TCK信号(在JTAG/TAP模式下使用时),也用于控制继电器(在GPIO模式下)。当使用JTAG接口调试器件时,TCK信号快速切换,这反过来又导致继电器打开和关闭,并可能损坏连接到继电器的外部设备。为防止这种情况,只要器件在引导加载程序或在线调试模式下工作,就应禁用从JTAG/TAP接口连接到引脚的任何外部器件。通过使用跳线或其他引脚作为使能信号,可能会禁用外部设备。

软件注意事项

禁用JTAG接口端口是一件简单的事情。TAP (SC.7) 位可以随时清零,这样做会使端口引脚立即可供应用使用。应用程序开发人员的自然倾向可能是在应用程序代码的开头清除此位,以便为应用程序设置正确的操作模式。但是,尽早清除 TAP 位可能会导致应用程序开发过程中出现问题。

如果应用程序将在屏蔽ROM MAXQ器件上运行(永远无法重新编程),那么没有理由不在应用程序开始时将TAP清除为零。在这种情况下,将永远不会使用引导加载程序和在线调试功能,因为代码已经在设备中编程并且无法更改。

但是,对于在可重新编程的MAXQ器件上开发的应用,应用软件在清除TAP位和禁用JTAG接口之前,应始终提供几秒钟的延迟。如果在重置后立即清除 TAP 位,则在尝试重新加载或调试应用程序时,可能会导致以下事件序列:

主机将/复位至低电平,使MAXQ处于复位状态。

主机释放/有效复位。

MAXQ从复位状态出来,开始运行代码,从而立即关闭JTAG接口。

主机尝试通过JTAG接口与器件通信,但无法这样做。

此顺序类似于在复位后立即进入停止模式或另一种极低功耗模式的应用程序引起的问题。在允许禁用/RESET引脚的器件上,问题可能更糟。在这些情况下,实际复位行为取决于主机触发的事件顺序,以及器件是仅使用/RESET引脚复位,还是通过上电和断电复位。

为避免上述软件问题,任何关闭调试/TAP端口或/RESET引脚的应用都应在启动时延迟几秒钟,然后再关闭调试引擎。这种延迟允许外部主机在关闭JTAG接口之前通过JTAG接口控制MAXQ。或者,应用可以检查另一个端口引脚(通过跳线或按钮控制)上的输入电平,以确定是应启用还是禁用JTAG端口。

结论

MAXQ微控制器上的TAP (SC.7)位提供的JTAG接口的多路复用功能允许接口的四个端口引脚用于调试/引导加载程序或通用I/O。只要遵循一定的硬件和软件预防措施,这些引脚可以作为引脚受限系统的附加资源重复使用,并在使用MAXQ器件开发应用时增加灵活性。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147659
  • 接口
    +关注

    关注

    33

    文章

    7643

    浏览量

    148520
  • JTAG
    +关注

    关注

    6

    文章

    383

    浏览量

    71151
收藏 人收藏

    评论

    相关推荐

    [6.4.1]--多路复用

    多路复用数字逻辑
    李开鸿
    发布于 :2022年11月13日 01:18:45

    多路复用ICSP引脚如何控制开关?

    想要一个外部多路复用器,例如TS3A24159,从串行端口切换到PGED1和PGEC1。问题是如何控制开关。由于MCLR通常保持在3.3V,并且当程序员连接到13V时,我想添加一个分压,具有全局电阻
    发表于 04-01 08:19

    16位RISC微控制器MAXQ613资料推荐

    16位RISC微控制器MAXQ613资料下载内容主要介绍了:MAXQ613引脚功能MAXQ613内部方框图
    发表于 03-29 06:45

    用于Arduino微控制器多路交流输入板

    另外的 16 个输入(一个仅当除了选择引脚之外,多路复用器的共享引脚也被共享)等等。COM 输出上检测到的状态范围为 0 到 5V,适合直接连接到微控制器的数字端口,即使没有连接或有源
    发表于 08-24 07:38

    请问STM32WB55微控制器的GPIO引脚的切换速度是多少?

    我想使用外部多路复用器来增加 ADC 的数量,但开关速度是一个问题。幸运的是,一些多路复用器具有 13 ns 的切换速度(~100 MHz),我打算使用 GPIO 信号对其进行切换。然而,它也引起了对 GPIO 引脚的切换速度的
    发表于 12-02 06:04

    没有其他方法可以将LCD和多路复用PSRAM与控制器引脚封装连接起来吗?

    和 LCD_CLK针号 45:FMC_DA12 和 LCD_R7 所以,我的问题在这里出现了:没有其他方法可以将 LCD 和多路复用 PSRAM 与此控制器引脚封装连接起来吗?
    发表于 12-23 07:33

    如何使用ESP多路复用14个段?

    驱动多路复用。有没有更好的方法来处理中断?我以 4 毫秒的延迟进行多路复用,这似乎是我可以达到干净 POV 效果的最慢速度。 在另一个 ESP 项目中,我当然在 8x7 段显示使
    发表于 05-24 07:05

    多路复用技术

    2.3  多路复用技术2.3.1  频分多路复用2.3.2  时分多路复用2.3.3  波分多路复用2.3.4  码分
    发表于 06-27 21:46 0次下载

    基于CPLD的非多路复用多路复用总线转换桥的设计与实现

    基于CPLD的非多路复用多路复用总线转换桥的设计与实现 微处理器对外并行总线接口方式一般分为两种,一种为多路复用方式,数据与地址采用共用引脚
    发表于 03-28 15:08 762次阅读
    基于CPLD的非<b class='flag-5'>多路复用</b>与<b class='flag-5'>多路复用</b>总线转换桥的设计与实现

    多路复用多路复用总线转换桥的设计与实现

    多路复用多路复用总线转换桥的设计与实现 提出了一种新颖的非多路复用总线与多路复用总线的转换接口电路。以两种总线的典型代表芯片TMS
    发表于 03-28 15:14 821次阅读
    非<b class='flag-5'>多路复用</b>与<b class='flag-5'>多路复用</b>总线转换桥的设计与实现

    实现MAXQ2000微控制器JTAG加载主机

    摘要:MAXQ®微控制器提供的JTAG启动加载程序使外部JTAG主机能够利用一组标准命令,轻松地识别MAXQ
    发表于 04-23 16:22 1368次阅读
    实现<b class='flag-5'>MAXQ</b>2000<b class='flag-5'>微控制器</b>的<b class='flag-5'>JTAG</b>加载主机

    MAXQ微控制器JTAG接口引脚复用

    摘要:通常在嵌入式应用中,微控制器的每个端口引脚都是必需的,没有多余引脚。大部分MAXQ®微控制器带有可重新进行写操作的内部程序存储
    发表于 04-23 16:28 843次阅读

    MAXQ处理器的串口转JTAG接口

    摘要:本应用笔记讨论串口转JTAG接口板能够接收的命令。该接口板用于实现与MAXQ微控制器接口
    发表于 04-23 17:28 1023次阅读

    使用MAX6951/MAX6950 LED显示驱动器与MAXQ2000微控制器通信

      MAX6950和MAX6951为2000位和16位共阴极LED显示驱动器,通过高速SPI接口控制。这些器件采用独特的多路复用方案,以最大限度地减少 LED 驱动器和 LED 面板之间的连接
    的头像 发表于 02-20 10:16 801次阅读
    使用MAX6951/MAX6950 LED显示驱动器与<b class='flag-5'>MAXQ</b>2000<b class='flag-5'>微控制器</b>通信

    MAXQ2000微控制器实现JTAG自举加载程序主控

    通过使用一组标准化命令,MAXQ微控制器提供的JTAG引导加载程序允许外部JTAG主机轻松识别和编程任何MAXQ
    的头像 发表于 02-21 11:22 775次阅读
    为<b class='flag-5'>MAXQ</b>2000<b class='flag-5'>微控制器</b>实现<b class='flag-5'>JTAG</b>自举加载程序主控