从SmartSnippets下载错误

2个职位/ 0个新职位
最后发表
okmegi
离线
最后看到:4年3个月前
加入:2016-03-04 06:18
从SmartSnippets下载错误

你好,我开发我公司的BLE设备。亚博全网

我们自己的设备有一个PCB。
我几乎完成了制作过程。

现在,我们有最后一个过程,OTP。
但是,也存在一些关键问题。

该设备在SRAM上使用KEIL下载时工作良好。

当使用SmartSnippets - Booter在SRAM上下载时,它不能很好地工作。(OTP在OTP内存上是相同的,有一个错误)

当然,它们的应用是相同的*。十六进制文件。

问题是这样的。
- TIMER0不能正常工作。
该设备采用P1_2 (I/O功能)作为红外传感器。
P1_2上应用TIMER0的PWM0。
周期为0.25ms的源代码。

但是,当我使用Booter和OTP下载时,周期改变了,0.25ms -> 32ms !!
+
此外,当我使用ConnectionManager下载时,它工作得很好!

所以,我们不能使用OTP,因为从SmartSnippet下载有问题。我们非常需要Dialog的帮助。

为什么,当我使用smarsnippet时,它有问题?

------------------------------------------------
开发环境
- - - - - - SDK 5.0.3
- DK Pro(下载)
—芯片:DA14580
Keil 5, ConnectionManager(设备工作正常)
SmartSnippets 3.9 (win64)
- PC: Windows7(x64)

-我们的设备的PCB有一个外部XTAL 16MHz,并使用内部RCX20时钟为32kHz时钟。

设备:
MT_dialog
离线
最后看到:7个月5天前
工作人员
加入:2015-06-08 34
嗨okmegi,

嗨okmegi,

我可以假设的是,这不是一个智能片段的问题,它的方式,fw是下载到设备,连接管理器和keil使用JTAG来下载fw在580。另外,当智能片段通过UART连接时(因为它也可以通过JTAG连接,请检查,通过JTAG连接到智能片段,并下载fw进行测试),它使用主引导加载程序,利用580的计时器,所以我想也许这就是为什么你会经历这种行为的原因。但是当在OTP中刻录时,这应该不是问题,因为引导加载程序永远不会执行。在你的源代码中,在将计时器设置为你想要的值之前,请像下面这样重置寄存器:

//清除PWM设置寄存器不产生PWM
timer0_set_pwm_high_counter (NO_PWM);- > 0 x0
timer0_set_pwm_low_counter (NO_PWM);- > 0 x0
...
//设置pwm Timer0 'On', Timer0 'high'和Timer0 'low'重新加载值
timer0_set (TIMER_ON PWM_HIGH PWM_LOW);

除此之外,让我烦恼的是你用来输出PWM脉冲的引脚。你提到的是P1_2,该引脚不应该被切换时,XTAL16操作,因为他们与XTAL串扰(检查AN-B-009.pdf节4.2),ble操作时,你输出脉冲到引脚?请试着改变pin并检查问题是否仍然存在,尽管我不认为这与你正在经历的问题有关。

由于MT_dialog