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.

[参考译文] MSP430F5438A:只使用"单向"TCK 和 TDIO 信号进行 SBW 编程

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1194907/msp430f5438a-sbw-programming-with-only-one-way-tck-and-tdio-signals

器件型号:MSP430F5438A
主题中讨论的其他器件: SN74AVC4T774

您好!

我将在 MSP430F5438A 上实施基于 SBW 的闪存编程。 我们的板在主机和 MSP430之间有一个电平转换器(SN74AVC4T774RSV)。

该电平转换器仅允许单向信号传输。  I.E.TCK 和 TDIO (测试和复位)可以从主机转至 MSP430、或从 MSP430转至主机、但不能同时双向转至主机。 这个方向由主机上的一个独立 GPIO 引脚控制。

几个问题-

 1) 1)是否可以使用从主机到 MSP430的"单向"信号对器件进行编程?

  • 信号方向为主机[TCK、TDIO]  ===>MSP430[TCK  、TDIO]
  • 我知道确切的 MSP430型号及其参数、因此我不需要识别它。
  • 我不知道我是否已成功连接、因此我必须在编程通过/失败后制定重试方案。

 2)如果(1)不可行、此方案是否可行?

  • 设置、根据需要设置/清除 TCK、将信号方向切换到 MSP430 ->主机、读取 TDO、将信号方向切换回主机--> MSP430、继续。

