[PSoC™]

PSoC6使用SWD&JTAG Pins注意事项

[复制链接]
57|0
手机看帖
扫描二维码
随时随地手机跟帖
IFX_Ida|  楼主 | 2024-7-3 14:35 | 显示全部楼层 |阅读模式
1.       背景
PSoC6的SWD&JTAG  引脚在芯片start-up初始化阶段的驱动状态(高/低)不是默认的 Analog High-Z,而是有特别的设置。将这些引脚用作普通GPIO时(尤其用作控制信号时),需要特别注意这些pins的初始状态是否与设计相互冲突。
2.       SWD&JTAG Pins配置
从芯片上电到 CPU运行到main()之前,芯片会执行一段boot程序进行芯片&系统初始化配置,也包含了对SWD&JTAG pins的配置。初始化后各pin的状态如下表所示:
229606684f00daaec4.png
469886684f016b9fa8.png
                              
也就是说在运行main()之前,这些SWD&JTAG pins的初始状态已如上表所示。举例来说,如果使用TDI用作控制功能,且在main()中将其初始状态配置为0,就会存在下图所示的glitch的情况:
755116684f0235499d.png
Glitch的存在会对控制产生一定的影响,这个时候需要消除这种影响。
3.       CY8C6xx6/CY8C6xx7系列的配置
首先需要了解PSoC6系列芯片的生命周期,这里重点介绍相关的两个生命周期:
NORMAL: 芯片出厂后处于这个阶段,也就是客户拿到芯片时芯片所处的状态
SECURE: 相比NORAML, 安全性更高,需要客户进行一些相关配置芯片才可以转到这个阶段
CY8C6xx6/CY8C6xx7这一系列的产品,在芯片的NORMAL 阶段,boot程序会初始化SWD&JTAG pins;在芯片的SECURE阶段,boot程序不会配置SWJ pins。所以如果要在CY8C6xx6/CY8C6xx7系列产品中消除glitch,只有将芯片转到SECURE阶段这一个方法。
4.       其他系列的配置
PSoC6其他系列的产品在TOC2 Flag中添加了两位 ,可以配置是否让boot程序初始化SWD&JTAG pins。
注意:
配置boot程序不做初始化操作会带来一个后果:配置结束后,仿真器无法再连接芯片,所以在配置之前,需要在firmware中添加软件升级功能,以确保后续 的软件更新。下面介绍如何使用TOC2 flag配置boot程序不做初始化操作。
5.       Example:如何配置其他系列芯片SWD&JTAG Pins
1)  1)先用逻辑分析仪查看修改前boot程序初始化SWD&JTAG pins的情况
935196684f04b50333.png
2)  2)在工程中添加”cy_ps_config.h”,这个文件中包含了TOC2结构体定义及其他相关信息
3)  3)在程序中添加TOC2flag的定义,以及TOC2 structure
802596684f07661dcb.png
4)  4)将build之后的hex文件烧录到板子中,查看SWD&JTAG pins的情况,可以看到修改后TDI并未被拉高
41086684f09a90345.png
5)  5)烧录后连接仿真器,可以发现连接失败(SWJ Pins只作为普通GPIO使用,仿真器无法再连上)。所以在做以上操作之前需要在firmware中添加软件升级功能
39096684f0ae5ab17.png
Note:
  •         一般不建议使用SWD&JTAGpins做控制功能,glitch的存在会影响控制的设备
  •          如果必须要使用,对于CY8C6xx6/CY8C6xx7来说,一定要转到SECURE;对于其他型号的产品,可以通过配置TOC2Flag实现。但是这两种操作之前,必须确保firmware中已经包含了测试成功可用的软件升级功能,否则后续固件无法升级。
  •          本例程基于ModusToolBox3.1 和CY8CKIT-062-4343W 开发板设计

PSoC6_Using SWJ Pins(Not init by boot code).zip

5.29 MB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:英飞凌科技股份公司
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

17

主题

25

帖子

2

粉丝