你好支持,
我一直在努力熟悉生产线工具板和相关软件。我能够成功执行RF测试,并执行我的DA14580设计所需的所有编程(使用Murata TypeZY模块)。我需要在电路上采用单位自检时,在生产线上,通过UM-B-041读取我遇到了客户测试命令ID描述第29页。说明说明:“在固件中有一个函数客户可以添加自己的代码来处理数据。“
我看过prod_test项目的代码,但没有能够确定我可能添加自己的测试代码的位置。我想做的是依次切换3个GPIO引脚并执行I2C事务。这是测试/编程过程中的正确位置,要做这一点,我应该在哪里开始希望能够实现这个功能?
A related question is should I be using the prod_test code from SDK3 or SDK 5? My design uses SDK5, but I saw a post recommending the use of the SDK3 version. Any advice you could provide related to these issues would be greatly appreciated, Thanks.
设备:
嗨,dave.renzo.
回答问题1:
>从PLT源代码中检查文件“host_hci.c”中的函数“hci_custom_action”。
//如果用于DA1458X芯片,则相应的HCI CMD为“01 D0 40 01 01(PARAM_DATA).opcode为0x40D0
>从SDK检查文件“Customer_Prod.c”中的“hci_custom_action_cmd”函数
//添加客户代码。现在默认代码只返回事件。
答案2:
Regarding as prod_test code, recommend for SDK3 if you do not intend to make any change.
但对于SDK5,据我所知,Abnoraml结果可以在RF接收测试中获得。前任。错误率可能超过100%。Cource,它是与代码的核实部分相关的错误。
the fix is as follows:
在文件\ 5.0.3 \ projects \ target_apps \ prod_test \ prod_test \ src \ custom_gtl_hci.c
struct hci_ccevt * gtl_hci_tx_evt_func(uint8_t *长度)
{
......
case llm_le_test_end_cmp_evt:
操作码= HCI_LE_TEST_END_CMD_OPCODE;
param_len += HCI_CCEVT_LETSTEND_RETPAR_LEN;
//添加开始*******************
struct llm_test_end_cmd_complete * s =(struct llm_test_end_cmd_complete *)(gtl_env.p_msg_tx-> param);
co_write16p(&(p_evt-> param [1]),co_htobs(s-> nb_packet_receive));
//添加结尾*************************
休息;
我有一些自定义代码running but now the production line tool gui is reporting that the custom test is failing. I am setting a gpio high, looping nop's for approximately 2 seconds then setting the gpio low. The remainder of the function is untouched so I am confused as to why it is now reporting failure.
我希望能够以半秒的间隔顺序地将3个GPIO引脚缩短。做这个的最好方式是什么?我可以使用简单的计时器API吗?再次感谢您的帮助,非常感谢。
我现在正在使用PWM计时器而不是简单的计时器API,但却遇到了问题。我能够转动GPIO,但似乎没有脱离。任何想法如何导致这个?
嗨,戴夫.
You mentioned that PWM does not work ?
此外,由于PC工具软件的超时检查,可能不会建议在函数“HCI_Custom_Action_cmd”中添加任何耗时的代码,该代码在等待返回事件的PC工具的软件中检查。
You can set a flag, then do the workload in the main function, or use the timer callback function.
PWM计时器似乎正在运作,但如果我尝试做一些如下:
1)打开GPIO
2)等1秒
3)关闭GPIO
4)等1秒
GPIO将高速,然后2秒后,软件将报告失败。对于实际的测试序列,我要按时为20ms -30ms的方式切换GPIO。甚远设置标志并在主函数中执行测试代码,在主要功能中我应该这样做吗?
嗨,戴夫
您只能在此处添加测试。
int main_func(void)
{
...............
/*
************************************************************************************
*主循环
************************************************************************************
* /
while(1)
{
#if HAS_TOGGLE_GPIO
cust_gpio_fsm();
#万一
......
嗨对话框,
我试图在下面的代码中添加以在SDK5中使用我的自定义测试使用XTAL修剪,但我仍然在我知道的电路板上获取XTAL TRIM失败消息,我知道将其传递给标准未修饰的prod_test.bin
//添加开始*******************
struct llm_test_end_cmd_complete * s =(struct llm_test_end_cmd_complete *)(gtl_env.p_msg_tx-> param);
co_write16p(&(p_evt-> param [1]),co_htobs(s-> nb_packet_receive));
//添加结尾*************************
从日志:
| 17:07:06.476 | DUT_PDLL_XTAL_TRIM_INIT |启动| XTAL Trim操作初始化。
| 17:07:06.477 | dut_pdll_xtal_trim_start |开始| XTAL Trim操作开始。
| 17:07:36.478 | dut_pdll_rx_timeout |错误|设备未在PDLL消息请求上回复。当前设备状态= [12]。
| 17:07:36.479 | dut_pdll_xtal_trim_failed |失败| Xtal Trim失败。当前设备状态= [12]。
在SDK5中还有什么需要改变吗?
Best wishes,
托马斯
Hi thomasburton,
您添加的代码是用于应用于5.0.3上介绍的错误的修复程序,并且与CBT测试仪的测试有关,但您在Prod_test项目中的修复程序无法使用5.0.4,也没有使用它以应用自定义测试。
谢谢mt_dialog.