使用智能片段时,重置按钮不起作用

9个帖子/ 0新
最后发表
离线
最后看到:6年12个月前
加入:2014-06-18 15:28
使用智能片段时,重置按钮不起作用

你好,

我有一个十六进制文件。我下载了最新版本的智能片段。当我使用UART引导下载十六进制文件时,重置按钮不起作用。我试着按住按钮,也不是工作。

它只说“超时:超过15000秒未检测到复位信号。”
为什么?有人能帮我吗?

JE_Dialog
离线
最后看到:4周21小时前
工作人员
加入:2013-12-05 14:02
你好JJW, Which开发

你好JJW,你使用的是哪个开发板:是主板/子板还是新的BASIC开发都在一个套件?

BR JE_Dialog

tapio
离线
最后看到:2年2个月前
加入:2014-03-24 7
你好,

你好,

我有一个类似的问题,使用SmartSnippet将.hex文件下载到SPI Flash,基本板上。
以下是在html帮助章节中说明的,但我不清楚“特殊固件下载”的意思是什么。
我得到类似的超时消息。

----------从用户指南“SPI Flash Programmer”:

用户可以选择一个十六进制或二进制图像文件,以便将其刻录到SPI Flash存储器。可以采取以下措施:

连接:特殊的固件被下载到芯片上,允许用户与SPI Flash存储器交互。这是启用其他操作之前的强制步骤。请注意,此固件与下载的固件不同,当按下“连接”按钮在OTP图像标签。如果出现“CRC不匹配”,请再次按“连接”按钮,然后按单板上的硬件复位按钮,重新启动下载过程。

水龙头。

klim9531
离线
最后看到:4年7个月前
加入:2015-01-28 23:52
嗨JE_Dialog /瞬,

嗨JE_Dialog /瞬,

我试图烧我的自定义PCB上的OTP,以便我可以测试它作为一个独立的设备。

当我尝试从SmartSnippet刻录OTP时,我得到相同的错误“超时:重置信号未检测到超过16000毫秒”(完整的日志在下面关闭)。

我正在使用Murata P2ML3078主板(带我的自定义PCB)。

我的自定义PCB仔细阅读主板上的PIN标题,我认为我基于我可以从Keil IDE连接和下载/运行调试模式下载/运行我的固件的事实,我认为我所有所需的连接。

在我的PCB上,我使用P0-0和P0_1来连接到FTDI芯片,我在SmartSnippets中做出这些选择,以及P0_7来控制VPP(我也跳过VPP从主板到我的PCB)。

将范围放在RST引脚(也跳到我的PCB)上,我可以看到PIN基于原理图,只要应该像它一样进入3V。

我还尝试使用P0_4和P0_5主板引脚,并运行它们到我的P0_0和P0_1引脚,只是为了看看是否有区别。我试过打开SmartSnippets只使用UART和在UART/SPI模式,我甚至试过JTAG模式。

另外,我尝试完全断开我的PCB,然后运行SmartSnippets。错误是完全相同的,即使没有连接BLE板。这使我相信我的PCB上没有正确连接的东西,但如果是这样,为什么我可以在调试模式下运行我的PCB没有任何问题?他们不是在调试和OTP编程中使用相同的连接吗?(增加了燃烧OTP的VPP跳线)。

完整的连接列表(10),我目前有:
主板<->我的PCB(引脚在DA14580)
--------------------------------------------
P0_4 (tx) <-> p0.0 (alt_uart_tx)
p0_1 (alt_uart_rx) <->
P0_2(CTS)< - > P0_2(CTS)
P0_3 (RTS) < - > P0_3 (RTS)
vcc_ext < - > vbat
GND < - > GND
VPP < - > VPP
SWDIO < - > SWDIO
SWCLK < - > SWCLK
RST < - > RST

你看到我错过了吗?

完整的日志信息:
[INFO @15-09-23 12:46:00]头记录已从十六进制文件sps_device.hex中移除。
[INFO @15-09-23 12:46:00]从文件sps_device.hex中读取14212字节。
[INFO @15-09-23 12:46:10]固件文件C:\Users\Klim\SmartSnippets\resources\programmer_ES5.bin被选择用于下载。
[INFO @15-09-23 12:46:10] connected to COM31 port has successfully opened。
[info @ 15-09-23 12:46:10]开始下载程序...
[动作@ 15-09-23 12:46:11]请按电路板上的硬件重置按钮开始下载过程。
[ERROR @15-09-23 12:46:26] Timeout: Reset signal not detected for more than 16000 msecs。
[INFO @15-09-23 12:46:26] Successfully disconnected from port COM31.输出说明
[INFO @15-09-23 12:46:26]下载固件到单板失败。

