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:写入 OTP 存储器-引导模式配置

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1284603/tms320f28388d-writing-otp-memory---boot-mode-configuration

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

大家好!

我要更改 软件控制的固件更新过程的引导配置。

我将使用一个引导模式选择引脚(0x0F - GPIO15)

BOOTPINCONFIG 位字段0x5AFFFF0F

我计划使用闪存引导(0x03 - BOOT_DEF0)和 SCI 引导(0x01 BOOT_DEF1) 模式。  

BOOTDEF 位字段用于低0xFFFF0103、高 0xFFFFFFFF   

我要小心、因为 OTP 位置只能写入一次。

--------

1- 有 Z1和 Z2区域用于 BOOTPINCONFIG 和 BOOTDEF 位字段。  

根据此线程  Z1具有比 Z2更高的优先级。 (我在 TRM 中找不到此规则。 如果您能向我展示、我将不胜感激)

因此、写入 OTP 的逻辑方法是首先 对 Z2 位字段进行编程。  如果问题发生、请对 Z1位字段进行编程。 Z2位字段将被忽略。  

如果我错了,请纠正我。

--------

2-我阅读了有关编写 OTP 和应用报告的 TI E2E 主题(SPRACN1)。  

我想可以通过3种方法来编写 OTP。  (使用 SysConfig、具有 Project Properties -> Debug -> Flash Settings、以及提到的代码片段应用报告 SPRACN1)

我有 单独 对这些方法有疑问。

-关于 SysConfig 方法

使用上述 DCSM 设置构建"led1_ex1_blinky"工程后、  将生成"dcsm.asm"和"dcsm.cmd"文件。  

这些文件是否足以写入 OTP?  

我们是否需要合并"dcsm.cmd"和现有的"2838x_RAM_Ink CPU1.cmd"文件?
我们是否需要合并"dcsm.asm"和现有的"f2838x_codestartbranch.asm"文件?

我们是否需要 添加任何代码到"led_ex1_blinky.c"以写入 OTP 存储器(如 SPRACN1中所示)?   

 -关于项目属性->调试->闪存设置 方法

    

 这些设置是否 足以写入 OTP 存储器?  
我们是否需要单独的代码来编写 OTP?

如果我们不需要任何代码、这种方法要比其他方法容易得多。

--------

3-是否可以在不写入 OTP 存储器的情况下尝试引导模式配置更改?  

我看到了有关仿真的线程。 但我无法理解。

用于如下所示的 TMS3202838x 仿真寄存器地址  
EMUBOOTPINCONFIG 0x0000 0D00
EMUBOOTDEF-LOW 0x0000 0D04
EMUBOOTDEF-HIGH 0x0000 0D05
 
这些地址具有以下附加的值

如果 我将0x5AFFFF0F 写入 EMUBOOTPINCONFIG 并 将0xFFFF0103写入 EMUBOOTDEF-LOW 地址、 是否可以暂时尝试引导模式配置?  

此致、
穆罕默德

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

    你好,Mehmet。

    对于问题1:是的、Z1的优先级比 Z2的优先级高。 您的方法正确

    对于问题3:您需要按如下所示设置 EMU 位置:
    0xD00 = 0x0203;
    0xD01 = 0x5A01;
    0xD02 = 0;
    0xD03 = 0;
    0xD04 =模式;
    0xD05 =模式;
    0xD06 =模式;
    0xD07 =模式;

    问题2:这是一个 C2kWare 问题。 也许就此创建一个单独的 E2E 主题会有所帮助。

    -Kedar

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

    我 不明白你为什么写入0x5A010203?  
    我只想使用 GPIO15  
    所以我必须写入0x5AFFFF0F、我写对吗?  
    谢谢

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

    此外、

    根据 TRM 第706页( SPRUII0E )  

    "建议首先使用 Z1-BOOTPINCONFIG、如果需要更改 OTP 配置、则切换到使用 Z2-BOOTPINCONFIG。"

    是否确定 Z1-BOOTPINCONFIG 的优先级高于 Z2-BOOTPINCONFIG?  

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

    是否有更新?  

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

    你好,Mehmet。

    请给我 几天的时间来恢复这件事。

    -Kedar

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

    大家好!

    使用单个 GPIO (GPIO15 - 0x0F) 2引导模式可用。
     -闪存引导模式(0x03)
     - SCI 引导模式(0x01)

    EMUBOOTPINCONFIG = 0x5AFFFF0F
    EMUBOOTDEF-LOW = 0xFFFF0103
    EMUBOOTDEF-HIGH = 0xFFFFFFFF   


    下面连接了 EMU 设置。  

    在 CPU 复位后、  
    -当 GPIO15 =0时, MCU 从闪存引导
    -当 GPIO15=1时 MCU 从 SCI 引导
    在此设置中、仿真可以正常工作。

    此外、   

    根据 TRM 第706页( SPRUII0E );  Z2的 优先级高于 Z1。 因此、 写入 Z2-GPREG 将覆盖 Z1-GPREG 设置。

    -Mehmet.