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.

[参考译文] MSP430F5253:slau320ac 的 GetDevice()函数出现问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/685497/msp430f5253-trouble-with-getdevice-function-from-slau320ac

器件型号:MSP430F5253
主题中讨论的其他器件: MSP430F5172MSP-GANG

你好。

我尝试使用 BeagleBone Black 对 MSP430F5253进行编程。 我已从 slau320ac 引用的关联文件中"移植"代码。

当我运行"SyncJtag_AssertPo"时、我获得 JTAG ID、但同步始终失败。 示例代码尝试了50次、但不管其3000次、它仍然不会确认器件处于"JTAG 模式+读取"。  

我已经使用逻辑分析仪检查了宏是否正常工作、任何 IR 命令都始终返回 JTAG-id、因此通信必须正常工作。  

我还尝试使用 MSPDEBUG ()对其进行编程 ,但我发现它不支持 F5xx 和 F6xx 系列。 但在保险丝下面、它返回了0x5555、即使信号看起来完全一样、我也未能使用我的程序重新生成它。  

是否有人有通过 JTAG 编程的经验可以帮助我?

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

    AFAIK、MSP 调试支持所有 MSP430系列。 返回0x5555与目标器件上熔断的保险丝有关、而不是与不受支持的器件有关。 除了 slau320、这可能有助于...

    https://forum.43oh.com/topic/10035-4-wire-jtag-with-mspdebug-and-raspberry-pi-gpio/

    http://zacklalanne.me/automated-deployment-of-msp430-firmware-part-1/

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

    感谢您的回复。

    是0x5555意味着保险丝熔断、但我很确定它不熔断。 当我对复制器软件执行相同的检查时、即使信号看起来相同、它也不会返回0x5555。 但它们的速度确实不同。  

    我的理解是、MSPDEBUG 使用"旧"的方式对存储器进行编程(而不是使用 JTAG 邮箱)。 该方法仅引用了 slau320ac 中的 F1xx、F2xx、F3xx 和 F4xx 器件。 slau320ac 中描述的对 F5xx 和 F6xx 进行编程的方法在 RAM 中加载一个程序、以使 JTAG 邮箱变为对自身进行编程(至少这就是我解释它的方式)。

    但是、如果"旧"方法仍然适用于 F5xx 器件、我不介意使用它。 如果有人可以确认它是否正常工作、那会很酷?

    我 相信来自第一个论坛主题的进入序列补丁已经在 MSPDEBUG 中实现。 由于我确实收到了带有 IRShift (0x14)的 JTAG ID、因此条目必须已成功。

    编辑:添加了信号

    www.dropbox.com/.../AAAl8ctyOo0a_DVE_XR-vLrua

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

    [引用 USER="Martin Grani">据我了解、MSPDEBUG 使用"旧"的方式对存储器进行编程(不使用 JTAG 邮箱)。 该方法仅引用了 slau320ac 中的 F1xx、F2xx、F3xx 和 F4xx 器件。 slau320ac 中描述的对 F5xx 和 F6xx 进行编程的方法在 RAM 中加载一个程序、以使 JTAG 邮箱变为对自身进行编程(至少这就是我解释它的方式)。

    但是、如果"旧"方法仍然适用于 F5xx 器件、我不介意使用它。 如果有人可以确认其工作正常、那会很酷?[/quot]

    "旧"方法、无需使用邮箱系统即可用于所有 MSP430器件(包含5xx/6xx)。 返回有效的 JTAG ID 并不能证明 SBW/JTAG 函数/接口工作正常。 这并不意味着您的数据(16位)移位工作正常。 即使一切都正确完成、SBW/JTAG 与目标器件的通信也可能失败(无法同步)、即使返回正确的 JTAG ID。

    您可以在保险丝检查(无同步)后读取内核 ID (COREIP_ID)、仅检查数据移位(16位)功能是否正常工作。 但是、我不知道您的器件的正确内核 ID、但知道5xx 系列中的其他一些内核 ID、如果您可能需要进行比较的话。

    获取器
    件# JTID 保险丝器件核心硬软 LotWafer DieX DieY
    1 91 OK 3080 1104 30 10 B15B9446 2000 1700
    2 91 OK 3081 1010 B7A50951 0A00 1100
    3 91 OK 3180 1104 12 013BB046 0D00 1E00
    4 91 OK 3881 1106 10 219CA446 1800 0F00
    5 91 OK 5435 0100 10 ADE98146 0400 2000
    

    我从 MSP430F5172接收到的未熔断保险丝结果(8次)为0001 0081 0081 0081 0081 8001 8081 8081 8081  

    很抱歉、我没有时间分析信号。

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

    那么、我想我可以将 MSPDEBUG 用于 MSP430F5253。 明天我将检查 coreip_id、以查看它是否与 DRShift 有关。
    但是、由于 MSPDEBUG 在 DRShift (0xAAAA)时确实返回0x5555、是否可以肯定 JTAG 保险丝是否熔断? 它不能"错误地"给我这个价值?


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

    例如、以下是 我的(MSP-GANG 类似) Flasher 的 GetDevice 内部日志。 有4个连接的器件。 对于2xx、器件 ID 之后的函数将8次检查保险丝值、并尝试进行同步。 对于5xx、器件 ID 之后的函数将8次检查保险丝值、获取内核 ID、并尝试进行同步。 如果未完成同步、重试8次后、将报告错误。 但是、正如您看到的、所有连接的设备的同步只需尝试一次即可完成。

    ---- GetDevice ----
    0 000000010000 00000001 89
    保险丝2481 2481 2481 2481 2481 2481 2481 2481
    同步2681
    #1 0000000000100000 00000010 91
    保险丝 C121 C121 C121 C121 C121 C121 C121 C121 C121 C121 C121内核
    1104
    同步 D321
    #2 0000000001000000 00000100 98
    保险丝0081 8001 0081 0001 4081 4081 4001
    内核0906
    同步 D201
    #3 0000000010000000 00001000 99
    保险丝0081 0081 0081 0081 0081 0081 0081 0081
    内核1106
    同步 D301
    #4 0010000000000 00010000 FF!
    #5 010000000000 00100000 FF!
    #6 1000000000000000 01000000 FF!
    7 0000000100000000 10000000 FF!
    DEV 00001111 D89 00000001 D91 00000010 D98 00000100 D99 00001000
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好。

    事实证明我的代码是正确的、但执行速度太慢。 我们能够以更高的速度对存储器进行编程和读取。