感谢您的任何输入,--- klim
*注意——出于某种原因,论坛帖子将字符串“P0_underscore_0”替换为字符串“****”。所以我必须把它编辑成“P0-0”,这样它才能显示出来。有趣。

MHv_Dialog
离线
最后看到:三个月四个星期前
工作人员
加入:2013-12-06 15:10
你好,

你好,

您所在地区的一位对话框代表已经离线联系您进行故障排除。从你的描述中我看你并没有错过任何明显的步骤。

klim9531
离线
最后看到:4年7个月前
加入:2015-01-28 23:52
嗨mhv_dialog,

嗨mhv_dialog,

谢谢你的回复,我意识到我可以通过回退我的代码调试(从OTP),然后使用Booter实用程序中的文件下载功能更容易从SmartSnippets测试事情。

我得到相同的结果,我的PCB不允许下载,从主板上删除我的PCB给出相同的错误信息。

但是,如果我现在将BLE子卡连接到主板(我的PCB仍然断开),那么我就能够成功地将十六进制文件下载到子卡。

当我找到解决办法时,我会在这里发帖,谢谢你的帮助,——klim

klim9531
离线
最后看到:4年7个月前
加入:2015-01-28 23:52
嗨mhv_dialog,

嗨mhv_dialog,

首先,感谢Dialog对我们的大力支持!Dialog的Mikael打电话给我并帮助我调试我的设置,这非常有帮助。特别是,有机会问一些关于开发环境的关键问题,真的帮助我理解“应该”发生什么。对话应用程序注释的本质是,它们假定一切都将按照指示进行。所以,当事情出错时,我经常会挠头。但也许这只是我的想法。无论如何,下面是我之前所做的简要描述,并结合我在电话中所学到的,希望我在复述中是正确的:

1.以前,您应该使用Keil IDE为项目构建.hex文件。我们在SmartSnippets的所有人都将指向.hex文件并将其加载到我们的BLE芯片中。但是,您应该知道,在您可以将您的.hex文件刻录到OTP之前,您需要在项目目录的根目录中更改DA14580_CONFIG文件中的某些设置。有几个定义指令,名称表明您想要更改它,但事实证明,至少需要更改的唯一需要更改的是需要的行“#define development_debug 1”更改为0.其他可以留下的其他部分:“#undef app_boot_from_otp”和“#undef read_nvds_struct_from_otp”。在进行这些更改后,请务必清理/重建项目。

2.通过SmartSnippets使用JTAG连接来编写OTP是可能的(也是最简单的)。这意味着我跳过的一系列连接是不必要的,特别是UART线P0_4 (TX), P0_5 (RX), P0_2(CTS),和P0_3(RTS)。我把它们断开。现在,当你启动SmartSnippets,你应该会出现一个“打开项目/创建项目”屏幕。如果没有先前试图利用SmartSnippets与您的项目,您需要点击“新”,然后给项目起一个名字,别担心你的名字给这个项目,我们真正关心的是,你选择“JTAG”单选按钮,此时你应该看到JLINK中心盒子里的序列号。在JLINK序列号框中打一个勾,选择你的芯片类型(我的是DA14580-01),然后点击“打开”。

3.在左侧面板中选择OTP图标(鼠标移到它们上面看看它们是什么),然后在那里,选择OTP图像标签,浏览到你的。hex文件(应该在一个文件夹名为'out'在你的项目)。点击“连接”按钮,然后,如果你真的觉得勇敢,点击“燃烧”。您应该在日志窗口中看到文件被下载,并开始刻录(遗憾的是,我的项目仍然存在问题,我将在下面描述)。