感谢你能抽出时间。

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

    您好、Steve、

    让我向我们的工具团队核实一下这一点。  预计在24小时内收到回复。

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

    您好、Steve、

    不幸的是、我被告知没有 TDIO 是双向的、因此您的想法不会奏效。  您是否考虑过 BSL (引导加载程序)?  在器件上、引脚 P1.1和 P1.2上是 UARTE。

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

    Dennis、

    感谢您的快速响应。 为了清楚地说明问题、当你说我的想法不适用于你所指的是哪一个-(1)、(2)、或者两者都是?

    我想完全确认方案(1)不可行。 我们的想法是、我们可以告诉 MSP430做什么。 确认确实是一个大问题、但它是否可以正常工作?

    谢谢、

    Steve

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

    slau320是适用于 SBW/JTAG 的 TI 开放软件/硬件源代码示例、您可以在其中找到所需了解的全部内容。 在中、使用单向电平转换器来控制(电平转换器)方向。 JTAG 只具有单向信号、但 SBW 基本周期在 SBWDIO (数据)双向线路上为2输出/ 1输入。 目标器件自动改变方向、并且主器件必须遵循此方向以避免导致数据线路短路。

    您的观点(1)无法正常工作、观点(2)是其工作方式、而 slau320已完全覆盖。

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

    感谢您的快速响应。

    我一直使用 slau320示例源作为基础、这就是我在这里看到的结果。 slau320源代码(Replicator430Xv2项目)改变 SBWDATO 数据线路的方向、但不改变 SBWCLK 线路。 我们的硬件总是同时同时移动 SBWDATO 和 SBWCLK。

    在文件 LowLevelFunc430Xvw.h 中 、TDO 读取被定义为:

     #define  TDO_RD  TRSLDIR |= TDOI_DIR;nNOPS JTAGOUT &=~SBWCLK;usDelay (1); TDO_BIT = JTAGIN;usDelay (1);JTAGOUT |= SBWCLK; TRSLDIR &=~TDOI_DIR;

    它会更改 TDOI_DIR、但不会更改 TCK_DIR。 我的硬件同时切换两个信号方向、我正在尝试找到一种方法来实现这一目的。

    因此、我想我要问的是、这种工作方式可能会使两个信号同时改变方向。 我通过移动 TDOI 方向变化来改变#define、并添加了 TCK 方向变化、因此它们与我们的硬件上的变化同时发生:


     #define  TDO_RD  nNOPS JTAGOUT &=~SBWCLK;usDelay (1);(TRSLDIR |= TDOI_DIR;TRSLDIR |= TCK_DIR;)  TDO_BIT = JTAGIN;(TRSLDIR &=~TRSK_DIR;TRSLDIR &= TRSLDI ~TUSDIR)| TRSLDDIR (TRSGBI);TRSLDDIR ~TDOI + TDOI + TUSTRS (TRSLDDIR) 1 TDOI + TLDDIR);TRSLDDIR (TRSLDDIR)

    再次感谢您的观看。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="543318" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1194907/msp430f5438a-sbw-programming-with-only-one-way-tck-and-tdio-signals/4505757 #4505757"]它更改了 TDOI_DIR、但不更改 TCK_DIR。 我的硬件同时切换两个信号方向、我正在尝试找到一种方法来实现这一目的。 [/报价]

    没有办法做到这一点。 TCK 由主器件生成、不会改变方向。 当目标器件从 SBW 中释放并自由运行时、主器件应将 TCK 保持为低电平。

    我在您的设置中看不到这是为什么会出现问题、因为 SN74AVC4T774的每个通道都有一个独立的 DIR 控制。

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

    再次感谢您的回复。  

     我们的主机硬件奇怪 的是、TDOI 和 TCK 的 SN74AVC4T774 DIR 控制连接到一个 GPIO。 这在硬件中是固定的、我无法更改它-我只能同时更改两个信号的 DIR。 (TDOI 和 TCK 信号位于单独的主机 GPIO 引脚上、是组合的 DIR)。  在 SBW 之后、我可以将 TCK 置为低电平、将 TDOI 置为高电平、以便 MSP430可以自由运行。  

    我只想对闪存进行编程、因此我想了解是否有任何方法可以使用 MSP4305438A 的"只写"对进行编程。

    感谢你能抽出时间。

     

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

    我没有您的示例、但类似的东西可能会对您有所帮助。 您可以在示波器图中看到一个具有1MHz CLK 的典型 SBW 周期。 数据为黄色。

    在主器件向目标器件发送2个位(一个为高电平、一个为低电平)后、在 CLK 达到高电平状态后、主器件释放数据线进行响应。 RESET (数据)被拉高、并且有上升斜率。 在 CLK 达到低电平状态后、目标器件改变数据线上的方向并以位高电平进行响应。 在 CLK 达到高电平状态后、目标器件再次改变数据线上的方向。

    在本例中、在最后一个时钟上、您可以将时钟保持为高电平、并同时将两个(clk 和数据)方向都更改为输入。 时钟(TEST 引脚)被拉低、时钟应以下降斜率进入低电平状态。 在低 CLK 状态下、目标器件应发送响应位。 延迟必须比默认值更长、并且(如果正常工作) SBW 接口将更慢。 主器件从目标读取数据后、应在数据线上放置新位、并将两个方向(clk 和 data)切换到输出。 此时将存在一些短路(在主/目标数据信号不同的情况下)、但这应由数据线上的电阻器吸收。

    同样、我不确定这是否可行、但我确信在调试期间、您必须使用示波器(而不是逻辑分析仪)观察两个(clk 和数据)信号。

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

    谢谢! 我会尝试一下。

    如果我对信号(从 SN74AVC4T774RSV  到  MSP430F5438A 的 TDO 的 TDOI)短路、我会损坏芯片吗? 该原理图未显示这些线路上的任何电阻器。

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

    我想、在改变方向(从输入到输出)之前、在从目标器 件读取的主器件侧输入数据线值就足够安全了。

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

    这种方法对我们的单位不起作用,这要归功于这一建议。 最后两个问题、再次感谢您的所有帮助:

    1 -如果我将 TDO=连接到 = 0 (或反之)的 SN74AVC4T774RSV 输出引脚、是否会损坏器件或影响 SBW 运行?

       MSP430 TDO 高电平--- ><------   低 SN74AVC4T774RSV

    2 -您是否看到了只使用主机写入来对 MSP430F5438A 进行编程的任何方法?

    感谢你能抽出时间。

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

    SBW 周期定义为2位输出和1位输入(来自主机侧)、这不能更改。 它可以对齐以忽略位中的最后一个、但不确定将最后一个(低)时钟周期缩减为最小周期是否有助于避免数据线短路。 我从未分析过这一点、所以不知道。

    如果与主器件存在 UART (或任何其他)连接、则可以使用出厂 BSL (或自定义)版本。 从主器件侧通过单向测试/复位序列进入 BSL 模式没有问题。 出厂 BSL 不是、但自定义版本只能使用来自主机的单向写入。