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.

[参考译文] TMS320F28388D:未连接引导引脚

Guru**** 2609955 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998340/tms320f28388d-boot-pins-not-connected

器件型号:TMS320F28388D
主题中讨论的其他器件:UNIFLASH

您好!

在使用 F28388D 器件的定制电路板上、我忽略了将默认引导引脚 GPIO72和 GPIO84连接到任何上拉/下拉电阻。 GPIO72不连接电路板、而 GPIO84连接到 EtherCAT PHY MII 接口 TX_ENA 信号。 当我在没有调试器的情况下引导器件时、它不会运行闪存中编程的代码、我认为在这些信号未正确连接的情况下可以实现这一目的。

我的问题是

  1. 我是否可以强制使用不同的引脚组进行引导配置
  2. 或者、我能否对引导代码进行硬编码、以便在未连接调试器时从闪存引导?

谢谢!

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

    您好,

    [引用 userid="70593" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/998340/tms320f28388d-boot-pins-not-connected "]我是否可以强制使用不同的引脚集进行引导配置[/quot]

    是的、您可以通过在用户 OTP 中配置 ZX_BOOTPINCONFIG 位置来更改引导模式引脚。 请参阅 器件 TRM 的 BootROM 一章中的"5.4.1为 CPU1"配置引导模式引脚。

    [引用 userid="70593" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/998340/tms320f28388d-boot-pins-not-connected、或者、我能否对引导代码进行硬编码以便在未连接调试器时从闪存引导?

    是的、这也可以通过配置0引导模式引脚来实现。 请参阅器件 TRM 的引导 ROM 一章中的"零引导模式选择引脚"一节。

    此致、

    Vivek Singh

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

    您好、 感谢您的及时响应。 我相信这回答了我的问题,但我没有机会尝试你们的任何一项建议。 当我这么做时、如果我有任何问题、我将回到这个话题。 我现在标记为已解决。 谢谢!

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

    大家好、Vivek、我是否需要编写一个利用 FlashAPI 的定制应用程序来对 OTP 进行编程和用户? 如果可以使用 Code Composer Studio 在调试会话中对用户 OTP 进行写入、这是可行的吗?

    您能给我指出一些可以帮助我入门的资源吗?

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

    Bump、

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

    您好!

    是的、您可以使用任何闪存编程工具(包括 CCS 闪存插件)对用户 OTP 进行编程。 在 CCS 中、我们还有 GUI 选项、用户可以在其中输入所需的值并对其进行编程。 连接到目标后、可以通过点击 CCS 中的"Tools -> On-Chip Flash"来打开 CCS 闪存 GUI。

    此致、

    Vivek Singh

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

    Vivek 、感谢您的回答。

    我正在 CCS 中尝试片上闪存 GUI、看起来 OTP 值没有使用我提供的值进行编程。

    这些是我为 Z1-GPREG1和 Z1-GPREG2设置的值(Z1-BOOTPINCONFIG、Z1-BOOT-GPREG2)

    然后在点击"Program"后、控制台输出将打印我在此处以黄色突出显示的内容:

    但是、使用表达式观察读回这些寄存器会返回所有 FFs

    此外、在我进行下电上电后、我仍然可以在表达式观察中看到所有的 FFs、并且器件不会像预期的那样引导至闪存。

    我还验证了我为 BootPinConfig (0x5AFFFFF)和 BootDef (0xFFFFFF03)提供的值是否有效、方法是使用仿真方法、即将0x5AFFFFF 写入地址0x00000D00 (EMUBOOTPINCONFIG)和0xFFFFFF03至0x00000D04 (EMUBOOTDEF-LOW)。

    有什么想法、为什么它不起作用?

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

    我注意到 GUI 上的以下按钮、该按钮的功能是什么? 它是否与此处相关?

    "安全设置""所有安全值都位于一次性可编程(OTP)存储器中。 对这些值进行编程之前请小心、因为每个位只能在1到0之间进行一次编程。" 按钮显示:"Fill Security Fields from Target"(从目标填写安全字段)

    我还尝试过通过固件对用户 OTP 进行编程。 使用了本应用报告第3节中的示例: https://www.ti.com/lit/an/spracp6/spracp6.pdf

    在我的链接器脚本的 MEMORY 部分

    在部分中:

    然后在 main.cpp (C++ pragma)中进行选择

    最后、我尝试加载.out 文件的原因加载会无限期地受阻、写入0x78008 (DCSM OTP 区域1 GPREG)

    也许我不了解如何锁定/解锁 DCSM? 我认为安全模块出厂时已解锁。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="70593" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998340/tms320f28388d-boot-pins-not-connected/3722889 #3722889"]我注意到 GUI 上的以下按钮、该按钮的功能是什么? 此处是否相关?

    此图标仅用于通过从器件读取值来填充 GUI 中的所有字段。 在这里无关紧要。  

    [引用 userid="70593" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998340/tms320f28388d-boot-pins-not-connected/3722889 #3722889"]最后,为什么我尝试加载.out 文件加载会无限期地被加载到0x78008 (DCSM OTP 区域1 GPREG)

    您的 CCS 设置中似乎缺少一些内容。 您使用的是哪个版本的 CCS? 是否可以检查更新并安装新的更新(如果有)。 您可以在 CCS 的帮助菜单下找到"检查更新"图标。

    此致、

    Vivek Singh

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

    我使用的是 CCS 10.2.0

    在更新之前、我有以下版本的编译器工具

    运行"检查更新"后、我安装了这些

    然后、当我尝试加载.out 文件时、它在擦除闪存后仍然卡在同一个位置

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

    有什么想法、为什么它还会被卡住?

    有关我的设置的其他信息、我的调试配置未与任何源项目相关联。 启动调试配置后、我将在"Debug"视图中连接到目标、右键单击"Connect to Target"

    然后、在连接后、我通过"Load Program"图标手动加载.out 文件。

    Debug Configuration 设置的屏幕截图如下:

    和"Target"选项卡

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

    看起来您正在执行正确的步骤。 不确定它为什么不起作用。 此外、没有错误消息。 对吧?

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

    没错、没有错误消息。

    DCSM 是否可能已因某种原因锁定? 如何判断 DCSM 是否已密码锁定?

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

    在这种情况下、您应该会收到错误消息、表示区域已锁定。 打开 GUI 时,是否看到所有填充了正确值的字段?

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

    今天我没有使用硬件、但在内存之外、我记得在 GUI 的所有字段中看到所有 FF、然后单击"从目标中填充安全字段"未更改它们。

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

    我查看了您的 CCS 窗口、它看起来稍有不同。 您将使用哪个.ccxml 文件进行目标配置?  

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

    我正在使用从 CCS 安装中获取的.ccxml 文件。

    以下是其内容

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="Texas Instruments XDS100v2 USB Debug Probe_0">
            <instance XML_version="1.2" desc="Texas Instruments XDS100v2 USB Debug Probe_0" href="connections/TIXDS100v2_Connection.xml" id="Texas Instruments XDS100v2 USB Debug Probe_0" xml="TIXDS100v2_Connection.xml" xmlpath="connections"/>
            <connection XML_version="1.2" id="Texas Instruments XDS100v2 USB Debug Probe_0">
                <instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100v2c28x.xml" id="drivers" xml="tixds100v2c28x.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100v2cla2.xml" id="drivers" xml="tixds100v2cla2.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100v2cs_child.xml" id="drivers" xml="tixds100v2cs_child.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510ajsm.xml" id="drivers" xml="tixds510ajsm.xml" xmlpath="drivers"/>
                <platform XML_version="1.2" id="platform_0">
                    <instance XML_version="1.2" desc="TMS320F28388D_0" href="devices/f28388d.xml" id="TMS320F28388D_0" xml="f28388d.xml" xmlpath="devices"/>
                    <device HW_revision="1" XML_version="1.2" description="" id="TMS320F28388D_0" partnum="TMS320F28388D" simulation="no">
                        <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C router" id="IcePick_C_0" isa="ICEPICK_C">
                            <subpath id="Subpath_1">
                                <property Type="numericfield" Value="0x11" desc="Port Number_0" id="Port Number"/>
                            </subpath>
                            <subpath id="CM">
                                <property Type="numericfield" Value="0x12" desc="Port Number_1" id="Port Number"/>
                            </subpath>
                        <subpath id="Subpath_3">
                                <cpu HW_revision="1.0" XML_version="1.2" description="JLM" deviceSim="false" id="JLM" isa="AJSM">
                                    <property Type="numericfield" Value="0x0" id="Unlock Key bits 31:00"/>
                                    <property Type="numericfield" Value="0x0" id="Unlock Key bits 63:32"/>
                                    <property Type="numericfield" Value="0x0" id="Unlock Key bits 95:64"/>
                                    <property Type="numericfield" Value="0x0" id="Unlock Key bits 127:96"/>
                                </cpu>
                            </subpath>
                        </router>
                    </device>
                </platform>
            </connection>
        </configuration>
    </configurations>

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

    Jairo、

    一切看起来都正常、因此很奇怪、OTP 字段没有进行编程。 您是否也尝试过新设备?  

    Vivek Singh

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

    大家好、 、我很高兴地报告说、我能够使用 Windows 上的 UniFlash (https://www.ti.com/tool/UNIFLASH)成功地对 OTP 闪存进行编程。 我使用 CCS 尝试了另外两个电路板、但在那里没有成功。

    日志输出看起来与 CCS 输出类似、但 UniFlash 上的 GEL (或其他)脚本可能更新版? 这就是它在 UniFlash 上的样子