你好,
我刚收到一个DA14580基本演示套件,并有一些问题激活BT。
成功安装Keil v5,并按照UM-B-048 Getting started文档中的描述运行blinky测试。
然后尝试运行DSPS (DA14580_DSPS_3.150.2___13_2_2015),从我的分销商那里获得应用程序说明(v1.3)。
当我试着遵循§8.4的步骤时,麻烦来了:
编译sps_device项目:OK(0错误(s), 3警告(s))
连接一根FTDI RS232电缆,加上§8.1所述的普通USB电缆
当启动调试会话时,弹出“No Cortex-M SW Device Found”
日志:
负载“…\ \ DA14580_DSPS_3.150.2 \ \ dk_apps \ \ keil_projects \ \ sps \ \ sps_device_K5 \ \ \ \ sps_device.axf对象”
* JLink信息:设备“DA14580”被选中。
将JLink项目文件设置为“…\DA14580_DSPS_3.150.2\dk_apps\keil_projects\sps\sps_device_K5\JLinkSettings.ini”
* JLink信息:设备“DA14580”被选中。
JLink信息:
------------
DLL: V5.02f,编译于2015年10月2日20:51:34
Firmware: J-Link OB-SAM3U128 V1编译于Aug 28 2015 19:26:23
硬件:V1.00
S/ n: 480055335
错误:Flash下载失败-目标DLL已取消
Flash Load在10:39:47结束
问:有件事我不明白:
如果我像图14那样改变跳线,SAM和DA之间就不再有连接了,那么我如何通过串行链接而不是JLink下载十六进制文件呢?或者我错过了什么?
所以我也尝试了SmartSnippets:
这次打开的COM口是串口链接,但是复位按钮没有效果!!
\DA14580_DSPS_3.150.2\dk_apps\keil_projects\sps\sps_device_K5\Objects\sps_device.hex
[INFO @15-12-09 10:50:41] Connection to COM40 port has successfully open。
[INFO @15-12-09 10:50:41]开始下载程序…
[ACTION @15-12-09 10:50:42]请按下单板上的硬件复位按钮开始下载过程。
[ERROR @15-12-09 10:50:57] Timeout:重置信号未检测到超过16000 msecs。
[INFO @15-12-09 10:50:57] Successfully disconnect from port COM40。
[INFO @15-12-09 10:50:57]下载固件文件到单板失败。
接下来是什么?我浏览了几个论坛,发现一些客户可以连接,一些不能,但不知道正确/坏的条件。
顺便说一句,我没有修改原始源代码,da14580_config.h定义了CFG_UART_HW_FLOW_CTRL。我应该改变吗?
谢谢。
PS:
SmartSnippets v3.9 32b
和Keil信息:
IDE-Version:
µV5.17.0.0愿景
版权所有(C) 2015 ARM有限公司和ARM德国有限公司版权所有。
工具版本号:
工具链:MDK-Lite版本:5.17
工具链路径:C:\Keil\ARM\ARMCC\Bin
C编译器:Armcc.exe V5.06 update 1 (build 61)
汇编程序:Armasm.exe V5.06 update 1 (build 61)
链接器/定位器:ArmLink.exe V5.06更新1 (build 61)
Library Manager: ArmAr.exe V5.06 update 1 (build 61)
十六进制转换器:FromElf.exe V5.06更新1 (build 61)
CPU dll: sarmcm3.dll v5.17
DARMCM1.DLL V1.12.0.0
目标DLL: Segger\JL2CM3.dll V2.99.16.0
对话框DLL: TARMCM1.DLL V1.9.0.0
你好,崔,
为了通过jlink下载你的代码,你已经配置了你的目标选项->设置->调试->在SW中,而不是在JTAG选项中,另外在Utilities中检查使用外部工具进行Flash编程的选择。不需要修改代码就可以将代码下载到da。最有可能的是UART连接。请尝试下载带有默认UART跳线的代码,以检查复位功能,并在智能代码段中检查板设置(引脚的配置)。
由于MT_dialog
你好,
是的,是SW模式,我可以在窗口中看到序列号。选择外部工具,空白值(这个技巧不明显,很难找到,我之前在试图运行眨眼的例子时遇到了这个问题)
加载未修改的代码。
在快速入门指南中,Rx/Tx跳线设置为P0_4, P0_5,波特率设置为115k,而在smartsnippet中,P0_4, P0_5设置为57k。
在115k和57k中,我都得到了伪流(见附件),但在外部串行终端中,我在115k中有“[00][00][00][00][00][00][02]”系列
好消息,重置按钮会停止流动
我相信这绝对是UART的问题。但我的错在哪里呢?
当跳线如DSPS申请说明所示时,我最初关于SAM/DA链接的问题是什么?
非常感谢。
你好,崔,
我猜想您的意思是,如果去掉连接TMS和TCK的跳线(图14中的基本配置),那么这些就是jlink的连接。图中基本套件的版本有点过时了。只需放置这两个跳线,你就可以编程你的板。您在终端中看到的数据是正在运行的da的引导加载程序,格式为57k。当从不同的接口启动时,包括不同引脚的不同波特率的uart, da遵循特定的过程。因为你想下载DSPS,只需将TMS和TCK引脚通过jlink连接,并按照应用程序说明中的指示连接ftdi。
由于MT_dialog
你好,崔,
我附上了使用DSPS项目的基本开发工具包和正确配置的图片。
FTDI电缆的线条和颜色请参见DSPS应用说明。尝试使用keil下载项目。在调试选项卡->设置中,在项目选项中(如果基本工具包被keil正确识别),您应该看到这个(附图)。如果您没有得到SW设备IDCODE和名称,请按下开发工具包上的重置按钮,然后再试一次。之后,您必须能够下载开发工具包中的软件。
由于MT_dialog
你好,
我花了一些时间继续制作工具包。
我发现你发来的图片和我按照的说明有一些差异。
在驱动程序设置中,我这边的最大时钟是5MHz,而不是2。
在UART引脚中,CTS(棕色)位于P0_3上,如“DA14580串行端口服务参考应用程序_v1 3”所示,但您的快照显示为P0_7
我相应地改变了配置,结果没有变化。
请注意,由于我再次将TMS TCK放回,所以我能够一步一步地启动和调试软件。实际上,它看起来像是在启动阶段循环,而不是广告。
你好,崔,
无效的FTDI连接在我发送的附件中,有效的是应用说明中的连接(我在运行示例和拍照时使用了IO修改代码)。
我猜软件卡住的地方在while(),在附件中,并等待直到调试器被禁用。
既然您已经恢复了TMS和TCK,并且能够在da中下载代码以查看设备广告,那么您必须在处于睡眠模式时退出调试模式。如果你想在运行时调试,你必须禁用睡眠模式,你可以通过到da14580_config.h和#undef CFG_EXT_SLEEP来做到这一点。
由于MT_dialog
嗨太,
我并不是真的想调试它,我只是想知道它卡在哪里。当我undef CFG_EXT_SLEEP时,由于UART导致硬件故障而执行失败,显然,当我把它放回去(并且不调试)时,我仍然没有广告。
在我的配置或HW中肯定缺少一些基本的东西,但我仔细地遵循了(更正的)说明,并没有取得任何进展。
你好,崔,
即使没有任何UART连接,您也应该能够在基本工具包中下载代码,并正确地运行和宣传DSPS项目。现在唯一的原因,我能想到的结果在硬故障处理程序是没有选择适当的项目为您的芯片。在DSPS应用程序的每个文件夹(设备/主机)中有两个.uvproj文件,一个用于不同的芯片。
sps_device。Uvproj ->是580
sps_device_581。Uvproj ->是581的
如果打开,编译并下载sps_device_581. zip文件。uvproj到580芯片,这将导致一个硬故障处理程序,当然相反。
由于MT_dialog
你好,
实际上我用的是14580。不同之处在于,我在这里运行的是UV5,正如我在第一篇文章中所说的(v5.17, windows 7)
有办法打直拨吗?从我现在开始已经一个月了……
谢谢。
你好,崔,
这听起来很奇怪,至少你能从SDK中下载并正确运行任何其他示例,并检查其广告是否正确,新SDK中的app_ble_barebone或app_ble_peripheral。你能试试吗?
由于MT_dialog
在Keil_5中尝试ble_app_barebone,工作无缝,没有任何类型的修改,只是编译和运行(选择Dialog/DA14580组件);它的广告。
所以它在设置的某个地方。对于DSPS,我不得不在UV5中打开并移植原来的UV4项目,这是它失败的地方吗?
你好,崔,
我附上了一个DSPS应用程序的。hex文件,在我的基本工具包上测试,并用keil5.14编译。请您使用智能片段工具将文件下载到您的基本工具包中,如果您能看到它的广告,请告诉我。我还附加了目标选项->设备,您从keil4迁移到keil5时应该有。
由于MT_dialog
在ble_app_barebone和DSPS之间,散射文件是不同的,ROM区域也是不同的(附)。我应该改变ROM区域,和什么?一旦启动单选按钮被选中,我就不能取消选中它。
你好,崔,
DSPS项目应该按原样运行,你不需要改变源代码或ROM配置中的任何东西。唯一需要更改的是取消定义CFG_EXT_SLEEP,以便在调试模式下执行代码,否则必须退出调试模式才能看到它发布。请尝试运行.hex文件来做一个简单的测试。你也可以上传你的。hex文件或你的项目在我的基本工具包上测试它。您可以在\DA14580_DSPS_3.150.2\dk_apps\keil_projects\sps\sps_device\out目录中找到您的.hex文件。
由于MT_dialog
你好,
你的魔法有用,我的不行。
你好,崔,
在你上传的文件中,你没有包括你的配置文件da14580_config.h, da14580_scatter_config.h, da14580_stack_config.h你可以上传这些文件吗,我能够编译和运行我的配置文件的项目。我也能够运行你发给我的。hex,通过UART下载它,当通过JTAG下载它时,你不会看到它的广告(它只广告几秒钟,然后等待分离调试器-如果你在下载代码时扫描你的手机,你可以拿起前两秒的广告),因为调试器保持连接到它,因为你有CFG_EXT_SLEEP。为了通过uart下载固件,你必须在uart配置中设置引脚(就在j4头旁边),打开智能片段并选择uart (only)选项,进入引导程序并下载e.hex文件。我的项目能够在您的板上运行,因为睡眠模式未定义。
我已经附上了我使用过的文件和你的项目,为了测试它们,你可以将文件夹放在这个目录下DSPS\DA14580_DSPS_3.150.2___13_2_2015_keil5\DA14580_DSPS_3.150.2\dk_apps\keil_projects\sps编译和执行,我还包括在.zip文件中生成的sps_device。项目中的Hex文件和你的。Hex文件。
由于MT_dialog