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.

[参考译文] MSP430FR2433:CAN#39;t 通过 SBW 写入 SYSCFG0、RAM 和某些寄存器(基于 SLAU320的代码在 CC26x2上运行)

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1115401/msp430fr2433-can-t-write-on-syscfg0-ram-and-some-register-over-sbw-code-based-on-slau320-running-on-a-cc26x2

主题中讨论的其他器件:MSP430FR2433MSP430FR2533MSP-FET
器件型号:MSP430FR2433

大家好、

因此、我必须遇到一个使我的头部吹气的问题  、那么、让我们开始吧。

我正在为嵌入 MSP430FR2433和 MSP430FR2533的产品构建一个 Jiga 测试、该器件必须对这些微控制器进行编程。 我正在处理一个在 CC26x2上运行的代码、该代码基于 用于 MSP430FR2433的 SLAU320。

因此、在某些情况 下、代码能够完美地工作、例如、GetDeviceID 运行良好且华丽、读取器件的 TLV 并解析以获取有关微控制器的信息、如下图所示。

我可以成功写入一些寄存器、也可以读取数据(在所有情况下、读取工作正常)...

但是、当我尝试写入 SYSCFG0寄存器以禁用 FRAM 程序区域上的写保护和写数据时、器件不会禁用保护位。 这也发生在 Portx 上、无法写入值。

我将在图中显示程序步骤和写入/读取的值。

在第一个图像中、我读取 SYSCFG0寄存  器的值、给出的值为0x9603、该值与 MSP430FR2xx 用户指南第1.16.2.1节中的值匹配、因此读取有效。

在 第二个映像中、向我发送了写入0xA500的命令(其中0xA5是 寄存器的密码、0x00是用于禁用写保护的数据)、该例程运行良好、因为其他寄存器被写入(例如 PM5、一些其他存储器区域)。

现在 、在第三幅图片中、读取器值包含0x9603、换句话说、保护未被禁用、从而保持了主程序区域的保护。

因此、我认为微控制器处于无法写入某些寄存器的状态、但我遵循 MSP430复制器代码流程、没有理由出现任何问题、并阅读所有文档。

