你好,
我花了几天时间来弄清楚为什么DA14531 prod_test不能在Development Kit-Pro和Development Kit-USB上可靠运行,如果通信配置为TX=P0_0和RX=P0_1。我发现用于设置UART引脚的port_sel变量没有初始化。在大多数情况下,包含port_sel变量的内存中包含一个与P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL常量匹配的零值,应用程序按照预期工作。但有时,内存包含一个非零值,应用程序通信失败。
通过在文件user_peripher_setup .c的函数peripher_init()的开头添加以下代码,我成功地解决了这个问题:
port_sel = UART_PORT_SEL;
并将这一行添加到user_peripher_setup .h中,就在enum的定义之后:
#定义UART_PORT_SEL P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL;
致以最亲切的问候。
Jean-Christian de Rivaz
关键词:
设备:
嗨Jean-Christian,
请参考AN-B-077: DA14531蓝牙直接测试模式申请说明来自DA14531支持网页。您将发现在P00和P01上从两线UART模式运行prod_test时应该遵循的适当步骤和配置。非常感谢您的意见和反馈,但是您提到的修改是不需要的。只需遵循以下步骤。我用DA14531 Pro-DK在我这边测试了它。
1.请按照SDK6.0.12提供的方式,在没有任何修改的情况下打开prod_test项目。\
2.在user_peripher_setup .h中,请按如下方式更改gpio配置。有关更多信息,请参考AN的4.1软件安装。
3.编译项目并将fw下载到System-RAM中。这可以通过3个选项来实现:
- KEIL IDE按“启动/停止调试会话按钮”两次
SmartSnippets工具箱(SST)启动器
- SST RF-Master固件下载工具
4.下一步是配置相应的SST。因此,打开SST和“Board Setup”。您应该为P0_0和P0_1选择UART配置。有关更多信息,请参阅4.1.1节使用RF Master设置Rx/Tx测试模式。
5.现在,您应该能够使用射频主控了!
谢谢,PM_Dialog
谢谢你的回复。
我也遵循了这一指示。这在大多数情况下是可行的,但由于port_sel变量未初始化,结果不可靠。如果port_sel碰巧不为零,则端口引脚永远不会配置为UART操作,通信也不会工作。在SDK/6.0.12.1020.2/projects/target_apps/prod_test文件夹下,port_sel变量没有被初始化为P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL常量。
SDK/6.0.12.1020.2/projects/target_apps/prod_test$ egrep -r port_sel
prod_test / src / config / user_periph_setup.h:走读生uint8_t port_sel;
prod_test / src /平台/ user_periph_setup.c: uint8_t port_sel __SECTION_ZERO(“prodtest_uninit”);
prod_test / src /平台/ user_periph_setup.c:开关(port_sel)
prod_test / src /平台/ user_periph_setup.c:开关(port_sel)
注意:由于某些原因,这个问题在DA14531“Kit-USB”板上比在DA14531“Kit-Pro”板上更经常发生。
嗨Jean-Christian,
谢谢你的建议。我将在内部检查并测试您建议的解决方案。再次感谢您的输入!
谢谢,PM_Dialog