嗨,我开发了我公司的BLE设备。亚博全网
我们为自己的设备提供了PCB。
我差点完成了产品过程。
现在,我们有一个最后的过程,OTP。
但是,存在关键问题。
使用KEIL在SRAM上下载时,该设备运行良好。
但
使用SmartSnippets下载 - 在SRAM上的Booter时,它不起作用。(OTP存储器上的OTP相同,具有错误)
当然,它们应用于相同的* .hex文件。
问题是这一点。
- Timer0无法正常工作。
该设备使用P1_2(I / O功能)使用红外线传感器。
来自Timer0的PWM0应用于P1_2。
期间是源代码0.25ms。
但是,当我使用Booter和OTP下载时,该期限已更改,0.25ms - > 32ms !!
+
此外,当我使用ConnectionManager下载时,它运作良好!
所以,我们不能使用OTP,因为从SmartSnippet下载都有问题。我们需要一个对话的帮助。
为什么,当我使用smartsnippet时,它有问题?
-------------------------------------------------
发展环境
- SDK 5.0.3.
- DK Pro(用于下载)
- CHIP:DA14580
- Keil 5,ConnectionManager(设备运行良好)
- SmartSnippets 3.9(Win64)
- PC:Windows7(X64)
- 我们的设备的PCB具有外部XTAL 16MHz,并为32kHz时钟使用内部RCX20时钟。
设备:
嗨okmegi,
我可以假设的是,它不是一个智能片段问题它是FW下载到设备中的方式,Connection Manager和Keil正在使用JTAG,以便在580中下载FW。另外通过UART连接智能片段连接(由于它也可以通过JTAG连接,请通过JTAG连接到智能代码段并下载FW进行测试)它使用主要引导程序,这是使用580的定时器的主引导加载程序,所以我想或许是这就是为什么你经历这种行为的原因。但是,当在OTP中刻录时,由于引导加载程序永远不会执行,因此不应该是一个问题。尝试执行以下操作,在您的源代码中,在将定时器设置为您喜欢的值之前,请重置如下所示的寄存器:
//清除PWM设置寄存器未生成PWM
timer0_set_pwm_high_counter(no_pwm);- > 0x0.
timer0_set_pwm_low_counter(no_pwm);- > 0x0.
......
//设置pwm timer0'开',timer0'high'和timer0'低'重载值
timer0_set(timer_on,pwm_high,pwm_low);
除此之外,我的烦恼是您使用的引脚,以便输出PWM脉冲。您提到的是P1_2,当XTAL16运行时,不应切换PIN,因为它们与XTAL串扰(检查AN-B-009.PDF部分4.2),当您将脉冲输出到引脚时是通话的吗?请尝试更改PIN并检查问题是否仍然存在,尽管我不认为这与您正在遇到的问题有关。
谢谢mt_dialog.