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.

[参考译文] MSP430FR2632:Spe-bi-wire 锁定

Guru**** 2391415 points
Other Parts Discussed in Thread: MSP430FR2632

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/716210/msp430fr2632-spy-bi-wire-locking-up

器件型号:MSP430FR2632

您好!

我一直在尝试使用 Spy-bi-Wire 协议将软件闪存到 MSP430Fr2632上。 我使用 imx6 SOC 并使用 Linux 内核来控制 GPIO。 在将少量数据点读取和写入到各种地址时、这种方法非常完美。 但是、当我开始写入大量数据时、它会在几次写入后停止正常工作。 导致这种奇怪行为的原因是什么?

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

    您好、

    这可能是计时问题。

    不确定您要遵循的 SBW 协议文档是什么、但您可能希望检查您是否违反了某些规范。

    您是否有逻辑探头或示波器来验证信号和时序?

    下面是 MSP430JTAG 编程接口、它 可能会提供一些附加信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以及如何向目标器件读取/写入小数据/大数据? slau320/ replicator 或其他内容? 也许这会有所帮助...
    forum.43oh.com/.../
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Dennis:

    我在 slau320ad 和 www.ti.com/.../msp430fr2632.pdf 上查看 存储器地址引用。

    我有一个逻辑分析仪和示波器。 在较小的传输时间刻度上、我看不到任何问题。 但是、在更大的范围内进行验证要困难得多。 你们是否有任何调试工具可用于解码逻辑分析仪数据、以确定某个地方是否存在错误或错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、我确实在查看 slau320ad 和 www.ti.com/.../msp430fr2632.pdf。

    就时序问题而言、我只知道您不能在大于7us 的时间内将 TCLK 保持为低电平、否则 MSP430Fr2632将进入复位状态。 此外、我将以3us 的频率对时钟信号进行脉冲、这与示例中在18MHz 下具有的5个 NOP 周期类似。

    我正在监控连接到 TST 和 RST 的逻辑分析仪上的传输。 您是否有任何调试软件可帮助我解密传输流以确定是否存在问题? 我只能在时序图中查看宏结构、以了解它不会复位、但更难看到其他任何东西是否正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我也看到了这一点。 我使用的是2线 Spy-bi-Wire、因此看起来不是很有用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、

    我不知道用于调试 Spy 线控协议的任何特定工具(硬件或软件)。 我们在德国的工具团队可能会提出一些建议。 让我检查一下它们。

    当您成功写入少量数据时、您要写入的存储器位置是什么?
    写入大量数据时、是否有可能访问不存在的存储器位置?
    您要写入多少数据或映像的大小是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从我对手册(www.ti.com/.../msp430fr2632.pdf)的阅读中可以看出、MSP430FR2632的存储器地址空间从0xe000开始、延伸到0xFFFF。 这相当于8KB 的存储器容量。

    我已经从 code composer 生成了十六进制文件、输出文件为以下结构:
    @μ A

    byte_1 byte_2 byte_3…
    @μ A

    byte_1 byte_2 byte_3…
    解析此文件后、我尝试通过合并每2个字节并从段的地址开始写入来对各个段进行编程。

    因此、给出一个简单的句段:
    @e000
    01 FF 00 86 22
    我将0x1ff 写入地址0xe000、0x0写入地址0xe0002、0x8622写入0xe0004等。

    第一个段的大小为7224字节、从0xe000开始。 0xe000 + 7224字节为0xfc38、该段小于0xx0x80、即中断矢量和签名 FRAM 区域的位置。 下一段从0xx80开始、为8字节。 根据 www.ti.com/.../msp430fr2632.pdf 的表6-2、这对应于 JTAG 签名1。 最后一个段是0xcd8、为40字节、用于 CapTIvate 中断。

    Ergo、我认为我不会写入不存在的存储器地址位置、但我可能会错(如果我的手册读错了、请告诉我)


    当我写入较小的数据时、我已经测试了 FRAM 地址空间的随机区域、以确定是否存在问题、但到目前为止、似乎更像是内存问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们是否可以通过探测 MSP430 IO 引脚来判断器件是否已进入复位状态?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我意识到了正在发生的情况。 GPIO 时序不时会出现轻微混乱、因为 Linux 内核会在程序评分为-20的情况下安排其他操作。