prod_test.bin Customer Test Command ID

9 posts / 0 new
最后一篇文章
戴夫。意甲首轮
离线
最后一次见到:2 years 6 months ago
已加入:2015-10-08 13:21
prod_test.bin Customer Test Command ID

您好,支持人员,

我一直在努力熟悉生产线工具板和相关软件。我能够成功地执行射频测试,并完成我的DA14580设计(使用村田型ZY模块)所需的所有编程。当电路在生产线上时,我需要合并一个单元自检,通过阅读UM-B-041,我在第29页看到了客户测试命令ID描述。描述中说:“在固件中有一个功能,客户可以添加自己的代码来处理他们喜欢的数据。”

我已经查看了prod\u测试项目的代码,但是还不能确定我可以在哪里添加自己的测试代码。我想做的是依次切换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.

设备:
工友对话
离线
最后一次见到:1天19小时前
已加入:2016-04-27 07:07
你好,戴夫。伦佐

你好,戴夫。伦佐
回答问题1:
>检查PLT源代码中文件“host\u hci.c”中的函数“hci\u custom\u action”。
//如果用于DA1458X芯片,则相应的hci命令为“01 D0 40 01 01(param\u data)。操作码为0x40D0
>检查SDK中“customer\u prod.c”文件中的函数“hci\u custom\u action\u cmd”
//在内部添加客户代码。现在,默认代码只返回事件。

对问题2的回答:
Regarding as prod_test code, recommend for SDK3 if you do not intend to make any change.
但对于SDK5,据我所知,在射频接收测试中可能会出现异常结果。例如,错误率可能超过100%。当然,这是与代码计算部分有关的错误。

the fix is as follows:
在文件\5.0.3\projects\target\u apps\prod\u test\prod\u test\src\custom\u gtl\u hci.c中

结构hci\u ccevt*gtl\u hci\u tx\u evt\u func(uint8\u t*长度)
{
......
案例LLM\u LE\u TEST\u END\u CMP\u EVT:
操作码= HCI_LE_TEST_END_CMD_OPCODE;
param_len += HCI_CCEVT_LETSTEND_RETPAR_LEN;
//添加开始*******************
struct llm\u test\u end\u cmd\u complete*s=(struct llm\u test\u end\u cmd\u complete*)(gtl\u env.p\u msg\u tx->param);
co_write16p(&(p_evt->param[1]),co_htobs(s->nb_packet_received));
//添加结束*************************
中断;

戴夫。意甲首轮
离线
最后一次见到:2 years 6 months ago
已加入:2015-10-08 13:21
我有一些自定义代码

我有一些自定义代码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吗?再次感谢您的帮助,非常感谢。

戴夫。意甲首轮
离线
最后一次见到:2 years 6 months ago
已加入:2015-10-08 13:21
我现在正在使用pwm定时器

我现在使用的是pwm定时器而不是easy timer api,但遇到了一些问题。我可以打开gpios,但似乎不能关闭。有没有想过是什么原因造成的?

工友对话
离线
最后一次见到:1天19小时前
已加入:2016-04-27 07:07
嗨,戴夫.

嗨,戴夫.
You mentioned that PWM does not work ?
此外,任何耗时的代码都不建议添加“hci\u custom\u action\u cmd”函数,因为PC工具的软件中存在超时检查,正在等待返回事件。
You can set a flag, then do the workload in the main function, or use the timer callback function.

戴夫。意甲首轮
离线
最后一次见到:2 years 6 months ago
已加入:2015-10-08 13:21
脉宽调制定时器似乎是

PWM计时器似乎确实在工作,但如果我尝试执行以下操作:

1) 打开GPIO
2) 等待1秒钟
3) 关闭GPIO
4) 等待1秒钟

gpio将变高,2秒后软件将报告故障。对于实际的测试序列,我想切换GPIO的时间为20ms-30ms。至于在main函数中设置标志和执行测试代码,我应该在main函数中的什么位置执行此操作?

工友对话
离线
最后一次见到:1天19小时前
已加入:2016-04-27 07:07
嗨,戴夫

嗨,戴夫

您只能在此处添加以供测试。

int main函数(void)
{
...............
/*
************************************************************************************
*主回路
************************************************************************************
*/
while(1)
{
#if HAS_TOGGLE_GPIO
cust_gpio_fsm();
#结束
......

托马斯伯顿
离线
最后一次见到:3 years 4 months ago
已加入:2016-01-13 14:46
嗨,对话,

嗨,对话,

我试图添加下面的代码,在SDK5中使用XTAL-trim进行我的自定义测试,但是我仍然在板上收到XTAL-trim-fail消息,我知道在标准的未修改产品上传递它_测试.bin

//添加开始*******************
struct llm\u test\u end\u cmd\u complete*s=(struct llm\u test\u end\u cmd\u complete*)(gtl\u env.p\u msg\u tx->param);
co_write16p(&(p_evt->param[1]),co_htobs(s->nb_packet_received));
//添加结束*************************

从日志中:

|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 |超时|错误|设备未回复PDLL消息请求。当前设备状态=[12]。
|17:07:36.479 | DUT | PDLL | XTAL | TRIM |失败| XTAL TRIM失败。当前设备状态=[12]。

SDK5还有什么我需要更改的吗?

Best wishes,

托马斯

MT\u对话框
离线
最后一次见到:1个月3周前
工作人员
已加入:2015-06-08 11:34
Hi thomasburton,

Hi thomasburton,

您添加的代码是针对一个应用于5.0.3上引入的bug的修复,该bug与CBT tester的测试相关,您在5.0.4的prod\u测试项目上实现的修复没有任何用处,也没有任何用处来应用自定义测试。

谢谢你的对话