当前位置: 首页 > news >正文

MH2103 MH22D3系列的JTAG/SWD复用功能和引脚映射,IO初始化的关键点

MH21xx和MH22xx内核集成了串行/JTAG调试接口(SWJ-DP)。这是标准的ARM CoreSight调试接
口,包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。
● JTAG调试接口(JTAG-DP)为AHP-AP模块提供5针标准JTAG接口。
● 串行调试接口(SW-DP)为AHP-AP模块提供2针(时钟+数据)接口。
在SWJ-DP接口中,SW-DP接口的2个引脚和JTAG接口的5个引脚中的一些是复用的。
在这里插入图片描述
5个普通I/O口可用作SWJ-DP接口引脚
在这里插入图片描述
复位(SYSRESETn或PORESETn)以后,属于SWJ-DP的所有5个引脚都立即被初始化为可被调
试器使用的专用引脚,要将这些引脚释放出来做为IO口,需要软件配置对应的寄存器。
保证JTAG的输入引脚不是悬空的是非常必要的,因为他们直接连接到D触发器控制着调试模
式。必须特别注意SWCLK/TCK引脚,因为他们直接连接到一些D触发器的时钟端。
为了避免任何未受控制的I/O电平,在JTAG输入脚上嵌入了内部上拉和下拉。
● JINTRST(PB4):内部40K上拉
● JTDI(PA15):内部40K上拉
● JTMS/SWDIO(PA13):内部40K上拉
● TCK/SWCLK(PA14):内部40K下拉
● JTDO(PB3):无上下拉
一旦JTAG I/O被用户代码释放,GPIO控制器再次取得控制。这些I/O口的状态将恢复到复位时
的状态。
● JNTRST(PB4):带上拉的输入
● JTDI(PA15):带上拉的输入
● JTMS/SWDIO(PA13):带上拉的输入
● JICK/SWCLK(PA14):带下拉的输入
● JTDO(PB3):浮动输入
软件可以把这些I/O口作为普通的I/O口使用。
根据以上特征,需要特别留意:上电默认状态由于有这些上下拉电阻的存在,会在从JTAG切换为默认普通IO这一段时间,导致他并不是普通IO一样的输入浮空状态
比如我想用PA15来驱动一个led,如图所示:
那么这就会存在一个问题,因为上电期间到pa15被切换为普通IO状态这一段时间,pa15由于有一个上拉电阻的存在(有一个来自芯片vdd的电压供电到IO上),会导致LED被点亮一下,给用户的感觉就是上电瞬间,led意外的闪烁了一下。
在这里插入图片描述
要解决这个问题,需要修改一下这个电路:
我们将led的正极接到电源即可。由于上电期间PA15的上拉电阻存在,LED两端等电位,led就不会意外闪烁了。软件初始化完成后,用低电平驱动即可。
在这里插入图片描述
重映射寄存器的可选配置如下:
我们一般选择010这个配置比较常见,在io异常紧张的情况下,选择100这个配置。
在使用010这个配置的时候,要特别留意PA15,PB3,PB4的初始状态带来的问题,根据以上原则正确处理。
在这里插入图片描述
可以使用如下代码来切换IO为010这个配置:

void JtagRemap(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
//remapRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //PA13,PA14 for sw-dp,pa15,pb3,pb4 for io	
}

文章为原创,转载需注明出处,未经本人书面允许,不得用于商业用途。

http://www.xdnf.cn/news/151921.html

相关文章:

  • C#中常见的设计模式
  • 第十六届蓝桥杯网安初赛wp
  • 关于flink两阶段提交高并发下程序卡住问题
  • 2025.04.26-美团春招笔试题-第四题
  • 设计看似完美却测不过? Intra-Pair Skew 是「讯号完整性(Signal Integrity)」里最隐形的杀手
  • 【C】初阶数据结构12 -- 冒泡排序
  • 买币永续合约成全球交易热点,XBIT去中心化交易所平台显著提升市场流动性
  • 联想笔记本电脑在Windows下通过联想驱动实现风扇控制
  • 从像素到驾驶决策:Python与OpenCV赋能自动驾驶图像识别
  • django之账号管理功能
  • MySQL 数据类型
  • WPF高级用法示例
  • 【含文档+PPT+源码】基于Python校园跑腿管理系统设计与实现
  • C语言中字符类型的定义、存储与输出详解
  • 我爱学算法之—— 二分查找(上)
  • OTA和IAP的关系
  • Pycharm 代理配置
  • 案例拆解:主数据平台如何支撑智能推荐系统精准发力?
  • 魔百盒CM311-3-YST代工-晨星MSO9385芯片-2+8G-免拆卡刷通刷固件包
  • 【软考-架构】14、软件可靠性基础
  • 【优选算法 | 滑动窗口】滑动窗口算法:高效处理子数组和子串问题
  • Flink反压问题解析
  • WPF实现类似Microsoft Visual Studio2022界面效果及动态生成界面技术
  • WPF之项目创建
  • 【那些年踩过的坑】Docker换源加速详细教程(截至2025年4月)
  • 【GoChat】密码处理与实现JWT+进行功能单测
  • 【网络入侵检测】基于源码分析Suricata的PCAP模式
  • 小火电视桌面 TV版 老旧历史版本安装包 官方免费下载
  • 应力腐蚀环功能及指标
  • 模块化集成建筑(MiC建筑):重新定义未来人居空间