通过UART自动化OTP编程

13个员额/ 0个新员额
最后发表
米奇
离线
最后看到:4年8个月前
加入:2015-07-23 16:51
通过UART自动化OTP编程

你好,对话框,

我正在尝试完全自动化我的OTP编程过程。对于硬件,我有一个使用FTDI 230X芯片的定制接口板。对于固件,我有一个HEX文件和OTP头文件,我正在闪烁。

我目前能够使用CLI编程OTP。然而,我希望避免使用RESET引脚或有任何类型的用户干预我的脚本。我使用的FTDI芯片的一个特点是它有gpio,可以编程进行比特敲打。其中一个gpio可以切换为RESET。有没有任何方法,我可以创建我自己的裸编程脚本,消除了按下Reset按钮的需要,只是调用FTDI芯片来做它?我知道FTDI芯片的指令。我只是不知道如何在Dialog端调用它。

谢谢你和问候,

迈克尔

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

我不确定我理解你的问题,我认为你可以通过使用FTDI芯片上额外的gpio复位580针,就像按下复位按钮。

由于MT_dialog

米奇
离线
最后看到:4年8个月前
加入:2015-07-23 16:51
嗨MT_dialog,

嗨MT_dialog,

是的,这就是我正在尝试做的,但是我如何使用SmartSnippets CLI或其他方式来做呢?我似乎不知道在SDK5实用程序中该在哪里编写这些代码(如果它是在那里的话)。

最好的问候,

米奇

米奇
离线
最后看到:4年8个月前
加入:2015-07-23 16:51
我相信变化

我相信更改需要发生在/SmartSnippets/resources/programmer_ES5.bin的源代码中,这是我目前在我的CLI脚本中使用的程序员文件。你对此有什么见解吗?

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

我们没有尝试过任何类似于您正在尝试做的事情,但我不认为您需要更改对话框提供的任何工具。ES5.bin是OTP的程序员,在下载580中的ES5代码之前,需要重置单板。我认为您需要某种自动化工具,它将触发FTDI,以便在您得到复位单板的指示后,并在复位后继续处理批处理文件的其余部分。

由于MT_dialog

米奇
离线
最后看到:4年8个月前
加入:2015-07-23 16:51
你好,

你好,

是的,没错。你知道有这样的工具吗,或者我该怎么创造一个?

根据我的理解,SmartSnippets请求在板上按下重置按钮并等待它。在按下复位按钮后,通过UART进行一些通信,告诉PC已经按下了复位按钮。我想做的就是告诉FTDI芯片在Smartsnippets发送一个重置按下请求后脉冲它的一个gpio。

问候,

迈克Y

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

抱歉,但正如之前提到的,我们从未尝试过这种方案,我无法建议任何具体的工具或指导您创建这种操作的脚本。

由于MT_dialog

lovejoey
离线
最后看到:4年4个月前
加入:2016-07-12 22:51
嗨MT_Dialog,

嗨MT_Dialog,

我和迈克有同样的问题,我有两个问题

在给芯片编程的时候,我们能摆脱复位信号吗?

2、如果问题1的答案是否定的,那么我们可以使用脚本来模拟编程过程。因为固件下载过程中,我无法访问USB芯片。也许消除信号的唯一方法是模拟整个下载过程。

谢谢

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨lovejoey,

嗨lovejoey,

1)你是如何通过JTAG或UART编程芯片的?在这两种情况下,它建议有复位,如果580被编程和睡眠,你不能附加调试器,在任何情况下,它建议有复位引脚,如果由于编程过程出现错误。

2)我不太明白第二个问题,你说的“模拟编程过程的脚本”是什么意思,你能说得更详细些吗?

由于MT_dialog

lovejoey
离线
最后看到:4年4个月前
加入:2016-07-12 22:51
嗨,太

嗨,太

1)我们正在通过UART编程DA14580。让我们一起过一遍流程。
打开一个命令行并调用smartsnipts .exe来将Programming_ES5.bin加载到DA14580芯片中
执行该命令后,CLI将打印一条消息,要求您按板上的复位按钮。
以上反映了我现在的问题。我想用计算机发出硬件复位信号,而不是人工。正如你所说JTAG和UART方法都不能摆脱发送重置信号。我已经尝试使用python脚本来监控CLI输出,并使用与DA14580连接的相同usb芯片发送复位信号。但是USB芯片被COM通信所占据。所以我无法发出复位信号。

2)模拟smarsnippets过程不准确。它应该使用python脚本重写所有芯片编程过程。这样,我需要知道Smartsnippets在为Da14580芯片编程时做了什么。

谢谢
Yangkai

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨lovejoey,

