跳到主要内容

燃烧OTP时DA14531上的不同行为

DA14530和DA14531.

3个月前

燃烧OTP时DA14531上的不同行为

张贴了Pierrej @ Kickma ......20分 6回复
0旋转

你好,

我正在尝试使用DA14531开发一个应用程序,以通过BLE控制RGB。

DA14531设置为旁路模式HW-WISE,定义了CFG_POWER_MODE_BYPASS。cfg_development_debug也定义。
LED在引脚0,10和11上有线。(RST和SWIO由固件禁用)
在PIN 6上有一个按钮。

LED由PWM使用定时器2控制。
按钮链接到基于10秒的BLE特性的PWM中断设置PWM的占空比。
默认睡眠模式设置为ARCH_EXT_SLEEP_ON。

软件从LED关闭开始。按钮中断禁用睡眠模式,设置LED的占空比,并在计时器0上启用回调。
回调递增一个计数器,而达到10秒钟并达到10秒钟时执行以下操作:
- 关闭LED
- 将系统放入深度睡眠,没有OTP副本
- 关闭计时器0

在Sysram中通过JTAG闪烁时,代码正好工作,但是在刻录OTP时,行为奇怪:
- BLE工作正常,可以通过远程设备写入特性,并且值随时间保留值。
- 当BLE是广告时,LED每秒左右闪烁。
- 当连接和服务发现完成时,LED非常快速闪烁。
- 完成连接时,LED已打开。
- 断开远程设备在再次启动广告时重新启动闪烁。
- 按钮不会点亮LED。
- LED颜色与存储在BLE特性中的值无关。

OTP刻录是通过SmartSnippets Toolbox完成的,标题是工具箱提出的标题,而没有修改的应用程序标志1和2所示,它们被设置为是。

我已经能够通过“忘记”将Ctrl_sys_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg [debugger_reg。
请注意,如果通过软件均值断开JTAG(在闪烁时关闭Debug选项),则它只重现行为。如果我在连接的同时拔下jtag,一切都正常工作。

3个月前

PM_DIALOG.

你好呀,

感谢您在我们的论坛上发布和发布。

当设备从System-RAM引导时,您提到应用程序代码正好工作。你有没有在没有调试器的情况下测试它?

>>>我已经能够通过“忘记”将CTRL_SYS_REG [DEBUGGER_ER_ENABLE]设置为0并将JTAG断开通过闪烁软件,在SYSRAM中闪烁,同时再现此确切行为。

因此,使用声明,您的意思是,如果Ctrl_sys_reg [debugger_Enable]在应用程序代码中未设置为0,则在通过JTAG下载FW和System-Ram时,您可以复制此问题。我的理解是否正确?

如果Ctrl_sys_reg [debugger_Enable]设置为0并且调试器断开连接,您是否可以复制此项?

>>>请注意,如果JTAG通过软件均值断开连接,则只能重现行为(在闪烁时关闭调试选项)。如果我在连接的同时拔下jtag,一切都正常工作。

您是否意味着您可以在从系统-RAM启动时复制此功能,调试器已断开连接?

问题:如果在应用程序代码中禁用调试器并从SPI闪存启动,您是否可以重现此行为?

谢谢,PM_DIALOG.

3个月前

Pierrej @ Kickma ...... 20分

>>>当设备从System-RAM引导时,您提到应用程序代码正好工作。你有没有在没有调试器的情况下测试它?

两者都在两种情况下工作。

>>>因此,使用声明,您的意思是,如果Ctrl_sys_reg [debugger_Enable]在应用程序代码中未设置为0,则在通过JTAG下载FW和System-Ram时,您可以复制此问题。我的理解是否正确?

是的,但我的意思是当断开与闪烁的软件中的断开时,更精确:

  • ctrl_sys_reg [debugger_Enable]未设置为0和“关闭调试会话”选项选中智能代码箱工具箱==>错误复制
  • ctrl_sys_reg [debugger_Enable]未设置为0和“关闭调试会话”选项,取消选中在Smart Scepets Toolbox ==>良好行为中
  • ctrl_sys_reg [debugger_Enable]设置为0 ==>良好的行为,无论“关闭调试会话”状态。

物理拔出JTAG不会影响任何情况下的行为。

>>>如果Ctrl_sys_reg [debugger_Enable]设置为0并且调试器断开连接,您是否可以复制此项?

>>>问题:如果在应用程序代码中禁用调试器并从SPI闪存启动,您是否可以重现此行为?

我的设置中没有闪存

编辑 :

只是一个精确度:什么时候CTRL_SYS_REG [Debugger_ENABLE]未设置为0,引脚10上的LED线路不遵循其他LED的行为,并且在这种情况下必须略微点亮,因为在这种情况下必须在SWIO上设置PIN 10。

3个月前

Pierrej @ Kickma ...... 20分

我设法通过删除延长的睡眠使其在OTP中工作。

3个月前

PM_DIALOG.

你好呀,

很高兴你解决了山雀。但是在扩展睡眠模式期间,这听起来不保留一些声音。

谢谢,PM_DIALOG.

1个月前

Aprocha46. 90分

你好呀,

我有一个类似的问题,但对于我来说,我有我的代码是dev pro套件的spi闪存

当我在没有调试器的情况下运行我的代码时,我只会获得第一个广告,然后它停止广告,而其他任务正常运行(从外部GPIO,I2C通信唤醒)。请注意,我正在使用扩展睡眠模式,就像其他客户一样。

您能否澄清在运行和没有调试器之间运行之间的行为的预期差异?除其他内容中,在保存的RAM中未声明的变量可以保存在调试器模式中吗?

谢谢

1个月前

PM_DIALOG.

嗨aprocha46,

谢谢你在这里的评论。将在这个论坛线程上跟进:https://www.dialog-seminile.com/produ雷电竞官网登录cts/bluetooth-low-energy?post_id=11798#tab-support_tab_content.

谢谢,PM_DIALOG.