Hi,
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,哪个发展board are you using : is it the motherboard/daugtherboard or the new BASIC development all in one kit ?
BR JE_Dialog
Hello,
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":
The user can select a .hex or binary image file in order to burn it to the SPI Flash Memory. The following actions are available:
Connect: Special firmware is downloaded to the chip to allow the user interact with the SPI Flash memory. This is a mandatory step before enabling the other actions. Please note that this firmware is different from the firmware downloaded when pressing the ‘Connect’ button on the OTP Image tab. If a ‘CRC does not match’ shows up, please press the ‘Connect’ button again and then the hardware reset button on the board to restart the download process.
Tap.
嗨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)。
Complete list of connections (10) that I currently have:
Motherboard <-> My PCB (pins on 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] Header records have been removed from hex file 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已被选中以下载。
[INFO @15-09-23 12:46:10] Connection to COM31 port has successfully opened.
[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毫秒。
[INFO @15-09-23 12:46:26] Successfully disconnected from port COM31.
[信息@ 15-09-23 12:46:26]将固件文件下载到电路板上。
Thanks for any input, ---klim
*NOTE-- for some reason, the forum post replaces the string "P0_underscore_0" with the string "****". So I had to edit it to "P0-0" so it would display. Interesting.
Hi,
您所在地区的对话代表已联系您脱机以进行故障排除。据我所知,没有明显的步骤,你可以从你的描述中看到。
Hi MHv_Dialog,
谢谢您的回复,我意识到我可以通过将我的代码恢复到调试(来自OTP)来测试智能人员的事情,然后只使用Booter实用程序中的文件下载功能来测试。
I am getting the same results, my PCB will not allow the download, removing my PCB from the motherboard gives the same error message.
但是,如果我现在将BLE子卡连接到主板(我的PCB仍然断开连接),那么越一步就会弄清楚,然后我能够成功将十六进制文件下载到子卡。
I will post here when I find a solution, thanks for your help, --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. It's possible (and easiest) to program the OTP using just the JTAG connection through SmartSnippets. This means that a bunch pf the connections that I had jumpered were not necessary, specifically the UART lines P0_4 (TX), P0_5 (RX), P0_2(CTS), and P0_3(RTS). So I disconnected those. Now when you start up SmartSnippets, you should be presented with an 'Open Project/Create Project' screen. If you have not previously tried to use SmartSnippets with your project, then you will need to click "New" and give the project a name, don't worry much about the name you give the project here, all we really care about is that you select the "JTAG" radio button, at which point you should see your JLINK's serial number in the center box. Place a check mark in the JLINK serial number box, select you chip type (mine is the DA14580-01) then hit "Open".
3. Select the OTP icon in the left panel (mouse over them to see what they are) then once there, select teh OTP Image tab and browse to your .hex file (should be in a folder named 'out' in your project). Click the "Connect" button, then, if you are really feeling brave, click "Burn". You should see in the log window that the file gets downloaded, and burning begins (sadly, my project still has problems, which I will describe below).
4. On the OTP Header Tab (if the Tab is not showing, click again on the "OTP Programmer" button in the left panel) first click on "Connect" then click on "Read from Memory". This will read from your chip some values (like XTAL calibration trim) that were already set at the factory. At the top of the window there are two Application Flag parameters, they need to be changed to "Yes". There are a bunch of other values, I was told that I didn't need to change any of them, so I didn't. Part of this is because my DA14580 chip is actually already 'repackaged' by Murata (as I described in an earlier post above) and they have done the work of including an external 16MHz xtal among other things. So my situation might not apply to you, please realize this. So now all you need to do is click "Burn" and you should be done.
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.
这是我在“连接”然后“刻录”时生成的日志。
(信息@15-09-25 12:17:17] Could not measure total IR len. TDO is constant high.
(信息@15-09-25 12:17:17] Could not measure total IR len. TDO is constant high.
(信息@15-09-25 12:17:17] Found SWD-DP with ID 0x0BB11477
[信息@ 15-09-25 12:17:17]发现Cortex-M0 R0P0,Little Endian。
(信息@15-09-25 12:17:17] FPUnit: 4 code (BP) slots and 0 literal slots
[Info @ 15-09-25 12:17:17]精选的设备。
[Info @ 15-09-25 12:17:30]报头记录已从十六进制文件SPS_DEVICE.HEX中删除。
(信息@15-09-25 12:17:30] Read 14276 bytes from file sps_device.hex.
(信息@15-09-25 12:18:05] Firmware File C:\Users\Klim\SmartSnippets\resources\jtag_programmer.bin has been selected for downloading.
(信息@15-09-25 12:18:05] Cortex-M: Debugger tries to set PC to odd value. Corrected register value from 0x000800B5 to 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
[ERROR @15-09-25 12:19:19] Memory burning failed.
Any suggestions that you have for how to test the system further would be greatly appreciated.
Thanks, klim
嗨Klim,
The most possible reason for this error is probably the OTP programming supply. Can you please check the supply on the VPP and make sure that a 6.8 volts are applied.
谢谢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引脚,繁荣 - 我能够从中闪光并成功启动它。
So my device now functions standalone, and does what its supposed to do. A very exciting milestone, I hope my notes on my struggles will help some other developers get to this point too.
干杯,klim