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.
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
你看到我错过了吗?
完整的日志消息: [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]开始下载程序... [动作@ 15-09-23 12:46:11]请按电路板上的硬件重置按钮开始下载过程。 [错误@ 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]将固件文件下载到电路板上。
感谢您的任何输入,--- 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.
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.
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.
在SmartSnippet中,“板设置”选项卡具有选择“GPIO引脚,可控制晶体管启用高电压......”默认为P0_7。显然,如果没有正确设置,那么我们将无法获得刻录OTP所需的6.8V。---但---- I /我们已经知道这一点,我已经在Murata PCB原理图中验证,P0_7确实控制了6.8V晶体管。
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.
你好JJW,哪个发展board are you using : is it the motherboard/daugtherboard or the new BASIC development all in one kit ?
BR JE_Dialog
Hello,
我有一个类似的问题,使用SmartSnippet将.hex文件下载到SPI Flash,基本板上。
以下内容在HTML帮助章节中表示,但我不清楚“下载特殊固件”的含义是什么。
我得到了类似的超时消息。
----------从用户指南“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,以便我可以将其测试为独立设备。
当我尝试从SmartSnippet刻录OTP时,我得到相同的错误“超时:重置信号未检测到超过16000毫秒”(完整的日志在下面关闭)。
我正在使用Murata P2ML3078主板(带我的自定义PCB)。
我的自定义PCB仔细阅读主板上的PIN标题,我认为我基于我可以从Keil IDE连接和下载/运行调试模式下载/运行我的固件的事实,我认为我所有所需的连接。
在我的PCB我正在使用P0-0和P0_1连接到FTDI芯片,我将那些在SmartSnippet中的选择以及P0_7控制VPP(我还从主板到我的PCB跳投声)。
将范围放在RST引脚(也跳到我的PCB)上,我可以看到PIN基于原理图,只要应该像它一样进入3V。
我还尝试使用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
你看到我错过了吗?
完整的日志消息:
[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]开始下载程序...
[动作@ 15-09-23 12:46:11]请按电路板上的硬件重置按钮开始下载过程。
[错误@ 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]将固件文件下载到电路板上。
感谢您的任何输入,--- 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,
您所在地区的对话代表已联系您脱机以进行故障排除。据我所知,没有明显的步骤,你可以从你的描述中看到。
嗨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
嗨mhv_dialog,
首先,由于对话为极大的支持!Mikael在对话框中打电话给我并帮助我调试我的设置,这非常有用。特别是有机会提出一些关于开发环境的关键问题真的帮助我了解*应该发生的事情。对话框应用笔记的性质是他们假设一切都会根据指令进行。所以,当事情变得震动时,我常常抓住我的头。但也许这只是我。无论如何,这里是关于我以前所做的事情的简要说明,结合我在电话期间学到的内容,希望我在Retell中得到它:
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. 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.
现在让我继续我悲伤的故事,因为在跟随上述内容之后,我仍然无法编程我的芯片。唐。
不幸的是,某些东西没有正确,但不是一种灾难性的方式。对于主要的十六进制文件的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是恒定的。
(信息@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.
[info @ 15-09-25 12:18:05]固件文件c:\ users \ klim \ smartsnippets \资源\ jtag_programmer.bin已被选中以下载。
(信息@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.
您对如何测试系统的任何建议都将得到很大欣赏。
谢谢,克林
嗨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.
嗨mt_dialog,
好的,我有解决问题的解决方案上面描述的问题,可能这是罪魁祸首一直与原始的“重置按钮不工作”。在对话中再次感谢Mikael,以帮助我弄清楚问题。
在SmartSnippet中,“板设置”选项卡具有选择“GPIO引脚,可控制晶体管启用高电压......”默认为P0_7。显然,如果没有正确设置,那么我们将无法获得刻录OTP所需的6.8V。---但---- I /我们已经知道这一点,我已经在Murata PCB原理图中验证,P0_7确实控制了6.8V晶体管。
我制作的致命错误是假设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