你好,
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”按钮,然后按下电路板上的硬件重置按钮重新启动下载过程。
轻敲。
嗨je_dialog / 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_1连接到FTDI芯片,我将那些在SmartSnippet中的选择以及P0_7控制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.
我还尝试使用P0_4和P0_5主板引脚并将其运行到我的P0_0和P0_1引脚,只是看它是否有所不同。我尝试使用UART和UART / SPI模式使用SmartSnippets,我甚至尝试了JTAG模式。
别的东西,我尝试完全断开我的PCB,然后运行SmartSnippet。误差完全相同,即使没有连接BLE板。这让我相信我没有正确连接的PCB上没有东西,但如果是的话,为什么我可以在没有任何问题的调试模式下运行PCB?他们不使用相同的连接,以便调试和OTP编程吗?(添加VPP跳线燃烧OTP)。
我目前拥有的完整连接列表(10):
主板< - >我的PCB(DA14580上的引脚)
----------------------------------------
p0_4(tx)< - > p0.0(alt_uart_tx)
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 < - > RST
Is there any connection that you see that I am missing?
完整的日志消息:
[INFO @ 15-09-23 12:46:00]报头记录已从十六进制文件SPS_DEVICE.HEX中删除。
[信息@ 15-09-23 12:46:00]从文件sps_device.hex读取14212字节。
[信息@ 15-09-23 12:46:10]固件文件c:\ users \ klim \ smartsnippets \资源\ programmer_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端口。
[信息@ 15-09-23 12:46:26]将固件文件下载到电路板上。
Thanks for any input, ---klim
*注意 - 出于某种原因,论坛POST将字符串“P0_UNDERSCORE_0”替换为字符串“****”。所以我不得不将它编辑为“p0-0”所以它会显示。有趣的。
你好,
您所在地区的对话代表已联系您脱机以进行故障排除。据我所知,没有明显的步骤,你可以从你的描述中看到。
Hi MHv_Dialog,
谢谢您的回复,我意识到我可以通过将我的代码恢复到调试(来自OTP)来测试智能人员的事情,然后只使用Booter实用程序中的文件下载功能来测试。
我得到相同的结果,我的PCB不允许下载,从主板上删除我的PCB给出了相同的错误消息。
但是,如果我现在将BLE子卡连接到主板(我的PCB仍然断开连接),那么越一步就会弄清楚,然后我能够成功将十六进制文件下载到子卡。
当我找到解决方案时,我会在这里发布,谢谢你的帮助, - klim
Hi MHv_Dialog,
首先,由于对话为极大的支持!Mikael在对话框中打电话给我并帮助我调试我的设置,这非常有用。特别是有机会提出一些关于开发环境的关键问题真的帮助我了解*应该发生的事情。对话框应用笔记的性质是他们假设一切都会根据指令进行。所以,当事情变得震动时,我常常抓住我的头。但也许这只是我。无论如何,这里是关于我以前所做的事情的简要说明,结合我在电话期间学到的内容,希望我在Retell中得到它:
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
[信息@ 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]精选的设备。
[Info @ 15-09-25 12:17:30]报头记录已从十六进制文件SPS_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]成功下载了固件文件到电路板。
[信息@ 15-09-25 12:19:18]开始刻录内存,在地址0x40000处使用14276个字节的数据。
[错误@ 15-09-25 12:19:18]地址0x81FEC(MSB第一)AddDitional错误信息:FF FF FF
[错误@ 15-09-25 12:19:19]记忆刻录失败。
您对如何测试系统的任何建议都将得到很大欣赏。
Thanks, klim
嗨Klim,
此错误的最可能原因可能是OTP编程供应。您可以查看VPP上的电源,并确保应用6.8伏。
谢谢mt_dialog.
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.
我制作的致命错误是假设Murata主板上的P0_7由SmartSnippet控制。我正在将控制流程从SmartSnippets开始,传递给Murata主板上的FTDI芯片,然后在我的PCB上携带到DA14580。不是OTP烧伤的情况。
事实证明,在OTP刻录期间,Murata主板上的P0_7引脚实际上由P0_7引脚*从我的PCB *上的DA14580控制。所以解决方案非常简单,我从我的PCB上的P0_7引脚上运行了一个跳线到Murata主板上的P0_7引脚,繁荣 - 我能够从中闪光并成功启动它。
所以我的设备现在函数独立,并确实应该做的事情。一个非常令人兴奋的里程碑,我希望我对我的斗争的笔记会帮助其他一些开发商也达到这一点。
欢呼,克林