嗨lovejoey,

没有复位引脚你无法模拟复位信号,智能片段要求复位销的原因当下载通过UART是为了引导装载程序运行,然后智能剪将二进制到UART尽快追踪STX = 0 x02(只要聪明的片段检测STX字符从引导装载程序在控制台显示“重置信号检测”)表示UART引导过程的开始。因此,在重置信号到达(用户必须推送而不是Smart Snippets)之后,UART启动序列开始,Smart Snippets遵循AN-B-001文档中关于UART启动过程所描述的过程。JTAG不需要重置,因为只要启用580中的调试器模块,它就可以直接访问580。如果调试器模块被禁用(580用sleep运行一个fw),你将再次需要重置按钮来运行主引导加载程序和主引导加载程序来重新启用调试器模块。

我理解你想要一个信号来切换复位引脚,但就我所知,在智能片段或CLI编程器上没有什么东西可以提供给你那个选项。

由于MT_dialog

米奇
离线
最后看到:4年8个月前
加入:2015-07-23 16:51
嗨MT_dialog,

嗨MT_dialog,

我们试图做的是模仿SmartSnippets所做的,但添加了FTDI 230X的软件复位。如果我们能够理解CLI的过程,那么我认为我们可以在Python中创建一个脚本来完成同样的过程,并使用230X GPIO函数向DA14580发送RESET脉冲。

我们使用的CLI命令有:
命令1 = 'SmartSnippets.exe -type bootter -chip DA14580-01 -com_port comnum -gpio P0_4 -uart P0_0 -file %USERPROFILE%/SmartSnippets/resources/programmer_ES5.bin

命令2 = 'SmartSnippets.exe -type otp -chip DA14580-01 -com_port comnum -baudrate 57600 -gpio P0_4 -uart P0_0 -firmware %USERPROFILE%/SmartSnippets/resources/programmer_ES5.bin -cmd write_custom_code -file /path/to/OTPFirmwareFile/file. sh十六进制偏移0 x0 '

command3 = ' smartsnipts .exe -type otp -chip DA14580-01 -com_port comnum -baudrate 57600 -gpio P0_4 -uart P0_0 -firmware programmer_ES5.bin -cmd write_header -file /path/to/OTPHeaderFIle/file.hex'

第一个命令的目的是什么?是设置FTDI芯片,了解DA14580接收到STX字节后如何与DA14580通话并发送SOH字节吗?还是DA14580的指令集?二进制代码到底在做什么?在这个命令之后,需要按硬件复位按钮,我假设这意味着我们需要重新启动引导过程,以便引导加载程序。App Flag仍然是0x0000,所以芯片启动到Dev模式。

我假设第二个命令是我们开始UART引导协议的地方。芯片发送STX, PC(?)响应SOH,固件的LEN_LSB和LEN_MSB, DA14580发送ACK字节。然后它等待我们的十六进制文件从PC和加载它开始地址0x20000000。完成此操作后,DA14580发送CRC,主机也必须使用ACK字节进行响应。在此之后,SYS_CTRL_REG寄存器被编程重新映射到SysRAM并应用软复位。

我们现在可以发送我们的OTP头,这是在第三个命令中完成的。在我们开始发出这个hex文件之前,DA14580有什么需要收到的吗?我们需要遵循什么启动顺序吗?这个过程是怎样的?

在OTP报头被编程后,我们现在可以硬复位DA14580,并期待我们的固件加载,对吗?

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

第一个命令下载- file选项设定的弗兰克-威廉姆斯(580年你的案子的ES5_programmer应该为了程序OTP), 580字节,emmits引导装载程序运行时,580年等待的弗兰克-威廉姆斯将下载。STX由580传输,当检测到0x02时,智能片段假设重置已按下并开始指示的序列。你不需要调用的命令都显示(你提到的第一个2),你可以直接申请第二个命令和程序员将下载- file,然后表示write_custom_code将写成你的图片或你的头。

总结的固件firmware_file你指示命令将下载执行指定的命令之前,如果你不使用这个参数在你命令你应该使用第一个命令表示,所以,580年的编程与ES5_programmer然后可以发出下一个命令。因此,为了让引导加载程序运行,从而检测到STX,并将programmer_ES5.bin下载到580。

您可以在命令行实现部分的SmartSnippetsHelp.pdf中找到所有的CLI命令和每个命令的作用解释,帮助文件位于SmartSnippets目录中。您可以打开SS,点击帮助选项并选择用户指南。pdf

在OTP标头中刻录OTP和应用程序标志之后,当您按下重置按钮时,OTP应用程序应该被加载到sysram中。

由于MT_dialog