你好,
我有一个十六进制文件。我下载了Smart Snippets的最新版本。当我使用UART引导下载十六进制文件时,Reset按钮不起作用。我试着按住按钮,它也不工作。
它只说“超时:超过15000秒未检测到复位信号。”为什么?有人能帮帮我吗?
您好JJW,您使用的是哪个开发板:是主板/ Daugtherboard还是在一个套件中的所有新的基本开发?
BR JE_DIALOG.
我有一个类似的问题,使用SmartSnippets下载。hex文件到SPI Flash,在基本板上。以下是在html帮助章节中说明的,但我不清楚“特殊固件下载”的意思是什么。我得到类似的超时消息。
----------来自用户指南“SPI Flash程序员”:
用户可以选择.hex或二进制图像文件,以便将其刻录到SPI闪存。可以使用以下操作:
连接:特殊固件下载到芯片,以允许用户与SPI闪存进行交互。在启用其他操作之前,这是一个强制性的步骤。请注意,此固件与在OTP图像选项卡上按“Connect”按钮时下载的固件不同。如果“CRC不匹配”显示,请再次按“Connect”按钮,然后按下电路板上的硬件重置按钮重新启动下载过程。
轻敲。
嗨JE_Dialog /瞬,
我试图烧我的自定义PCB上的OTP,以便我可以测试它作为一个独立的设备。
我得到相同的错误“超时:重置信号未检测到超过16000 msecs”,当我试图烧毁从Smartsnippets的OTP(完整的日志在下面)。
我使用的Murata P2ML3078主板(与我的定制PCB)。
我的自定义PCB被跳转到主板上的引脚标头,我相信我已经有了所有需要的连接,基于我可以从Keil IDE连接并在调试模式下下载/运行我的固件的事实。
在我的PCB上,我使用P0-0和P0_1来连接到FTDI芯片,我在SmartSnippets中做出这些选择,以及P0_7来控制VPP(我也跳过VPP从主板到我的PCB)。
把一个范围在RST引脚(也跳到我的PCB),我可以看到引脚进入3V,正如它应该,基于原理图。
我还尝试使用P0_4和P0_5主板引脚,并运行它们到我的P0_0和P0_1引脚,只是为了看看是否有区别。我试过打开SmartSnippets只使用UART和在UART/SPI模式,我甚至试过JTAG模式。
另外,我尝试完全断开我的PCB,然后运行SmartSnippets。错误是完全相同的,即使没有连接BLE板。这使我相信我的PCB上没有正确连接的东西,但如果是这样,为什么我可以在调试模式下运行我的PCB没有任何问题?他们不是在调试和OTP编程中使用相同的连接吗?(增加了燃烧OTP的VPP跳线)。
我目前拥有的完整连接列表(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接地< - >接地VPP < - > VPPSWDIO < - > SWDIOSWCLK < - > SWCLKRST < - > RST
你觉得我遗漏了什么线索吗?
完整的日志信息:[INFO @ 15-09-23 12:46:00]报头记录已从十六进制文件SPS_DEVICE.HEX中删除。[INFO @15-09-23 12:46:00]从文件sps_device.hex中读取14212字节。[INFO @15-09-23 12:46:10]固件文件C:\Users\Klim\SmartSnippets\resources\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]请按单板上的硬件复位按钮启动下载过程。[ERROR @15-09-23 12:46:26] Timeout: Reset signal not detected for more than 16000 msecs。[信息@ 15-09-23 12:46:26]成功断开了COM31端口。[INFO @15-09-23 12:46:26]下载固件到单板失败。
谢谢你的建议,——klim*注意 - 出于某种原因,论坛POST将字符串“P0_UNDERSCORE_0”替换为字符串“****”。所以我不得不将它编辑为“p0-0”所以它会显示。有趣的。
您所在地区的一位对话框代表已经离线联系您进行故障排除。从你的描述中我看你并没有错过任何明显的步骤。
嗨MHv_Dialog,
谢谢你的回复,我意识到我可以通过回退我的代码调试(从OTP),然后使用Booter实用程序中的文件下载功能更容易从SmartSnippets测试事情。
我得到相同的结果,我的PCB不允许下载,从主板上删除我的PCB给出了相同的错误消息。
但是,如果我现在将BLE子卡连接到主板(我的PCB仍然断开),那么我就能够成功地将十六进制文件下载到子卡。
当我找到解决方案时,我会在这里发布,谢谢你的帮助, - klim
首先,感谢Dialog对我们的大力支持!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.使用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的工作。所以我的情况可能不适用于你,请意识到这一点。所以现在你需要做的就是点击“刻录”,你应该完成。
现在让我继续我的悲伤的故事,因为在遵循了以上所有的,我仍然不能编程我的芯片。见鬼。
不幸的是,有些事情做得不对,但不是灾难性的。主十六进制文件的OTP燃烧准备就绪,然后它宣布一个错误(其中有一些非常糟糕的拼写),然后就停止了。幸运的是,我在VPP线上有一个探针,看看它是否提高了电压,但从未发生过,所以我仍然能够在调试模式下使用芯片,就像我之前一直在做的那样。不确定这是否是问题,我们没有得到6。8v到我的PCB,或者如果烧伤失败之前,它到达那部分。
这是当我点击“连接”和“刻录”时生成的日志。
[INFO @15-09-25 12:17:17]无法测量总红外len。TDO恒定高。[INFO @15-09-25 12:17:17]无法测量总红外len。TDO恒定高。[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_device.hex中的头记录已被删除。[信息@ 15-09-25 12:17:30]从文件sps_device.hex中读取14276字节。[INFO @15-09-25 12:18:05]固件文件C:\Users\Klim\SmartSnippets\resources\jtag_program .bin已被选择用于下载。[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字节的数据。[ERROR @15-09-25 12:19:18]附加错误信息在地址0x81FEC (MSB first): FF FF FF FE[错误@ 15-09-25 12:19:19]记忆刻录失败。
任何建议,你有如何测试系统进一步将非常感激。
谢谢,klim
嗨klim,
此错误的最可能原因可能是OTP编程供应。您可以查看VPP上的电源,并确保应用6.8伏。
由于MT_dialog
嗨MT_Dialog,
好的,我有我的问题的解决方案上面描述,可能这是罪魁祸首一直与原始的“复位按钮不工作”。再次感谢Dialog的Mikael帮助我解决了这个问题。
在SmartSnippets中,“板设置”标签有一个选择“GPIO引脚,控制晶体管使能高电压…”默认为P0_7。显然,如果这不是正确的设置,那么我们将不会得到6.8V,这是必要的燃烧OTP。——但是——我/我们已经知道这一点,我已经在村田PCB原理图中证实,P0_7确实控制6.8V晶体管。
我所犯的致命错误便是假设Murata主板上的P0_7是由SmartSnippets所控制。我正在查看控制流从SmartSnippets开始,传递到Murata主板上的FTDI芯片,然后携带到我的PCB上的DA14580。这与OTP燃烧无关。
原来,在OTP烧,P0_7引脚上的Murata主板实际上是由P0_7引脚*FROM the DA14580 on MY PCB*控制。所以解决方案非常简单,我运行了一个从PCB上的P0_7引脚到Murata主板上的P0_7引脚的跳线,然后,轰——我能够闪现OTP并成功地从它启动。
所以我的设备现在函数独立,并确实应该做的事情。一个非常令人兴奋的里程碑,我希望我对我的斗争的笔记会帮助其他一些开发商也达到这一点。
欢呼,克林
您好JJW,您使用的是哪个开发板:是主板/ Daugtherboard还是在一个套件中的所有新的基本开发?
BR JE_DIALOG.
你好,
我有一个类似的问题,使用SmartSnippets下载。hex文件到SPI Flash,在基本板上。
以下是在html帮助章节中说明的,但我不清楚“特殊固件下载”的意思是什么。
我得到类似的超时消息。
----------来自用户指南“SPI Flash程序员”:
用户可以选择.hex或二进制图像文件,以便将其刻录到SPI闪存。可以使用以下操作:
连接:特殊固件下载到芯片,以允许用户与SPI闪存进行交互。在启用其他操作之前,这是一个强制性的步骤。请注意,此固件与在OTP图像选项卡上按“Connect”按钮时下载的固件不同。如果“CRC不匹配”显示,请再次按“Connect”按钮,然后按下电路板上的硬件重置按钮重新启动下载过程。
轻敲。
嗨JE_Dialog /瞬,
我试图烧我的自定义PCB上的OTP,以便我可以测试它作为一个独立的设备。
我得到相同的错误“超时:重置信号未检测到超过16000 msecs”,当我试图烧毁从Smartsnippets的OTP(完整的日志在下面)。
我使用的Murata P2ML3078主板(与我的定制PCB)。
我的自定义PCB被跳转到主板上的引脚标头,我相信我已经有了所有需要的连接,基于我可以从Keil IDE连接并在调试模式下下载/运行我的固件的事实。
在我的PCB上,我使用P0-0和P0_1来连接到FTDI芯片,我在SmartSnippets中做出这些选择,以及P0_7来控制VPP(我也跳过VPP从主板到我的PCB)。
把一个范围在RST引脚(也跳到我的PCB),我可以看到引脚进入3V,正如它应该,基于原理图。
我还尝试使用P0_4和P0_5主板引脚,并运行它们到我的P0_0和P0_1引脚,只是为了看看是否有区别。我试过打开SmartSnippets只使用UART和在UART/SPI模式,我甚至试过JTAG模式。
另外,我尝试完全断开我的PCB,然后运行SmartSnippets。错误是完全相同的,即使没有连接BLE板。这使我相信我的PCB上没有正确连接的东西,但如果是这样,为什么我可以在调试模式下运行我的PCB没有任何问题?他们不是在调试和OTP编程中使用相同的连接吗?(增加了燃烧OTP的VPP跳线)。
我目前拥有的完整连接列表(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
接地< - >接地
VPP < - > VPP
SWDIO < - > SWDIO
SWCLK < - > SWCLK
RST < - > RST
你觉得我遗漏了什么线索吗?
完整的日志信息:
[INFO @ 15-09-23 12:46:00]报头记录已从十六进制文件SPS_DEVICE.HEX中删除。
[INFO @15-09-23 12:46:00]从文件sps_device.hex中读取14212字节。
[INFO @15-09-23 12:46:10]固件文件C:\Users\Klim\SmartSnippets\resources\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]请按单板上的硬件复位按钮启动下载过程。
[ERROR @15-09-23 12:46:26] Timeout: Reset signal not detected for more than 16000 msecs。
[信息@ 15-09-23 12:46:26]成功断开了COM31端口。
[INFO @15-09-23 12:46:26]下载固件到单板失败。
谢谢你的建议,——klim
*注意 - 出于某种原因,论坛POST将字符串“P0_UNDERSCORE_0”替换为字符串“****”。所以我不得不将它编辑为“p0-0”所以它会显示。有趣的。
你好,
您所在地区的一位对话框代表已经离线联系您进行故障排除。从你的描述中我看你并没有错过任何明显的步骤。
嗨MHv_Dialog,
谢谢你的回复,我意识到我可以通过回退我的代码调试(从OTP),然后使用Booter实用程序中的文件下载功能更容易从SmartSnippets测试事情。
我得到相同的结果,我的PCB不允许下载,从主板上删除我的PCB给出了相同的错误消息。
但是,如果我现在将BLE子卡连接到主板(我的PCB仍然断开),那么我就能够成功地将十六进制文件下载到子卡。
当我找到解决方案时,我会在这里发布,谢谢你的帮助, - klim
嗨MHv_Dialog,
首先,感谢Dialog对我们的大力支持!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.使用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的工作。所以我的情况可能不适用于你,请意识到这一点。所以现在你需要做的就是点击“刻录”,你应该完成。
现在让我继续我的悲伤的故事,因为在遵循了以上所有的,我仍然不能编程我的芯片。见鬼。
不幸的是,有些事情做得不对,但不是灾难性的。主十六进制文件的OTP燃烧准备就绪,然后它宣布一个错误(其中有一些非常糟糕的拼写),然后就停止了。幸运的是,我在VPP线上有一个探针,看看它是否提高了电压,但从未发生过,所以我仍然能够在调试模式下使用芯片,就像我之前一直在做的那样。不确定这是否是问题,我们没有得到6。8v到我的PCB,或者如果烧伤失败之前,它到达那部分。
这是当我点击“连接”和“刻录”时生成的日志。
[INFO @15-09-25 12:17:17]无法测量总红外len。TDO恒定高。
[INFO @15-09-25 12:17:17]无法测量总红外len。TDO恒定高。
[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_device.hex中的头记录已被删除。
[信息@ 15-09-25 12:17:30]从文件sps_device.hex中读取14276字节。
[INFO @15-09-25 12:18:05]固件文件C:\Users\Klim\SmartSnippets\resources\jtag_program .bin已被选择用于下载。
[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字节的数据。
[ERROR @15-09-25 12:19:18]附加错误信息在地址0x81FEC (MSB first): FF FF FF FE
[错误@ 15-09-25 12:19:19]记忆刻录失败。
任何建议,你有如何测试系统进一步将非常感激。
谢谢,klim
嗨klim,
此错误的最可能原因可能是OTP编程供应。您可以查看VPP上的电源,并确保应用6.8伏。
由于MT_dialog
嗨MT_Dialog,
好的,我有我的问题的解决方案上面描述,可能这是罪魁祸首一直与原始的“复位按钮不工作”。再次感谢Dialog的Mikael帮助我解决了这个问题。
在SmartSnippets中,“板设置”标签有一个选择“GPIO引脚,控制晶体管使能高电压…”默认为P0_7。显然,如果这不是正确的设置,那么我们将不会得到6.8V,这是必要的燃烧OTP。——但是——我/我们已经知道这一点,我已经在村田PCB原理图中证实,P0_7确实控制6.8V晶体管。
我所犯的致命错误便是假设Murata主板上的P0_7是由SmartSnippets所控制。我正在查看控制流从SmartSnippets开始,传递到Murata主板上的FTDI芯片,然后携带到我的PCB上的DA14580。这与OTP燃烧无关。
原来,在OTP烧,P0_7引脚上的Murata主板实际上是由P0_7引脚*FROM the DA14580 on MY PCB*控制。所以解决方案非常简单,我运行了一个从PCB上的P0_7引脚到Murata主板上的P0_7引脚的跳线,然后,轰——我能够闪现OTP并成功地从它启动。
所以我的设备现在函数独立,并确实应该做的事情。一个非常令人兴奋的里程碑,我希望我对我的斗争的笔记会帮助其他一些开发商也达到这一点。
欢呼,克林