大家好,
这可能是一个基本的问题,但是有没有办法不使用SmartSnippets工具就访问和编程OTP区域呢。我尝试访问和修改OPTC\u MODE\u REG以及SYS\u CTRL\u REG,但没有成功。我使用我自己的自定义设置连接到芯片使用T_TMS(SWDIO)和T_TCK(SWCLK),并能够修改位于SRAM的数据。在其中一个寄存器中是否有允许我访问OPTC\u MODE\u REG和SYS\u CTRL\u REG的特定设置?某种寄存器解锁。
非常感谢。
设备:
你好史蒂文·麦格拉斯,
我强烈建议您使用SmartSnippets工具箱来烧录OTP,因为我们不支持自定义设置。但是,您可以参考5.0.4\utilities\flash\u programmer SDK path下的flash programmer项目。请检查otpc.h/.h文件。
谢谢,下午好
你好,
谢谢你的快速回复。我一直在引用您提到的flash程序员项目,特别是,当我调用optc\u clock\u enable函数时,我似乎无法访问OTP区域(至少无法再查看OTP内存)。调用optc\ U write\ fifo函数时,OTPC\ U STAT\ U PERR\ U、OTPC\ U STAT\ U PERR\ U L和OTPC\ U STAT\ U PERROR标志存在,并导致操作失败。
我可以看到我要编程的数据存在于OTPC\u FFPRT\u REG中,但是如何将其传输到OTP区域?也许我遗漏了一些重要的信息,但我似乎完全按照指示跟随SDK。任何帮助都将不胜感激。谢谢。
你好史蒂文·麦格拉斯,
请查看“Source file”项目文件夹下的programmer.c文件,并搜索ACTION\u OTP\u WRITE定义。这也许对你有帮助!你也可以检查你读到的动作。
谢谢,下午好
你好,
c文件是我遇到这些问题时引用和使用的源代码。如前所述,当我调用optc\u clock\u enable函数时,OTP(0x47000-0x47FFF)内存不再可见。我可以用正确的数据对OTPC\ U FFRT\ U REG(0x40008018)进行编程,但如何将其传输到OTP区域?另外,一旦调用optc\u clock\u disable函数,OTPC\u FFRT\u REG中的数据就不再存在。我基本上是使用所有的源代码程序员。c似乎只是信息被编程到先进先出区域,并没有从那里去任何地方。是否有额外的步骤访问OTP区域并传输此数据?
非常感谢您的帮助。感谢您花时间回复。
你好,
对这件事的简短评论。我已经阅读了DA14580设备的文档,并注意到了OTPC\u PCTRL\u REG,在这里您可以启用OTP的上下库进行编程。在您提到的SDK中,我的大部分工作都是基于的,这里根本没有提到这个寄存器,但是为了编程OTP内存,它似乎非常重要。如果这个寄存器是编程OTP区域所必需的,以及由于SDK似乎遗漏了这个信息,那么您能提供一些细节吗。
还有一个补充说明,SDK中的OTP\u READ函数正在运行,我可以查看OTP中的数据,包括OTP头信息。
谢谢你的支持。我期待着回音。
史蒂夫
你好,史蒂文,
我对耽搁表示歉意。我提到过,我们使用SmartSnippets studio来编程OTP。关于flash\u程序员项目,请检查otpc\u write\u fifo()。当您试图烧毁OTP时,您必须确保编程电压是干净的,并且不得超过6.8V。此外,6.8V只能在VBAT3V供电后应用于VPP,并且必须在VBAT3V卸下之前从VPP中卸下,否则可能会损坏芯片。
谢谢,下午好