如果有人能帮忙,我会很高兴。 如果您需要这些代码、我可以上传它们、因为我开发的代码没有敏感信息。

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

    您好、Pablo、

    我们有关 FRAM 写入的示例代码 应在此处为您提供帮助。 具体而言,FRAMWrite()函数。 它们解锁 FRAM (在示例中、它们将程序存储器保持锁定状态、将数据存储器保持解锁状态)、然后通过指针存储器访问对其进行写入。  

    另一个示例是 FRAM Write Persistent。 这将解锁程序存储器并保持数据存储器锁定。  

    如果您需要进一步的帮助或解释、请告诉我。

    此致、

    Luke

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

    这对我没有帮助、因为我通过 Spy-by-Wire 执行此操作、我可以写入和读取一些寄存器、但在另一个寄存器中、如 SYSCFG0、由于保护位的原因、该值未存储、我无法写入 FRAM。

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

    我将与您分享 Github 上的代码。

    代码不是最好的、我的目标是在之后构建脚本、以便在 Orange Pi 器件上运行这些代码。  

    Pablo-Jean-SBW-Mock 燃烧器(github.com)

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

    您好、Pablo、

    示波器 SBW 并检查数据线。 SYSCFG0特别需要写入的方式。 整个字需要同时发生、因此如果字节之间存在中断、则无法正确解锁。 (FR2433系列用户指南第1.16.2.1节中的脚注2)

    通常、器件会通过 BSL 模式进行编程、出于好奇、您是否需要改用 SBW?

    此致、

    Luke

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

    您好、Luke、

    您能否提供一个通过 BSL 写入寄存器的过程示例?

    谢谢。  

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

    您好、Pablo、

    我只是想澄清一下您的项目的目的、所以我不会指导您走错的道路。  写入这些寄存器的目的是什么、您是否正在尝试将完整程序加载到 MCU 中?

    我们有 MSP430FR-引导加载  程序、可在此处找到:MSP430FRBootloader 在该文件中、它具有与 MSP430FR2433相关的主机和目标、因此您可以在加载的两侧进行操作。 您需要进行更改才能使用您正在使用的"主机"器件(CC26x2)

    下面是 《MSP430 FRAM BSL 用户指南 》和 《MSP430FR 引导-主存储器引导加载程序和无线更新》。 如果您希望使用 CC26x2对作为目标器件的 MSP430FR2433进行无线更新、则最后一个文档尤其有用。

    此致、

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="503509" URL"~μ C/support/microcontroller /msp-lust-power-microcontroller 组/msp430/f/msp-lust-power-microcontroller forum/1115401/msp430fr2433-cAN-t-write-on-syscfg0-ram-and-some register-over-SBW-code-exclude-region 时、如果在器件上运行 SYSC262-write 数据保护、则不会禁用 SYSC2-write 保护、但会尝试在该程序时在该程序上禁用 SYSC2-write 数据保护。] 这也发生在 Portx 上、无法写入值。

    有一些与问题相关的 JTAG 写入函数(使用示波器对其进行分析)、而不是 SYSCFG0或 Portx。 在 RAM 写入/读取时对其进行调试、直到您将其清除。 RAM 不受读/写保护。 基于 slau320的 SBW 代码可与 FRAM 器件正常工作。

    例如、写入字01234h @ 02006h 并读取02000h - 02010h 以查看是否有任何变化。 尝试另一个字值04321h...

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

    您好 Luke、我的目的是将固件加载到目标器件 MSP430FR2433中。

    目标器件目前已烧录任何固件、Jiga 将在生产电路板的工厂中运行。

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

    我将测试写入 RAM 并将示波器连接到 SBW 线路。 我将在这里连接 google 驱动器上的示波器。  

    您能否在 DSView (Dream Source Lab 的软件)上打开、我可以在其中导出包含所有数据的文件?

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

    您好、zrno soli、

    我已经在 RAM 上进行了测试,但没有工作:(我已经使用逻辑分析仪运行并保存了数据。 我将附加 DS view 文件、很奇怪为什么不起作用、但请访问 Google Drive 中的链接。

    drive.google.com/.../1O_G5m2dlWXzKZrFyMsE5T7ps2KRsbMUx

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

    作为补充、代码能够写入 WDTCTL 寄存器、我可以写入数据、当我读取数据时、数据匹配。

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

    您是否能够 将 DS view 文件更改为 PNG 或 JPEG 并将其插入帖子?

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

    您提到过、您以前能够使用您的函数更改寄存器、您还能展示这方面的示例。 与 Zrno Soli 提到的情况一样、他们似乎能够使其正常工作。 您的密码也是正确的、因此我认为这可能是您的 SBW 发送信息的方式。 我之前提到的 BSL 将解锁并写入 FRAM、如果您决定采用该路由、这将是一个解决办法。

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

    当然、不像 DS view 文件那样精确、但我认为这会有所帮助

    第一张图片是写入、秒操作读取。

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

    当然、明天我将复制看门狗寄存器上的写入操作、代码在这里工作。 但 RAM 我也无法写入、非常非常非常奇怪、我写入 RAM 区域、当我尝试读取时、我只得到0x00。

    我将阅读有关 BSL 的内容、我可以花时间阅读您发送的链接。 但是 SBW 必须工作、这里发生的情况非常奇怪。  

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

    您好、Luke、

    运行看门狗时间禁用的代码。 我也编写了时间间隔、只是为了显示值的变化。  

    此例程没有问题。

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

    您对寄存器进行读写操作的功能似乎是正确的、因此我认为问题可能是您是如何设置线缆或时钟计时的。 时钟确实遵循一个模式、但它看起来不是恒定的、您的模式似乎是这个1脉冲对还是2脉冲对、因此不是恒定频率。

    对于硬件设置、本指南显示了该器件所需 SBW 的电线连接、底部的注释可能适用于您看到的内容。

    此致、

    Luke

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

    您好、Luke、

    我正在做一些测试、但还没有、我可以写入一些寄存器、但其他寄存器不能写入、

    我正在阅读 SLAU320文档中的 JTAG 控制信号寄存器。 我认为 JTAG 上有一些配置、其中一些寄存器已锁定、我不知道。 MSP430F2xx 系列的复制器代码使用 表2-7。 5xx 和6xx 系列的 JTAG 控制信号寄存器、但我认为表是 表2-6。 1xx、2xx、4xx 系列的 JTAG 控制信号寄存器。 我将使用这些位进行测试、检查 WDT 寄存器是否仍然写入成功、并检查 SYCFG0和 RAM 是否更改了它们的值。 但还没有奏效。

    那么、有一个用于调试 JTAG 的工具、或者微控制器需要处于什么状态才能写入您的所有寄存器?

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

    为了改善信息 Luke、

    例如、当我尝试写入 RAM 时、我要插入数据的地址、当我尝试读取时、具有0。 例如、如果我尝试在 地址0x2002上写入0xA540、当我尝试读取时、我得到 0x0000

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

    您好、Pablo、

    您使用的器件是 MSP430FR2433、因此 对您而言重要的部分是 FRxxx 器件。 FR2x 器件的运行方式与 F2xx 器件不同、即使在 JTAG 接口上也是如此。 如果您查看的是 F2xx 细节而不是 FR2xx 细节、这可能是根本原因。

    您是从 Replicator430FR 开始还是从不同的复制器代码开始?

    此致、

    Luke

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

    您好、Luke、

    我将 Replicator430FR 作为起点。 所有逻辑都基于此代码。

    现在、我尝试对 MSP-FET 生成的 SBW 信号执行反向操作、以检查是否与我的应用生成的信号匹配(可能不匹配、因为如果匹配、所有信号都将起作用)。

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

    您好、Pablo、

    期待看到此测试的结果。

    此致、

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="503509" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f-low-power-microcontrollers-forum/1115401/msp430fr2433-cAN-t-write-on syscfg0-ram-and-some register-over-SBW-code-forume/ctradem-rand#l2478-tradem-rand-rand-rand-rand-rand-rand-rand-rand-rand-rand-tradem-rand-rand-rand-rand-rand-rand-rand-rand-rand-rand-rand-rand-rand-rand-

    用于调试 SBW 的最佳购买硬件工具是5529 LP www.ti.com/.../MSP-EXP430F5529LP 、目标器件(5529)可用作除原始(5528)主器件之外的另一个 eZ-FET。 然后、可以通过 LP (5529)目标器件上的 IAR beakpoint 调试来分析原始 TI eZ-FET 固件(MSP 调试堆栈)。 完成了。

    如果时钟频率低于8MHz、则通过 SBW/JTAG 的 FRAM 没有等待状态。 RAM 没有等待状态。

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

    Luke 知道问题是什么。 SBWDATO I 已定义为读取 SBWTDIO、我刚刚定义为0x1、现在工作正常、我可以设置 SYSCFG0、RAM 和每个寄存器。 一切都很好。

    非常感谢大家为我提供的所有支持。

    此致。

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

    您好、Pablo、

    感谢您不断更新我们的信息并告诉我们您的解决方案、如果论坛中的未来员工遇到类似情况、这将对他们有所帮助!

    此致、

    Luke