你好,
I have a hex file. And I downloaded the latest version of the Smart Snippets. When I use the UART boot to download the hex file, the Reset button does not work. I try to hold the button, it does not work, either.
只说“超时:超过15000毫秒未检测到复位信号”
Why? Can someone help me?
您好JJW,您使用的是哪个开发板:是主板/ Daugtherboard还是在一个套件中的所有新的基本开发?
BR JE_DIALOG.
你好,
I am having a similar problem, using SmartSnippets to download .hex file to the SPI Flash, on the Basic board.
以下是在html帮助一章中说明的,但我不清楚“下载特殊固件”的含义。
我收到了类似的超时信息。
----------From User Guide "SPI Flash Programmer":
用户可以选择.hex或二进制图像文件,以便将其刻录到SPI闪存。可以使用以下操作:
连接:特殊固件下载到芯片,以允许用户与SPI闪存进行交互。在启用其他操作之前,这是一个强制性的步骤。请注意,此固件与在OTP图像选项卡上按“Connect”按钮时下载的固件不同。如果“CRC不匹配”显示,请再次按“Connect”按钮,然后按下电路板上的硬件重置按钮重新启动下载过程。
轻敲。
嗨,我的对话/JJW,
我正试图烧我的定制PCB上的OTP,以便我可以测试它作为一个独立的设备。
I am getting the same error "Timeout: Reset signal not detected for more than 16000 msecs" when I try to burn the OTP from Smartsnippets (the complete log is down below).
I am using the Murata P2ML3078 Motherboard (with my custom PCB).
My custom PCB is jumpered to the pin headers on the motherboard, and I believe that I have all the needed connections present, based upon the fact that I can connect from the Keil IDE and download/run my firmware in Debug mode.
在我的PCB上,我使用P0-0和P0\u1连接到FTDI芯片,我在SmartSnippets中进行这些选择,并使用P0\u7控制VPP(我还将VPP从主板跳到了我的PCB)。
Putting a scope on the RST pin (also jumpered to my PCB) I can see that the pin goes to 3V just as it should, based upon the schematic.
我也尝试过使用p0u4&p0u5主板引脚,并将它们运行到我的p0u0&p0u1引脚上,只是想看看这是否有区别。我试过只使用UART和UART/SPI模式打开SmartSnippets,甚至试过JTAG模式。
另外,我尝试完全断开PCB,然后运行SmartSnippets。即使没有连接BLE板,错误也完全相同。这让我相信我的PCB上没有正确连接的东西,但是如果是这样,为什么我可以在调试模式下运行PCB而没有任何问题呢?对于调试和OTP编程,它们不是使用相同的连接吗(添加了VPP跳线(用于燃烧OTP)。
我目前拥有的完整连接列表(10):
主板< - >我的PCB(DA14580上的引脚)
----------------------------------------
P0\U 4(发送)<->P0.0(备用发送)
p0_5(rx)< - > 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<->重新设置
Is there any connection that you see that I am missing?
完整日志消息:
[INFO @ 15-09-23 12:46:00]报头记录已从十六进制文件SPS_DEVICE.HEX中删除。
[INFO@15-09-23 12:46:00]从文件sps\u device.hex读取14212字节。
[INFO@15-09-23 12:46:10]固件文件C:\Users\Klim\SmartSnippets\resources\programmer\u ES5.bin已选择下载。
[信息@ 15-09-23 12:46:10]与COM31端口的连接已成功打开。
[INFO @15-09-23 12:46:10] Started download procedure...
[ACTION @15-09-23 12:46:11] Please press the hardware reset button on the board to start the download process.
[错误@15-09-23 12:46:26]超时:超过16000毫秒未检测到重置信号。
[信息@ 15-09-23 12:46:26]成功断开了COM31端口。
[INFO@15-09-23 12:46:26]无法将固件文件下载到主板。
Thanks for any input, ---klim
*注意 - 出于某种原因,论坛POST将字符串“P0_UNDERSCORE_0”替换为字符串“****”。所以我不得不将它编辑为“p0-0”所以它会显示。有趣的。
你好,
您所在地区的Dialog代表已脱机联系您进行故障排除。从你的描述中我看不出你有什么明显的遗漏。
Hi MHv_Dialog,
感谢您的回复,我意识到,通过将代码还原为debug(来自OTP),然后只使用Booter实用程序中的文件下载功能,我可以从SmartSnippets中更轻松地进行测试。
我得到相同的结果,我的PCB不允许下载,从主板上删除我的PCB给出了相同的错误消息。
但离解决问题更近了一步,如果我现在将BLE子卡连接到主板(我的PCB仍然断开),那么我就能够成功地将十六进制文件下载到子卡。
当我找到解决方案时,我会在这里发布,谢谢你的帮助, - klim
Hi MHv_Dialog,
首先,感谢Dialog的大力支持!Dialog的Mikael打电话给我,帮我调试设置,这非常有帮助。特别是,有机会问一些关于开发环境的关键问题确实帮助我理解了应该发生什么。Dialog app notes的本质是,它们假设一切都将按照指令进行。所以,当事情发生差错时,我常常会挠头。但也许那只是我。不管怎样,下面是我之前所做的简要描述,结合我在电话中所学到的,希望我在复述中得到正确的理解:
1.以前,你应该用凯尔IDE to build a .hex file for your project. All we will be doing here in SmartSnippets is to point to that .hex file and load it into our BLE chip. But you should know that, before you can burn your .hex file to OTP, you need to change some settings in the DA14580_config file in the root of your project directory. There are several define directives where the name suggests that you would want to change it, but as it turns out (for my chip, at least) the only thing that needs to be changed is the line "#define DEVELOPMENT_DEBUG 1" which needs to be changed to a 0. Some others that can be left as they are: "#undef APP_BOOT_FROM_OTP" and "#undef READ_NVDS_STRUCT_FROM_OTP". Make sure to clean/rebuild your project after making these changes.
2.使用JTAG连接通过SmartSnippet是可能的(和最简单),可以使用JTAG连接来编程。这意味着不需要束PF的连接,特别是UART线P0_4(TX),P0_5(RX),P0_2(CTS)和P0_3(RTS)。所以我断开了那些。现在,当您启动SmartSnippet时,应提供“打开项目/创建项目”屏幕。如果您之前没有尝试使用项目使用SmartSnippet,那么您需要点击“新建”并为项目提供一个名称,不要担心您在这里给出项目的名称,我们真正关心的是那么您选择“JTAG”单选按钮,此时您应该在中央框中看到jlink的序列号。在jlink序列号框中放置复选标记,选择芯片类型(我是DA14580-01)然后点击“打开”。
3.在左侧面板中选择OTP图标(鼠标鼠标以查看它们是什么)然后选择Teh OTP图像选项卡并浏览到您的.hex文件(应在项目中名为'OUT'的文件夹中)。点击“连接”按钮,然后,如果您真的感觉勇敢,请单击“刻录”。您应该在文件下载的日志窗口中看到,并刻录开始(可悲,我的项目仍然存在问题,我将描述下面的问题)。
4.在OTP标题选项卡上(如果未显示选项卡,请在左侧面板中的“OTP程序员”按钮上再次单击“连接”,然后单击“从内存中读取”。这将从您的芯片中读取一些在工厂设置的值(如XTAL校准装饰)。在窗口的顶部有两个应用程序标志参数,他们需要更改为“是”。有一堆其他价值观,我被告知我不需要改变任何一个,所以我没有。其中部分是因为Murata实际上已经“重新包装”的部分(如上面的早期帖子所描述的),他们已经完成了包括外部16MHz Xtal的工作。所以我的情况可能不适用于你,请意识到这一点。所以现在你需要做的就是点击“刻录”,你应该完成。
Now let me continue with my sad tale, because after following all the above, I am am still not able to program my chip. Dang.
Unfortunately, something didn't go right, but not in a disastrous way. The OTP burn for the main hex file gets all ready to go, then it announces an error (with some really bad spelling in it) and just stops. Fortunately, I had a probe on the VPP line to see if it raised the voltage, that never happened, so I am still able to use the chip in debug mode as I have been doing prior to this. Not sure if that is the problem, that we are not getting 6.8V to my PCB, or if the burn failed before it got to that part.
这是我点击“连接”然后点击“烧录”时生成的日志。
[INFO @15-09-25 12:17:17] Could not measure total IR len. TDO is constant high.
[INFO @15-09-25 12:17:17] Could not measure total IR len. TDO is constant high.
[Info @ 15-09-25 12:17:17]找到了带ID 0x0BB11477的SWD-DP
[INFO@15-09-25 12:17:17]找到了Cortex-M0 r0p0,Little endian。
[信息@ 15-09-25 12:17:17] FpUnit:4代码(BP)插槽和0个字幕插槽
[INFO@15-09-25 12:17:17]已选择BTLE设备。
[INFO@15-09-25 12:17:30]头记录已从十六进制文件sps\u device.hex中删除。
[信息@ 15-09-25 12:17:30]从文件sps_device.hex中读取14276字节。
[INFO @15-09-25 12:18:05] Firmware File C:\Users\Klim\SmartSnippets\resources\jtag_programmer.bin has been selected for downloading.
[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字节数据的内存。
[错误@15-09-25 12:19:18]地址0x81FEC处的附加错误信息(MSB优先):FF FF FE
[错误@ 15-09-25 12:19:19]记忆刻录失败。
您对如何测试系统的任何建议都将得到很大欣赏。
Thanks, klim
嗨,克里姆,
此错误的最可能原因可能是OTP编程供应。您可以查看VPP上的电源,并确保应用6.8伏。
谢谢你的对话
Hi MT_Dialog,
OK, I have the solution to my problem described above, and possibly this was the culprit all along with the original "reset button not working". Thanks again to Mikael at Dialog for helping me get the problem figured out.
In SmartSnippets, the "Board Setup" tab has a selection for "GPIO pin that controls the transistor enabling high voltage..." which defaults to P0_7. Obviously if this is not correctly set then we will not get the 6.8V that is necessary to burn the OTP. ---But--- I/we already knew this, and I had verified in the Murata PCB schematics, that P0_7 does control the 6.8V transistor.
我犯了一个致命的错误,那就是假设村田主板上的p0u7是由SmartSnippets控制的。我把控制流看作是从SmartSnippets开始,传递到Murata主板上的FTDI芯片,然后传送到PCB上的DA14580。与OTP烧伤无关。
原来,在OTP刻录期间,Murata主板上的P0\u7引脚实际上由PCB*上DA14580的P0\u7引脚*控制。所以解决方法很简单,我在PCB上的p0u7引脚和Murata主板上的p0u7引脚之间运行了一个跳线,然后,砰——我能够刷新OTP并成功地从它引导。
所以我的设备现在函数独立,并确实应该做的事情。一个非常令人兴奋的里程碑,我希望我对我的斗争的笔记会帮助其他一些开发商也达到这一点。
欢呼,克林