你好,
我有一个十六进制文件。我下载了最新版的智能片段。当我使用UART引导来下载hex文件时,Reset按钮不起作用。我试着按住按钮,它也不工作。
它只是说,“超时:超过15000毫秒未检测复位信号。”为什么?有人能帮我吗?
你好JJW,你使用的是哪个开发板:是主板/子板还是新的BASIC开发全在一个工具包?
BR JE_Dialog
我有一个类似的问题,使用smarsnippets下载.hex文件到SPI Flash,在基本板。下面以HTML帮助章说,但我不明白的意义是什么“特殊固件下载”。我得到了类似的超时消息。
用户指南:----------
用户可以选择。十六进制或二进制图像文件,以便刻录到SPI闪存。以下操作是可用的:
连接:将特殊固件下载到芯片,以允许用户与SPI闪存进行交互。这是在启用其他操作之前必须执行的步骤。请注意,此固件与按OTP图像标签上的“连接”按钮时下载的固件不同。如果显示“CRC不匹配”,请再次按“连接”按钮,然后板上的硬件复位按钮重新启动下载过程。
水龙头。
嗨JE_Dialog / JJW,
我想烧我的定制PCB上的OTP,这样我可以测试它作为一个独立的设备。
当我试图从Smartsnippets(完整的日志在下面)烧录OTP时,我得到了相同的错误“Timeout: Reset signal not detected for more 16000 msecs”。
我使用的是Murata P2ML3078主板(与我的定制PCB)。
我的定制PCB跳转到主板上的引脚头,我相信我有所有需要的连接,基于我可以从Keil IDE连接并在调试模式下下载/运行我的固件的事实。
在我的PCB我使用P0-0和P0_1连接到FTDI的芯片,我让那些选择在SmartSnippets,与P0_7来控制VPP一起(我也是从主板PCB我跳接VPP)。
在RST引脚上放一个示波器(也跳到我的PCB上),我可以看到引脚按照原理图进入3V。
我已经使用P0_4和P0_5主板插针并运行到我的P0_0 P0_1和引脚,只是为了看看是否作出了区别也试过。我曾尝试使用刚刚UART和UART / SPI模式,我甚至试过JTAG模式开放SmartSnippets。
别的东西,我试着完全断开我的PCB,然后运行SmartSnippets。该错误是完全一样的,即使没有BLE板连接。这使我相信,我没有我的PCB上的东西连接正确,但如果是这样,为什么我不能运行我在调试模式PCB没有任何问题?难道他们不使用Debug和OTP程序相同的连接?(加的VPP跳线烧OTP的)。
我目前拥有的连接的完整列表(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接地< - >接地VPP < - > VPPSWDIO < - > SWDIOSWCLK < - > SWCLKRST < - > RST
你觉得我漏掉了什么联系吗?
完整的日志消息:[INFO @15-09-23 12:46:00] hex文件中的头记录已经被删除。[INFO @ 15-09-23十二时46分00秒]从文件中读取sps_device.hex 14212个字节。[INFO @ 15-09-23 12时46分10秒]固件文件C:\用户\克宁\ SmartSnippets \资源\ programmer_ES5.bin已被选择用于下载。[INFO @15-09-23 12:46:10] COM31端口连接成功。[INFO @15-09-23 12:46:10]开始下载程序…[ACTION @15-09-23 12:46:11]请按单板上的硬件复位按钮,开始下载过程。[错误@ 15-09-23十二时46分26秒]超时:超过16000毫秒没有检测到复位信号。[INFO @15-09-23 12:46:26]成功断开COM31端口连接。[INFO @ 15-09-23 12时46分26秒]无法下载固件文件到电路板上。
谢谢你的意见,klim*注意——由于某些原因,论坛帖子将字符串“P0_underscore_0”替换为字符串“****”。所以我必须把它编辑成"P0-0"这样它才能显示出来。有趣。
您地区的对话代表已经联系您脱机故障排除。有没有明显的步骤,你就错过了,因为我可以从你的描述看。
嗨MHv_Dialog,
感谢您的回复,我意识到,我可以再只使用可在Booter程序文件下载功能恢复我的代码进行调试(从OTP)测试的东西从SmartSnippets更容易一些。
我得到相同的结果,我的PCB将不允许下载,从主板删除我的PCB给出相同的错误消息。
但是,一步步接近得到它想通了,如果我现在BLE子卡连接到主板(PCB我仍然断开连接),那么我能够hex文件下载成功的子卡。
当我找到解决方案的时候我会在这里发布,谢谢你的帮助,klim
首先,由于对话的大力支持!在的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校准修剪),已经在工厂设置。在窗口的顶部有两个Application Flag参数,它们需要更改为“Yes”。还有很多其他的值,我被告知我不需要改变它们,所以我没有。部分原因是我的DA14580芯片实际上已经被Murata“重新包装”了(正如我在前面的文章中所描述的),他们已经完成了包括外部16MHz xtal的工作。所以我的情况可能不适用于你,请了解这一点。现在你只需要点击“刻录”就可以了。
现在让我继续我的悲伤故事,因为在遵循了以上所有,我仍然无法为我的芯片编程。见鬼。
不幸的是,有些事情并不顺利,但并不是灾难性的。主十六进制文件的OTP刻录准备就绪,然后它宣布一个错误(其中有一些非常糟糕的拼写),然后就停止了。幸运的是,我在VPP线路上有一个探针,看看它是否提高了电压,这从来没有发生,所以我仍然能够在调试模式下使用芯片,就像我之前一直在做的那样。不确定是否这是问题,我们没有得到6.8V到我的PCB,或如果烧伤失败之前,它得到的部分。
下面是当我打“连接”然后“烧”时生成的日志。
[INFO @15-09-25 12:17:17]无法测量总的IR len。TDO是恒定的高。[INFO @15-09-25 12:17:17]无法测量总的IR len。TDO是恒定的高。[INFO @15-09-25 12:17:17]找到ID为0x0BB11477的SWD-DP[INFO @ 15-09-25十二时十七分17秒]找到的Cortex-M0 r0p0,小尾数。[INFO @15-09-25 12:17:17] FPUnit: 4个代码(BP)槽,0个文字槽[INFO @ 15-09-25十二时十七分17秒] BTLE设备选择。[INFO @ 15-09-25 12时一十七分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\resources\jtag_programmer.bin已被选择下载。[INFO @15-09-25 12:18:05] Cortex-M: Debugger尝试将PC设置为奇数值。修正寄存器值从0x000800B5到0x000800B4[INFO @ 15-09-25 12时18分05秒]成功下载的固件文件到电路板上。[INFO @ 15-09-25 12点19分18秒]开始在地址0x40000燃烧用14276个字节的数据的存储器。[错误@ 15-09-25十二时19分18秒]在地址0x81FEC Adddittional错误信息(MSB第一):FF FF FF FE[ERROR @15-09-25 12:19:19]内存燃烧失败。
您对如何进一步测试该系统任何建议,将不胜感激。
谢谢,klim
嗨克林姆,
这个错误最可能的原因可能是OTP编程供应。请检查VPP上的电源,确保电压为6.8伏。
谢谢mt_dialog.
嗨MT_Dialog,
好吧,我有上述问题的解决方案,可能这就是最初的“重置按钮不工作”的罪魁祸首。再次感谢Dialog的Mikael帮助我解决了这个问题。
在SmartSnippets中,“Board Setup”选项卡有一个“GPIO引脚,控制晶体管使能高电压…”的选择,默认为P0_7。显然,如果这是不正确的设置,那么我们将得不到6.8V,这是烧OTP所必需的。——但是——我/我们已经知道这一点,我已经在Murata PCB原理图中验证了,P0_7确实控制了6.8V晶体管。
然后,致命的错误,我做了假设在村田主板P0_7正在被SmartSnippets控制。我观察控制流程为开始于SmartSnippets,传递到上村田主板的FTDI芯片,然后携带到DA14580我的PCB上。不要在那里OTP烧伤有关情况。
原来,在OTP烧,村田主板上的针P0_7实际上是由P0_7引脚* FROM THE DA14580我的PCB *控制。因此,解决办法是很简单,我跑从P0_7引脚跳线我的PCB对村田主板P0_7引脚上,并且从它boom--我能够刷新OTP和成功引导。
因此,我的设备现在可以独立运行,并做它应该做的事情。这是一个非常令人兴奋的里程碑,我希望我的笔记能够帮助其他开发者达到这一点。
干杯,klim
你好JJW,你使用的是哪个开发板:是主板/子板还是新的BASIC开发全在一个工具包?
BR JE_Dialog
你好,
我有一个类似的问题,使用smarsnippets下载.hex文件到SPI Flash,在基本板。
下面以HTML帮助章说,但我不明白的意义是什么“特殊固件下载”。
我得到了类似的超时消息。
用户指南:----------
用户可以选择。十六进制或二进制图像文件,以便刻录到SPI闪存。以下操作是可用的:
连接:将特殊固件下载到芯片,以允许用户与SPI闪存进行交互。这是在启用其他操作之前必须执行的步骤。请注意,此固件与按OTP图像标签上的“连接”按钮时下载的固件不同。如果显示“CRC不匹配”,请再次按“连接”按钮,然后板上的硬件复位按钮重新启动下载过程。
水龙头。
嗨JE_Dialog / JJW,
我想烧我的定制PCB上的OTP,这样我可以测试它作为一个独立的设备。
当我试图从Smartsnippets(完整的日志在下面)烧录OTP时,我得到了相同的错误“Timeout: Reset signal not detected for more 16000 msecs”。
我使用的是Murata P2ML3078主板(与我的定制PCB)。
我的定制PCB跳转到主板上的引脚头,我相信我有所有需要的连接,基于我可以从Keil IDE连接并在调试模式下下载/运行我的固件的事实。
在我的PCB我使用P0-0和P0_1连接到FTDI的芯片,我让那些选择在SmartSnippets,与P0_7来控制VPP一起(我也是从主板PCB我跳接VPP)。
在RST引脚上放一个示波器(也跳到我的PCB上),我可以看到引脚按照原理图进入3V。
我已经使用P0_4和P0_5主板插针并运行到我的P0_0 P0_1和引脚,只是为了看看是否作出了区别也试过。我曾尝试使用刚刚UART和UART / SPI模式,我甚至试过JTAG模式开放SmartSnippets。
别的东西,我试着完全断开我的PCB,然后运行SmartSnippets。该错误是完全一样的,即使没有BLE板连接。这使我相信,我没有我的PCB上的东西连接正确,但如果是这样,为什么我不能运行我在调试模式PCB没有任何问题?难道他们不使用Debug和OTP程序相同的连接?(加的VPP跳线烧OTP的)。
我目前拥有的连接的完整列表(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
接地< - >接地
VPP < - > VPP
SWDIO < - > SWDIO
SWCLK < - > SWCLK
RST < - > RST
你觉得我漏掉了什么联系吗?
完整的日志消息:
[INFO @15-09-23 12:46:00] hex文件中的头记录已经被删除。
[INFO @ 15-09-23十二时46分00秒]从文件中读取sps_device.hex 14212个字节。
[INFO @ 15-09-23 12时46分10秒]固件文件C:\用户\克宁\ SmartSnippets \资源\ programmer_ES5.bin已被选择用于下载。
[INFO @15-09-23 12:46:10] COM31端口连接成功。
[INFO @15-09-23 12:46:10]开始下载程序…
[ACTION @15-09-23 12:46:11]请按单板上的硬件复位按钮,开始下载过程。
[错误@ 15-09-23十二时46分26秒]超时:超过16000毫秒没有检测到复位信号。
[INFO @15-09-23 12:46:26]成功断开COM31端口连接。
[INFO @ 15-09-23 12时46分26秒]无法下载固件文件到电路板上。
谢谢你的意见,klim
*注意——由于某些原因,论坛帖子将字符串“P0_underscore_0”替换为字符串“****”。所以我必须把它编辑成"P0-0"这样它才能显示出来。有趣。
你好,
您地区的对话代表已经联系您脱机故障排除。有没有明显的步骤,你就错过了,因为我可以从你的描述看。
嗨MHv_Dialog,
感谢您的回复,我意识到,我可以再只使用可在Booter程序文件下载功能恢复我的代码进行调试(从OTP)测试的东西从SmartSnippets更容易一些。
我得到相同的结果,我的PCB将不允许下载,从主板删除我的PCB给出相同的错误消息。
但是,一步步接近得到它想通了,如果我现在BLE子卡连接到主板(PCB我仍然断开连接),那么我能够hex文件下载成功的子卡。
当我找到解决方案的时候我会在这里发布,谢谢你的帮助,klim
嗨MHv_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校准修剪),已经在工厂设置。在窗口的顶部有两个Application Flag参数,它们需要更改为“Yes”。还有很多其他的值,我被告知我不需要改变它们,所以我没有。部分原因是我的DA14580芯片实际上已经被Murata“重新包装”了(正如我在前面的文章中所描述的),他们已经完成了包括外部16MHz xtal的工作。所以我的情况可能不适用于你,请了解这一点。现在你只需要点击“刻录”就可以了。
现在让我继续我的悲伤故事,因为在遵循了以上所有,我仍然无法为我的芯片编程。见鬼。
不幸的是,有些事情并不顺利,但并不是灾难性的。主十六进制文件的OTP刻录准备就绪,然后它宣布一个错误(其中有一些非常糟糕的拼写),然后就停止了。幸运的是,我在VPP线路上有一个探针,看看它是否提高了电压,这从来没有发生,所以我仍然能够在调试模式下使用芯片,就像我之前一直在做的那样。不确定是否这是问题,我们没有得到6.8V到我的PCB,或如果烧伤失败之前,它得到的部分。
下面是当我打“连接”然后“烧”时生成的日志。
[INFO @15-09-25 12:17:17]无法测量总的IR len。TDO是恒定的高。
[INFO @15-09-25 12:17:17]无法测量总的IR len。TDO是恒定的高。
[INFO @15-09-25 12:17:17]找到ID为0x0BB11477的SWD-DP
[INFO @ 15-09-25十二时十七分17秒]找到的Cortex-M0 r0p0,小尾数。
[INFO @15-09-25 12:17:17] FPUnit: 4个代码(BP)槽,0个文字槽
[INFO @ 15-09-25十二时十七分17秒] BTLE设备选择。
[INFO @ 15-09-25 12时一十七分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\resources\jtag_programmer.bin已被选择下载。
[INFO @15-09-25 12:18:05] Cortex-M: Debugger尝试将PC设置为奇数值。修正寄存器值从0x000800B5到0x000800B4
[INFO @ 15-09-25 12时18分05秒]成功下载的固件文件到电路板上。
[INFO @ 15-09-25 12点19分18秒]开始在地址0x40000燃烧用14276个字节的数据的存储器。
[错误@ 15-09-25十二时19分18秒]在地址0x81FEC Adddittional错误信息(MSB第一):FF FF FF FE
[ERROR @15-09-25 12:19:19]内存燃烧失败。
您对如何进一步测试该系统任何建议,将不胜感激。
谢谢,klim
嗨克林姆,
这个错误最可能的原因可能是OTP编程供应。请检查VPP上的电源,确保电压为6.8伏。
谢谢mt_dialog.
嗨MT_Dialog,
好吧,我有上述问题的解决方案,可能这就是最初的“重置按钮不工作”的罪魁祸首。再次感谢Dialog的Mikael帮助我解决了这个问题。
在SmartSnippets中,“Board Setup”选项卡有一个“GPIO引脚,控制晶体管使能高电压…”的选择,默认为P0_7。显然,如果这是不正确的设置,那么我们将得不到6.8V,这是烧OTP所必需的。——但是——我/我们已经知道这一点,我已经在Murata PCB原理图中验证了,P0_7确实控制了6.8V晶体管。
然后,致命的错误,我做了假设在村田主板P0_7正在被SmartSnippets控制。我观察控制流程为开始于SmartSnippets,传递到上村田主板的FTDI芯片,然后携带到DA14580我的PCB上。不要在那里OTP烧伤有关情况。
原来,在OTP烧,村田主板上的针P0_7实际上是由P0_7引脚* FROM THE DA14580我的PCB *控制。因此,解决办法是很简单,我跑从P0_7引脚跳线我的PCB对村田主板P0_7引脚上,并且从它boom--我能够刷新OTP和成功引导。
因此,我的设备现在可以独立运行,并做它应该做的事情。这是一个非常令人兴奋的里程碑,我希望我的笔记能够帮助其他开发者达到这一点。
干杯,klim