This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR59941:在 UniFlash 中使用 DSLite 强制 MSP430进入4线制 JTAG 模式、并在 TEST/nRST 引脚上执行序列(SYSJTAGIN=1)

Guru**** 1135610 points
Other Parts Discussed in Thread: UNIFLASH, MSP430FR59941, MSP-FET, MSP-TS430PN80B, MSP430FR5994
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430fr59941-using-dslite-in-uniflash-to-force-msp430-into-4-wire-jtag-mode-with-sequence-on-test-nrst-pins-sysjtagpin-1

器件型号:MSP430FR59941
主题中讨论的其他器件:UNIFLASHMSP-FETMSP430WAREMSP-TS430PN80BMSP430FR5994

尊敬的团队 MSP:

如何在 UniFlash 中使用 DSLite 脚本编写器通过 TEST/nRST 强制 MSP430进入4线制 JTAG 模式?  

其中是 UniFlash 中的最佳文档 WRT DSLite。 这是唯一/最好的( http://software-dl.ti.com/ccs/esd/uniflash/docs/v5_0/quick_start_guide/uniflash_quick_start_guide.html )吗?

http://devi.ti.com/tirex 中的任何内容 等。 或特定的应用手册?

谢谢、Merril

参考 这里描述了 TEST/nRST 上启用4Wire JTAG 所需的序列。 (https://www.ti.com/lit/ug/slau320aj/slau320aj.pdf )。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Merril、

    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430f5335-using-dslite-in-uniflash-to-force-msp430-into-4wire-jtag-mode-with-sequence-on-test-nrst-pins ]\n\n 如何在 UniFlash 中使用 DSLite 脚本编写器强制 MSP430进入具有 TEST/nRST 的4线 JTAG 模式?  [/报价]

    DSLite 使用特定于器件的.ccxml 文件中的设置。 您以前能够在 Code Composer Studio (CCS)中的目标配置设置中指定 JTAG 模式、该模式将相应地更新目标配置(.ccxml)文件(假设已取消选中 CCS 工程属性> CCS General > Project >"Manage the project 's target-configuration automatically"选项)、但不再如此。

    现在、JTAG 模式是自动配置的、默认情况下、无法在 CCS 中手动选择。 但是、我能够使用@Chester Gillon 的有用线程 强制 SBW 模式 来修改 CCS 使用的'430_emu.xml'文件、并在目标板上的 SBW 和4线制 JTAG 之间切换。 此功能取决于 JTAG 电路是否与 《MSP430硬件工具用户指南》中推荐的电路匹配。

    <?xml version="1.0"?>
    
    <drivers id="MSP430">
                    <isa Type="MSP430" ProcID="0x6b800000">
                                    <driver file="../../DebugServer/drivers/msp430_emu.dvr">
                                                    <connectionType Type="MSP430"/>
                                                    <property Type="hiddenfield" Value="msp430.dll" id="dllName" />
                                                    <property Name="Interface Type" desc="Interface Type" Type="choicelist" id="interfaceType" Value="3">
                                                      <choice Name="4 Wire JTAG protocol used" value="0"/>
                                                      <choice Name="2 Wire (Spy-bi-wire) JTAG protocol used" value="1"/>
                                                      <choice Name="2 Wire Devices accessed by 4wire JTAG protocol" value="2"/>
                                                      <choice Name="Protocol will be detected automatically" value="3"/>
                                                    </property>
                                                    <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1">
                                                      <choice Name="Fast" value="0"/>
                                                      <choice Name="Medium" value="1"/>
                                                      <choice Name="Slow" value="2"/>
                                                    </property>
                                    </driver>
                    </isa>

    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430f5335-using-dslite-in-uniflash-to-force-msp430-into-4wire-jtag-mode-with-sequence-on-test-nrst-pins、其中是 UniFlash 中 WRT DSLite 的最佳文档。 这是唯一/最好的( http://software-dl.ti.com/ccs/esd/uniflash/docs/v5_0/quick_start_guide/uniflash_quick_start_guide.html )吗?

    是的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:  

    谢谢。。。 更多的澄清……

    1.支持2Wire (SBW)和4Wire JTAG 的 MSP430。 始终默认为2Wire (SBW)?

    2、如果一个 同时支持2线制(SBW)和4线制 JTAG 的 MSP430只连接到调试器(具有4线制 JTAG)(并且没有 nRST/TEST 连接)。 调试器能否与 MSP430通信?  

    3.或者 nRST/TEST 信号是否仍然需要将器件从2Wire (SBW)切换到4Wire JTAG?

    谢谢、Merril

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:

    谢谢!  如上所述... 实际使用的器件是(MSP430FR59941)。  除了上述 q 以外、MSP..上的 WRT 2Wire/4Wire 默认值/等 下面是有关该问题的一些更多信息。  

    总体目标是使工具 CCS/DSLite/等工具能够在 SYSJTAGPIN=1的情况下对 MSP430FR 进行编程。

    在下面添加客户信息。

    谢谢、Merril

    事实证明、较旧的灰色 MSP-FET 也主要不能通过 UniFlash、DSLite 或 MSPFlasher 与 SYSJTAGPIN =1配合使用;我们会得到相同的闪存故障。

     已确认工作原理

    使用 UniFlash 重现成功的步骤(使用第三方工具)

    1. 设置 MSP-FET 和装置
    2. 确认 UniFlash 失败(无法刷写器件)
    3. 退出 Uniflash
    4. 使用 FET-Pro-430-Lite 运行命令(空白器件、擦除 或闪存、任何命令似乎都可以正常运行)–这成功
    5. 退出 FET-Pro-430-Lite
    6. 启动 Uniflash 并刷写设备–现在成功了

     因此、FET-Pro-430-Lite 似乎正在执行一些序列以允许对器件进行闪存访问。  也许还会将 SYSJTAGPIN 设置为0?

     是否有办法让 Uniflash、DSLite 或 MSFlaser 执行相同的操作并在刷写之前将 SYSJTAGPIN 设置为0?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Merril、

    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430fr59941-using-dslite-in-uniflash-to-force-msp430-into-4-wire-jtag-mode-with-sequence-on-test-nrst-pins/3730496 #3730496]1. 支持2Wire (SBW)和4Wire JTAG 的 MSP430。 始终默认为2Wire (SBW)?[/报价]

    对于大多数具有共用 JTAG 引脚的器件、我会假设是这样、因为目标是增加 IO 数量、同时在必要时允许使用4线制 JTAG。 但是、必须为使用的任何接口使用适当的电路。

    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430fr59941-using-dslite-in-uniflash-to-force-msp430-into-4-wire-jtag-mode-with-sequence-on-test-nrst-pins/3730496 #3730496]2. 如果同时 支持2Wire (SBW)和4Wire JTAG 的 MSP430仅连接到具有4Wire JTAG 的调试器(并且没有 nRST/TEST 连接)。 调试器能否与 MSP430通信?  [/报价]

    《MSP430硬件工具用户指南》中图2-1用于4线制 JTAG 通信的信号连接中的脚注 D 说明如下:

    '编程或调试支持2线制 JTAG 通信的器件时、即使在这些器件上使用4线制 JTAG 通信模式、也需要连接到 JTAG 连接器 RST 引脚。'

    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430fr59941-using-dslite-in-uniflash-to-force-msp430-into-4-wire-jtag-mode-with-sequence-on-test-nrst-pins/3730496 #3730496]3. 或者、是否仍需要 nRST/TEST 信号将器件从2Wire (SBW)切换到4Wire JTAG?[/QUERP]

    是的。 请见我在上面的评论。 《 MSP430FR58xx、MSP430FR59xx 和 MSP430FR6xx 系列用户指南》中的配置 JTAG 引脚部分给出了原因。

    "在 SYSJTAGPIN 清零的情况下、具有 JTAG 功能的引脚配置为通用 I/O 在这种情况下、TEST 和 RST/NMI 引脚上只有一个特殊序列启用 JTAG 功能。"

      有关该序列的更多详细 信息、请参阅《使用 JTAG 接口进行 MSP430编程》应用手册中的启用 JTAG 访问部分、该部分位于具有 Spy-Bi-Wire (SBW)访问项目符号的 MSP430器件下。 请注意 、上面提到的 RST/NMI 引脚对应于下面提到的 SBWTDIO 引脚。 此外、上面提到的 TEST 引脚对应于下面提到的 TEST/SBWTCK 引脚。

    "具有 SBW 的器件还支持标准4线制接口。 通过将 SBWTDIO 线路拉至低电平、然后在 SBWTCK 上应用一个时钟、可启用4线制 JTAG 接口访问。 µs 保持 TEST/SBWTCK 为低电平100 μ s 来退出4线制 JTAG 模式。'

    我希望这一总结能够澄清问题。 如果     要使用的接口是 MSP430硬件工具用户指南中用于4线制 JTAG 通信的图2-1信号连接中的4线制 JTAG 电路、请务必仔细实施。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430fr59941-using-dslite-in-uniflash-to-force-msp430-into-4-wire-jtag-mode-with-sequence-on-test-nrst-pins/3731935 #3731935]... 实际使用的器件是(MSP430FR59941)。[/quot]

    谢谢。 了解实际使用的器件始终是一件很好的事情。 我相应地更新了主题帖标题。

    [引用 userid="5988" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1009144/msp430fr59941-using-dslite-in-uniflash-to-force-msp430-into-4-wire-jtag-mode-with-sequence-on-test-nrst-pins/3731935 #3731935"]总体目标是获取工具 CCS/DSLite/etc、以便能够使用 SYSJTAGPIN=1对 MSP430FR 进行编程。[/quot]

    让我来谈谈这种方法。 默认情况下、新的未编程器件不会有 SYSJTAGPIN = 1。 他们需要使用启用该寄存器的代码对器件进行编程、使用 SBW 接口(假设他们不使用 JTAG 进入序列)或 JTAG 接口(假设发送了 JTAG 进入序列)。

    输入序列似乎可以与 IAR 和 FET-Pro-430-Lite 配合使用、但不能与 UniFlash、DSLite 或 MSPFlasher 配合使用。 他们能否使用 CCS 对器件进行编程? 我假设他们使用的是正确的 JTAG 电路。

    同时、我将尝试找到 FR5994的目标板、以检查是否可以通过4线制 JTAG、MSP-FET 和 UniFlash 对器件进行编程。 我可能需要订购一些器件、因此我明天会告诉您我发现了什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Merril、

    快速更新。 我找到了一个具有 MSP430FR5994器件的目标板。 使用将 JP3至 JP8设置为 JTAG 模式的 CCS v10.3、黑色 MSP-FET、MSP-TS430PN80B 目标板、我从 MSP430Ware 中对闪烁 LED 代码示例进行了编程。 此代码未设置 SYSJTAGPIN = 1。 CCS 已成功对电路板进行编程、因此必须正确发送进入序列。

    /* --COPYRIGHT--,BSD_EX
     * Copyright (c) 2015, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
     *******************************************************************************
     * 
     *                       MSP430 CODE EXAMPLE DISCLAIMER
     *
     * MSP430 code examples are self-contained low-level programs that typically
     * demonstrate a single peripheral function or device feature in a highly
     * concise manner. For this the code may rely on the device's power-on default
     * register values and settings such as the clock configuration and care must
     * be taken when combining code from several examples to avoid potential side
     * effects. Also see www.ti.com/grace for a GUI- and www.ti.com/msp430ware
     * for an API functional library-approach to peripheral configuration.
     *
     * --/COPYRIGHT--*/
    //******************************************************************************
    //  MSP430FR5x9x Demo - Toggle P1.0 using software
    //
    //  Description: Toggle P1.0 using software.
    //  ACLK = n/a, MCLK = SMCLK = default DCO
    //
    //           MSP430FR5994
    //         ---------------
    //     /|\|               |
    //      | |               |
    //      --|RST            |
    //        |               |
    //        |           P1.0|-->LED
    //
    //   William Goh
    //   Texas Instruments Inc.
    //   October 2015
    //   Built with IAR Embedded Workbench V6.30 & Code Composer Studio V6.1
    //******************************************************************************
    #include <msp430.h>
    
    int main(void)
    {
        WDTCTL = WDTPW | WDTHOLD;               // Stop WDT
    
        // Configure GPIO
        P1OUT &= ~BIT0;                         // Clear P1.0 output latch for a defined power-on state
        P1DIR |= BIT0;                          // Set P1.0 to output direction
    
        PM5CTL0 &= ~LOCKLPM5;                   // Disable the GPIO power-on default high-impedance mode
                                                // to activate previously configured port settings
    
        while(1)
        {
            P1OUT ^= BIT0;                      // Toggle LED
            __delay_cycles(100000);
        }
    }
    

    然后、我从 CCS 中的同一代码示例生成了一个 TI-TXT 文件、将其复制到 PC 上的已知位置、打开 UniFlash v6.2、浏览到 TI-TXT 文件的位置、并使用4线制 JTAG 接口成功对器件进行编程。 这表明为了从 SBW 切换到 JTAG、UniFlash 还必须正确发送进入序列。

    因此、这听起来像是硬件问题、而不是工具问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Merril、

    我能够重复上述行为。 作为先决条件、在尝试使用 UniFlash 或 DSLite 对 MSP430器件进行编程之前、必须使用启用 SYSJTAGPIN = 1的代码对其进行编程。 这不是一个硬件问题、而是与 UniFlash 相关的软件问题、我已经提交了一个错误来在未来的版本中解决它。

    在尝试使用 UniFlash 和 DSLite 对器件进行编程时、我在初始尝试中遇到错误、但在再次尝试后、器件将成功编程。 我意识到第一次失败尝试是擦除器件、这将 SYSJTAGPIN 改回默认值0。 这就是为什么第二次尝试对我有用的原因。

    同时、这里有一个权变措施、允许他们使用 DSLite 对 MSP430FR5994进行编程、即使已经使用代码设置 SYSJTAGPIN = 1对其进行编程。

    先决条件

    • 修改 CCS 使用的'm4430_emu.xml'文件来选择一个特定的 JTAG 接口
    • 在 CCS 中、选择  View > Target Configurations > Advanced 下的"2 Wire Devices accessed by 4wire JTAG protocol"选项、并将更改保存到.ccxml 文件中
    • 将该文件复制到已知位置并重命名、以将其与默认的.ccxml 文件区分开来

    DSLite 的更改

    • 修改  UniFlash/DSLite 使用的'dif430_emu.xml'文件 以支持 .ccxml 文件定义的 JTAG 接口
      • 文件位于以下位置:C:\ti\uniflash_ \desktopdb\content\TICloudAgent\win\ccs_base\common\targetdb\drivers\msp430_emu.xml
      • 添加您添加到 CCS 文件中的内容、但将其放在 FR59xx 器件部分下。 请参阅以下示例: e2e.ti.com/.../msp430_5F00_emu.xml
      • 保存更改
    • 打开命令提示符并导航到 DSLite.bat 位置:C:\ti\uniflash_
    • 在将 MSP-FET 连接到器件后以及在针对配置调整参数后运行此命令、并确保使用之前的.ccxml 文件

    dlite --config=2_MSP430FR5994_2x4.ccxml --verbose --flash --verify msp430fr599x_1_sysjtagpin_1.c.txt

    应成功对器件进行编程。 这是我的测试的输出:

    C:\ti\uniflash_6.2.0>dslite --config=2_MSP430FR5994_2x4.ccxml --verbose --flash --verify msp430fr599x_1_sysjtagpin_1.c.txt
    Executing the following command:
    > "C:\ti\uniflash_6.2.0\deskdb\content\TICloudAgent\win\ccs_base\DebugServer\bin\DSLite" flash --config=2_MSP430FR5994_2x4.ccxml --log=ds_new.log --verbose --flash --verify msp430fr599x_1_sysjtagpin_1.c.txt
    
    For more details and examples, please refer to the UniFlash Quick Start guide.
    
    DSLite version 10.2.0.2249
    Configuring Debugger (may take a few minutes on first launch)...
            Initializing Register Database...
            Initializing: MSP430
            Executing Startup Scripts: MSP430
    Connecting...
    Loading Program: msp430fr599x_1_sysjtagpin_1.c.txt
            Preparing ...
            0 of 28 at 0x4000
            0 of 16 at 0xff80: 16%
            0 of 130 at 0xffb4: 25%
            Finished: 25%
            Setting PC to entry point.: 25%
    info: MSP430:  There were 174 bytes written.
    Verifying Program: msp430fr599x_1_sysjtagpin_1.c.txt
            Preparing ...
            0 of 28 at 0x4000
            0 of 16 at 0xff80: 16%
            0 of 130 at 0xffb4: 25%
            Finished: 25%
    info: MSP430: Program verification successful for msp430fr599x_1_sysjtagpin_1.c.txt
    Success
    
    C:\ti\uniflash_6.2.0>

    但愿这对您有所帮助。 如果您有任何疑问、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    顺便说一下、我不明白客户的目标是什么? 在 FRAM 器件上使用 JTAG 而不是 SBW 是否有任何进步?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    客户遇到使用 SBW 接口进入 BSL 模式的意外情况、将 SYSJTAG=1设置为切换到 JTAG 是一种临时修复、可防止这些 BSL 进入。 这是一个临界情况、我们的工具无法正确处理、而 Elprotronic 和 IAR 工具处理的情况很快就变得很明显。 我相信客户已经解决了导致不需要的 BSL 条目的问题、但我想分享解决方法、以防他们或其他客户在即将发布的版本中修复之前需要解决方案。