4.在OTP头标签(如果标签没有显示,再次点击“OTP程序员”按钮在左侧面板),首先点击“连接”,然后点击“读取记忆”。这将从您的芯片读取一些值(如XTAL校准trim),已经在工厂设置。在窗口的顶部有两个Application Flag参数,需要将它们更改为“Yes”。还有很多其他的值,我被告知我不需要改变它们中的任何一个,所以我没有。部分原因是我的DA14580芯片实际上已经被Murata“重新封装”了(正如我在之前的文章中所描述的),他们已经完成了包括外部16MHz xtal在内的工作。所以我的情况可能不适用于你,请认识到这一点。现在你只需要点击“刻录”就可以了。

现在让我继续我悲伤的故事,因为在跟随上述内容之后,我仍然无法编程我的芯片。唐。

不幸的是,某些东西没有正确,但不是一种灾难性的方式。对于主要的十六进制文件的OTP刻录变得准备好了,然后它宣布了一个错误(其中一些非常糟糕的拼写),只是停止。幸运的是,我在VPP线上有一个探针,看看它是否提升了电压,即从未发生过电压,所以我仍然能够在调试模式下使用芯片,因为我在此之前完成。不确定这是问题,我们没有将6.8V获得6.8V到我的PCB,或者如果刻录失败,则在该部分之前失败。

这是当我点击“连接”和“刻录”时生成的日志。

[信息@ 15-09-25 12:17:17]无法衡量总IR LEN。TDO是恒定的。
[信息@ 15-09-25 12:17:17]无法衡量总IR LEN。TDO是恒定的。
[INFO @15-09-25 12:17:17]找到ID为0x0BB11477的SWD-DP
[INFO @15-09-25 12:17:17]发现Cortex-M0 r0p0, Little endian。
[INFO @15-09-25 12:17:17] FPUnit: 4 code (BP)插槽和0字面值插槽
[INFO @15-09-25 12:17:17] BTLE设备已选择。
[INFO @15-09-25 12:17:30]十六进制文件sps_device.hex中的头记录已被删除。
[INFO @15-09-25 12:17:30]从文件sps_device.hex中读取14276字节。
[info @ 15-09-25 12:18:05]固件文件c:\ users \ klim \ smartsnippets \资源\ jtag_programmer.bin已被选中以下载。
[INFO @15-09-25 12:18:05] Cortex-M:调试器试图将PC设置为奇数值。从0x000800B5到0x000800B4的校正寄存器值
[INFO @15-09-25 12:18:05]成功下载固件到单板。
[INFO @15-09-25 12:19:18]开始烧录地址0x40000的14276字节的数据。
[ERROR @15-09-25 12:19:18]附加错误信息在地址0x81FEC (MSB first): FF FF FF FE
[ERROR @15-09-25 12:19:19]内存烧录失败。

任何建议,你有如何测试系统进一步将非常感激。

谢谢,克林

MT_dialog
离线
最后看到:4个月5天前
工作人员
加入:2015-06-08 34
嗨klim,

嗨klim,

这个错误最可能的原因可能是OTP编程供应。请检查VPP上的电源,确保使用6.8伏电压。

由于MT_dialog

klim9531
离线
最后看到:4年7个月前
加入:2015-01-28 23:52
嗨mt_dialog,

嗨mt_dialog,

好的,我有解决问题的解决方案上面描述的问题,可能这是罪魁祸首一直与原始的“重置按钮不工作”。在对话中再次感谢Mikael,以帮助我弄清楚问题。

在SmartSnippet中,“板设置”选项卡具有选择“GPIO引脚,可控制晶体管启用高电压......”默认为P0_7。显然,如果没有正确设置,那么我们将无法获得刻录OTP所需的6.8V。---但---- I /我们已经知道这一点,我已经在Murata PCB原理图中验证,P0_7确实控制了6.8V晶体管。

我所犯的致命错误便是假设Murata主板上的P0_7是由SmartSnippets所控制。我正在查看控制流从SmartSnippets开始,传递到Murata主板上的FTDI芯片,然后携带到我的PCB上的DA14580。这与OTP燃烧无关。

原来,在OTP烧,P0_7引脚上的Murata主板实际上是由P0_7引脚*FROM the DA14580 on MY PCB*控制。所以解决方案非常简单,我运行了一个从PCB上的P0_7引脚到Murata主板上的P0_7引脚的跳线,然后,轰——我能够闪现OTP并成功地从它启动。

所以我的设备现在可以独立运行,做它应该做的事情。这是一个非常令人兴奋的里程碑,我希望我的奋斗笔记也能帮助其他开发者做到这一点。

干杯,klim