嗨,对话框中,
我在plt fw上工作,以认证我的自定义模块(实现DA14681)。
此fw已使用pro dk的uart进行验证。
但是在认证期间,在我的最终产品上,我没有访问uart端口,因此我应该找到另一种方法来控制fw。
所有我需要的是模块作为一个未经调制的tx在特定的频率。
是否有可能在通电时处于这种默认状态。最后,我将使用唤醒中断来切换频率。
所有控件都直接链接到dgtl代码中的uart接口,
另一个解决方案是通过usb控制dgtl,但正如我检查的代码,这似乎不容易可行。
谢谢你的帮助。
致以最亲切的问候
垫
设备:
嗨matthieuW,
抱歉,你的问题有点笼统。所以你能解释一下吗?如果您能为您的问题提供更多的信息,那将是非常有帮助的。例如,你说你没有权限是什么意思?这与引脚的配置或其他什么有关吗?
谢谢,PM_Dialog
抱歉,给你添乱了。
我想说的是,我没有物理访问的uart端口或我的最终产品上的任何其他引脚。
我能在我的产品上使用的唯一界面是一个按钮。因此,我想让plt固件在启动时开始传输未调制的数据,然后最终使用按钮切换未调制的tx的频率。
考虑到这一点,我添加了一个小函数到dglt源代码,但没有成功,
空白hci_unmodulated_tx (uint8_t频率)
{
uint16_t操作码= 0 x83fc;
Uint8_t param[2] = {0x54,0};
参数[1]=频率;
uint8_t cmd_data [6] = {0 x01 0 x83 0 xfc, 0 x02, 0 x54频率};
size_t param_len = 2; / / sizeof(参数);
OS_ASSERT (uart。味精= = NULL);
/ / uart。msg = dgtl_msg_alloc(DGTL_PKT_TYPE_HCI_CMD, sizeof(dgtl_pkt_hci_cmd_t) + param_len);
/ / memcpy (uart。味精- >数据、cmd_data sizeof (cmd_data));
dgtl_msg_prepare_hci_cmd (uart.msg操作码、param_len参数);
push_frame_to_queue ();
/ / uart_start_packet ();
//对prodk进行调试
ad_uart_write_async(uart.dev,uart.msg->data,sizeof(dgtl_pkt_hci_cmd_t) + param_len,uart_tx_done, NULL);
}
我正在pro dk上调试这个。
谢谢
垫
嗨matthieuW,
你能告诉我这在Pro-DK上是否有效吗?
谢谢,PM_Dialog
嗨,对话框中,
在prodk上,我仍然需要通过uart发送命令,以便将芯片设置为未调制的tx,
当我试图在dgtl队列中推送命令而不使用uart时,会出现一个严重的错误。
我试图调试发生了什么,但plt fw是相当复杂的理解。
是否有办法在启动时将fw设置为默认的未调制tx ?
matw
嗨matthieuW,
我正在处理你的问题,我需要内部检查一下。我会尽快和你联系。
谢谢,PM_Dialog
亲爱的对话框,
我找到了一个“肮脏”的解决方案,暂时解决了我的问题。
我直接在ble_mgr_task中设置cmd:
SE_DGTL
if (ulNotifiedValue & mainBIT_DGTL){/ /设置参数
dgtl_msg_t * dgtl_msg;
// dgtl_msg = dgtl_receive(DGTL_QUEUE_HCI);
uint16_t操作码= 0 xfc83;
Uint8_t param[2] = {0x54,0x13};
/ / uart。MSG = dgtl_msg_alloc(uart.frame_header.pkt_type, header_len + param_len);
dgtl_msg = dgtl_msg_alloc(DGTL_PKT_TYPE_HCI_CMD, sizeof(dgtl_pkt_hci_cmd_t) + 2);
dgtl_msg_prepare_hci_cmd (dgtl_msg,操作码2参数);
然后在系统初始化完成后通知任务。
我可以管理这样的认证。
谢谢你的帮助
马修
嗨matthieuW,
很高兴你解决了你的问题,谢谢你的暗示。
问候,PM_DIalog