我设计了一个电路,其中我在PCB上使用STM32L452RETx微控制器。这基本上是一个电流传感器。我正在使用JTAG-20连接器进行调试。我正在使用Atollic TrueStudio IDE。
问题是当我通过在调试配置中选择 JTAG 选项在 TrueStudio 中调试程序时,它给出错误说无法初始化 ST-Link 并且找不到目标,但是当我选择 SWD 时,没有错误并且它编程成功。 与STM32CubeMx一样,我已经将调试设置为JTAG 5引脚配置,因为我在硬件中使用JTAG 20。(串行外设>系统 -> 调试> Jtag 5 引脚(。程序正在调试,没有错误,但在串行终端上没有输出。串行终端没有握手错误。
谁能说出这是正确的调试方式(TrueStudion中的SWD和STM32CubeMx中的JTAG(,或者我犯了一个错误。
问候
悖论并不像看起来那么大: 正如您可以在 STM32L452xx的数据表,DS11912 Rev.5,第74/75页,用于JTAG和SWD的GPIO的替代功能是相同的(始终为AF0,"SYS_AF"(。 因此,在将STM32CubeMX配置为JTAG后,SWD连接工作(如果您已将Cube项目配置为SWD,JTAG将无法工作,因为JTDI引脚(PA15(不会连接到AF0。
这解决了社署出乎意料地工作的问题。
JTAG不起作用的问题仍然存在。
您提到您使用的是JTAG-20连接器,但没有提到您使用的是哪个ST-Link版本。例如,如果您使用的是嵌入到核板(或发现或其他供应商的类似产品(的ST-Link部件,则ST-Link引脚排列仅限于SWD和SWO(统称为SWV(所需的线路。 这不是由于TrueStudio的限制,它原则上确实支持JTAG,而是因为5条线路中的一条可能未连接。
请检查您使用的是哪个确切的ST-Link版本(最容易检查的是ST-Link实用程序告诉您的内容(,重新检查原理图以及从目标μC到调试适配器的接线。 如果您没有找到明显的原因(并以这种方式解决问题(,那么您的问题可能是电子问题。那么这里就跑题了,(进一步缩小范围后(您应该在电气工程堆栈交换中描述剩余的问题。 如果你有示波器,可能值得检查信号,特别是那些只在JTAG上而不是在SWD(JTDI,JTDO,NJTRST(上的引脚。