自动化OTP编程在UART上

13个帖子/ 0个新
最后一篇
迈克
离线
最后一次露面:4年7个月前
加入:2015-07-23 16:51
自动化OTP编程在UART上

你好对话框,

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

我目前能够使用CLI来编程OTP。但是,我想避免使用重置引脚或对我的脚本具有任何类型的用户干预。我使用的FTDI芯片的一个功能之一是它具有GPIO,可以为位敲击编程。可以切换其中一个GPIO以进行重置。有没有方法可以创建自己的裸露编程脚本,消除了对重置按钮的需要,刚刚调用FTDI芯片来执行它?我知道FTDI芯片的命令。我只是不知道如何在对话框中调用它。

谢谢你,

迈克尔

设备:
mt_dialog.
离线
最后一次露面:三个月三个星期前
职员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

我不确定我理解你的问题,我想你可以通过在FTDI芯片上使用额外的GPIO来重置580,就像击中重置按钮一样。

谢谢mt_dialog.

迈克
离线
最后一次露面:4年7个月前
加入:2015-07-23 16:51
嗨MT_dialog,

嗨MT_dialog,

是的,这就是我想要做的,但我如何使用SmartSnippets CLI或其他方式来这样做?我似乎无法弄清楚在SDK5实用程序中编写该代码的位置(如果这是它的位置)。

最好的问候,

迈克

迈克
离线
最后一次露面:4年7个月前
加入:2015-07-23 16:51
我相信改变

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

mt_dialog.
离线
最后一次露面:三个月三个星期前
职员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

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

谢谢mt_dialog.

迈克
离线
最后一次露面:4年7个月前
加入:2015-07-23 16:51
你好,

你好,

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

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

问候,

迈克Y

mt_dialog.
离线
最后一次露面:三个月三个星期前
职员
加入:2015-06-08 34
嗨,米奇,

嗨,米奇,

抱歉,但如前所述,我们从未尝试过这种方案,我不能建议任何特定的工具或给您创建这种操作的脚本指导。

谢谢mt_dialog.

lovejoey
离线
最后一次露面:4年3个月前
加入:2016-07-12 22:51
嗨MT_Dialog,

嗨MT_Dialog,

我有同样的问题是迈克,我有2个问题

1,我们可以在编程芯片时摆脱重置信号。

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

谢谢

mt_dialog.
离线
最后一次露面:三个月三个星期前
职员
加入:2015-06-08 34
嗨lovejoey,

嗨lovejoey,

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

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

谢谢mt_dialog.

lovejoey
离线
最后一次露面:4年3个月前
加入:2016-07-12 22:51
嗨MT.

嗨MT.

1)我们正在通过UART编程DA14580。让我们一起回顾一下整个过程。
您打开CLI并调用SmartSnippets.exe以将编程_es5.bin加载到DA14580芯片中
执行命令后,CLI将打印一条消息以便要求您按下船上的重置按钮。
以上反映了我现在的问题。我想通过人类的计算机发送硬件重置信号。因此,正如您所说的,JTAG和UART方法都无法摆脱发送重置信号。我试图使用Python脚本来监视CLI输出并使用与DA14580连接的相同USB芯片发送复位信号。但USB芯片由COM通信占用。所以我无法发送重置信号。

2)模拟SmartSnippets过程不准确。它应该使用Python脚本重写所有芯片编程过程。通过这种方式,我需要知道Smartsnippets在编程DA14580芯片时做了什么。

谢谢
Yangkai

mt_dialog.
离线
最后一次露面:三个月三个星期前
职员
加入:2015-06-08 34
嗨lovejoey,

嗨lovejoey,

您无法模拟无重置引脚的重置信号,原因智能片段在通过UART下载时询问重置引脚是为了使引导加载程序运行,然后智能Snippest在跟踪时立即将二进制文件推入UART。STX = 0x02(一旦智能代码段检测到来自引导加载程序的STX字符,它指示在控制台上检测到“重置信号),这表示UART引导过程的开始。因此,在复位信号命中(用户必须推动而不是智能片段)之后,UART引导序列开始和智能代码段遵循关于UART引导过程的AN-B-001文档中描述的过程。只要启用了580中的调试器模块,JTAG不需要重置,因此它可以直接访问580。如果禁用DebaGuger模块(使用睡眠580运行FW),您将再次需要重置按钮,按顺序运行主引导程序和主引导加载程序以重新启用调试器模块。

我明白你想用一个信号来切换重置引脚,但据我所知,智能片段或CLI编程器上没有东西可以为您提供该选项。

谢谢mt_dialog.

迈克
离线
最后一次露面:4年7个月前
加入:2015-07-23 16:51
嗨MT_dialog,

嗨MT_dialog,

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

我们使用的CLI命令有:
command1 ='smartsnippets.exe -type booter -chip da14580-01 -com_port comnum-gpio p0_4 -uart p0_0 -file%userprofile%/ smartsnippets / compresent / programmer_es5.bin

command2 ='smartsnippets.exe -Type OTP -Chip DA14580-01 -Com_Port Comnum -Baudrate 57600-GPIO P0_4 -UART P0_0 -UART%userProfile%/ smartsnippet / resources / programmer_es5.bin -cmd write_custom_code -file / path / to / otpfirmware / path / to / otpfirmware / path / to / otpfirmware/file.hex -offset 0x0'

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

第一个命令的目的是什么?是设置FTDI芯片来了解DA14580如何与DA14580通信,接收到STX字节后发送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标题,这是在第3个命令中完成的。在我们开始发布此十六进制文件之前,是否需要从DA14580收到任何东西?我们需要遵循什么启动序列吗?这里的过程是什么?

在OTP头被编程后,我们现在可以硬重置DA14580,并期望我们的固件加载,是这样的吗?

mt_dialog.
离线
最后一次露面:三个月三个星期前
职员
加入: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中。

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

当你烧毁了OTP头中的OTP和应用程序标志后,当你点击重置按钮时,OTP应用程序应该被加载到syram中。

谢谢mt_dialog.