没有smartsnippet的OTP编程

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
7个职位/ 0个新职位
最后发表
steven.mcgrath
离线
最后看到:1个月前
加入:2019-02-19等等
没有smartsnippet的OTP编程

大家好!

这可能是一个基本的问题,但是是否有任何方法可以在不使用SmartSnippets工具的情况下访问和编程OTP区域。我尝试访问和修改OPTC_MODE_REG以及SYS_CTRL_REG,但没有成功。我使用我自己的自定义设置连接到芯片使用T_TMS (SWDIO)和T_TCK (SWCLK),我能够修改位于SRAM中的数据。在某个寄存器中是否有特定的设置允许我访问OPTC_MODE_REG和SYS_CTRL_REG?某种形式的寄存器解锁。

谢谢你!

设备:
PM_Dialog
离线
最后看到:6小时48分钟前
工作人员
加入:2018-02-08 11:03
嗨steven.mcgrath,

嗨steven.mcgrath,

我强烈建议您使用SmartSnippets工具箱来刻录OTP,因为我们不支持自定义设置。但是,你可以参考flash程序员项目,它位于5.0.4\utilities\flash_programmer SDK路径下。请检查otpc.h / .h文件。

谢谢,PM_Dialog

steven.mcgrath
离线
最后看到:1个月前
加入:2019-02-19等等
你好,

你好,

谢谢你的快速回复。我一直在引用您提到的flash程序员项目,特别是,当我调用optc_clock_enable函数时,我似乎失去了对OTP区域的访问(至少OTP内存不能再被查看)。当调用optc_write_fifo函数时,会出现OTPC_STAT_PERR_U、OTPC_STAT_PERR_L和OTPC_STAT_PERROR标志,并导致操作失败。

我可以看到我想要编程的数据存在于OTPC_FFPRT_REG中,但是我如何将其转移到OTP区域?也许我错过了一些重要的信息,但我似乎遵循SDK完全按照指示。任何帮助都将不胜感激。谢谢。

PM_Dialog
离线
最后看到:6小时48分钟前
工作人员
加入:2018-02-08 11:03
嗨steven.mcgrath,

嗨steven.mcgrath,

请查看“源文件”项目文件夹下的programer .c文件,并搜索ACTION_OTP_WRITE定义。这可能对你有帮助!您还可以检查ACTION_OTP_READ。

谢谢,PM_Dialog

steven.mcgrath
离线
最后看到:1个月前
加入:2019-02-19等等
你好,

你好,

c文件是我在遇到这些问题时引用和使用的源代码。如前所述,当我调用optc_clock_enable函数时,OTP (0x47000-0x47FFF)内存不再可见。我可以用正确的数据编程OTPC_FFRT_REG(0x40008018),但这如何转移到OTP区域?同样,一旦optc_clock_disable函数被调用,OTPC_FFRT_REG中的数据将不再存在。我实际上使用所有的源代码从程序员。c它只是似乎信息是编程到先进先出区域,并没有从那里去任何地方。是否有一个额外的步骤来访问OTP区域并传输该数据?

非常感谢任何帮助。谢谢你花时间回复我。

steven.mcgrath
离线
最后看到:1个月前
加入:2019-02-19等等
你好,

你好,

对这个问题做一个简短的评论。我一直在查看DA14580设备的文档,注意到OTPC_PCTRL_REG,您可以在其中启用OTP的上下行进行编程。在你给我介绍的SDK中,我做的大部分工作都是基于,没有这个寄存器的参考,但它似乎很重要,为了编程OTP内存。您能否提供任何见解,如果该寄存器是编程OTP区域所必需的,以及由于SDK似乎遗漏了这一信息,哪些其他启用可能是必要的。

此外,SDK的OTP_READ函数正在运行,我能够在包括OTP标题信息的OTP中查看数据。

谢谢你的支持。我期待着你的回复。

史蒂夫

PM_Dialog
离线
最后看到:6小时48分钟前
工作人员
加入:2018-02-08 11:03
嗨,史蒂文,

嗨,史蒂文,

我为耽搁道歉。我之前提到过,我们使用SmartSnippets工作室为OTP编程。关于flash_programmer项目,请检查otpc_write_fifo()。当你试图烧毁OTP,你必须确保编程电压是干净的,不能超过6.8V。另外,6.8V只能在VBAT3V提供后应用到VPP上,必须在VBAT3V被移除之前从VPP上移除,否则会损坏芯片。

谢谢,PM_Dialog