你好,我开发我公司的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时钟。
设备:
嗨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