1

我设计了一个电路,我在 PCB 上使用 STM32L452RETx 微控制器。这基本上是一个电流传感器。我正在使用 JTAG-20 连接器进行调试。我正在使用 Atollic TrueStudio IDE。

问题是当我通过在调试配置中选择 JTAG 选项在 TrueStudio 中调试程序时,它会给出错误,提示无法初始化 ST-Link 并且找不到目标,但是当我选择 SWD 时没有错误并且它编程成功。在 STM32CubeMx 中,我将调试设置为 JTAG 5 引脚配置,因为我在硬件中使用 JTAG 20。(串行外设-> 系统-> 调试-> Jtag 5 引脚)。程序正在调试没有错误,但串行终端没有输出。串行终端没有给出握手错误。

谁能告诉我这是正确的调试方式(TrueStudion 中的 SWD 和 STM32CubeMx 中的 JTAG),或者我犯了一个错误。

问候,

4

1 回答 1

0

悖论并不像看起来那么大:正如您可以在 STM32L452xx、DS11912 Rev.5 的数据表中验证的那样,第 74/75 页,用于 JTAG 和 SWD 的 GPIO 的替代功能是相同的(始终为 AF0,“SYS_AF ")。因此,在您将 STM32CubeMX 配置为 JTAG 后,SWD 连接工作(如果您已将 Cube 项目配置为 SWD,JTAG 将无法工作,因为 JTDI 引脚(PA15)不会连接到 AF0。)。

这解决了为什么 SWD 意外工作的问题。


JTAG 不起作用的问题仍然存在。

您提到您使用的是 JTAG-20 连接器,但不是您正在使用的 ST-Link 版本。例如,如果您使用嵌入到 nucleo 板(或发现,或其他供应商的类似产品)的 ST-Link 部件,则 ST-Link 引脚分配仅限于 SWD 和 SWO 所需的线路(统称:SWV )。这不是由于 TrueStudio 的限制,原则上确实支持 JTAG,而是因为 5 条线路中的一条可能未连接。

请检查您使用的是哪个确切的 ST-Link 版本(最容易检查的是 ST-Link 实用程序告诉您的内容),重新检查您的原理图和从目标 µC 到调试适配器的接线。如果您没有找到明显的原因(并以这种方式解决您的问题),您的问题可能是电子问题。然后它在这里是题外话,(在进一步缩小范围后)您应该在电气工程堆栈交换中描述剩余的问题。如果您有示波器,检查信号可能是值得的,尤其是那些仅在 JTAG 而不是 SWD 上的引脚(JTDI、JTDO、NJTRST)。

于 2020-04-15T17:40:06.603 回答