不接收所有字节定制DSP应用

学到更多常见问题解答教程

5帖/ 0新
最后发表
AO
离线
最后一次露面:1年3个月前
加入时间:2016年6月2日20:58
不接收所有字节定制DSP应用

嗨对话框,

我目前正在开发利用与自定义板DA14580芯片DSPS应用固件。在这个项目中,我使用的是GPIO引脚,以开启和关闭外部微控制器,以节省电力,当微控制器不使用。当我需要使用微控制器,我送一个简短的命令来使用移动电话的DA14580时,DA14850然后唤醒外部微控制器与GPIO引脚,树立UART,发送简短的命令,然后等待接收数据发送到手机上。

如果没有开启/关闭外部微控制器,我可以发送数据来回的微控制器和手机之间的成功。不过,我想,当我在运行时重新配置引脚,它是导致数据接收,并且有时导致DA14580得到的地方挂了时,会丢失。(如果看门狗激活发生看门狗复位,并且电话从蓝牙断开,设备不再通告如果看门狗禁用)

在启动时,在“set_pads_function”销将被设置为GPIO输出低,以防止在外部微控制器的引脚的任何电压。

当我连接到设备,从手机,我禁用休眠模式。

在功能“user_sps_server_data_rx_ind_handler”,我开始一个计时器我用它来处理我的申请过程。

计时器回调发生的第一次,我配置引脚打开我的外部微控制器,并建立了我的UART引脚。TX,RX,CTS和RTS。(我有HW流量控制所定义的)

几秒钟后,出于测试目的,我禁用情况下,它造成任何问题的定时器。然后,我送传出命令发送到外部微控制器。我可以看到,外部微控制器已正确地接收和处理的命令。

外部微控制器然后发送3000+字节到240个字节的块的DA14580。

在这一点上,我可以看到所有字节已发送了UART上的范围。该DA14580会回应两种任何一种途径:
1.设备断开从DSPS移动应用和卡在某个状态。
2.如果该设备不会停留。我可以看看字节,可将DSP接收的移动应用程序的数量,将有〜在过去的1940年字节接收文件。

如果我初步建立起引脚作为UART和有“上”微控制器时,DA14580是能够处理240字节块无硬件流控制功能。所述DA14580还能够处理与流控制240字节块无发送期间设定RTS销启用。

有一对夫妇的事情,我怀疑可能是造成这个问题:
有什么需要我时,我在运行时重新配置从GPIO引脚到UART办?
有什么我需要与SPS调度做,当我重新配置可能会造成我不能够处理所有3000+字节的脚?

任何帮助,感谢您的时间

关键词:
设备:
PM_Dialog
离线
最后一次露面:1小时23分钟前
员工
加入时间:2018年2月8日11:03
嗨AO,

嗨AO,

让我检查一下你的问题,我会尽快回复您。

谢谢,PM_Dialog

PM_Dialog
离线
最后一次露面:1小时23分钟前
员工
加入时间:2018年2月8日11:03
嗨AO,

嗨AO,

正如你所说,你可以根据自己的应用程序的需要修改了DSPS参考应用程序代码,所以它是有点困难Ø复制您的问题。能否请你让我知道代码卡?

  • “如果看门狗激活发生看门狗复位,手机是从蓝牙断开,设备不再做广告,如果看门狗被禁止”

能否请您启用WDOG,运行与热调试器附加固件?这是WDOG到期的原因是什么?

  • “我认为,当我在运行时重新配置引脚,它是导致数据接收,并且有时导致DA14580得到的地方挂了时,会丢失。”

你如何重新配置​​在运行时的销?你叫periph_init()?

  • 如果你有一个自定义板与DA14580芯片,你可以请让我知道,使用默认时DSPS应用是功能齐全?

  • “这有什么,我需要与SPS调度做,当我重新配置可能会造成我不能够处理所有3000+字节码?”

我不太清楚你的意思这个问题,所以能不能请你解释这多一点点?

谢谢,PM_Dialog

AO
离线
最后一次露面:1年3个月前
加入时间:2016年6月2日20:58
我没有一直在努力

我没有一直对这个特定问题最近,但很快就会又回到了它。让我迅速什么,我现在就可以回答:

1.我怎样才能看到WDOG到期的理由为何?

2.什么是重新配置引脚的最佳方法?我打电话,改变如下所示的引脚功能。另外,标记“sam_on”在periph_init()是用来决定是否设置引脚GPIO或UART。我觉得每个设备从睡眠唤醒时间periph_init()被调用,这是真的吗?

空隙turn_off_sam(无效)
{
GPIO_SetPinFunction(GPIO_UART1_TX_PORT,GPIO_UART1_TX_PIN,INPUT PID_GPIO);
GPIO_SetPinFunction(GPIO_UART1_RX_PORT,GPIO_UART1_RX_PIN,INPUT PID_GPIO);
的#if(UART_HW_FLOW_ENABLED)
GPIO_SetPinFunction(GPIO_UART1_RTS_PORT,GPIO_UART1_RTS_PIN,INPUT PID_GPIO);
GPIO_SetPinFunction(GPIO_UART1_CTS_PORT,GPIO_UART1_CTS_PIN,INPUT PID_GPIO);
#ENDIF // UART_HW_FLOW_ENABLED

GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_0,OUTPUT,PID_GPIO,真正的);

sam_on = FALSE;
}

3. DSPS是全功能的,只要我不打开/关闭外部微控制器。

4.我已经注意到,SPS调度前和睡觉后重新初始化。是有可能完全DEINIT调度的SPS,然后在需要时初始化SPS?理想情况下,我希望能够取消初始化引脚/ SPS不需要的时候,需要时再重新初始化一切。不需要SPS当未连接的装置,以便将被deinitialized此时间。在一个方面,我将发送一个命令来从所述移动设备的DA14580,则DA14580将需要初始化SPS并打开外部微控制器和通信,然后关闭所述微控制器和取消初始化SPS中。

PM_Dialog
离线
最后一次露面:1小时23分钟前
员工
加入时间:2018年2月8日11:03
何鳌,

何鳌,

1.当看门狗超时,NMI_HandlerC被触发。请从我们的支持门户检查下面的教程,以了解如何可以调试您的固件。你应遵循的程序是被描述成教程一样的:HTTPS://www.wsdof.com/sites/default/files/training_08_deb ...要知道,最大WDOG超时为2.6秒,我们正在使用SDK此值。

2.你是正确的,periph_init,每次执行该芯片唤醒时间。处在睡眠模式配置您正在使用?能否请您确保塔的periph_init正确触发,重新配置正确了?我的建议是引脚重新配置成user_periph_setup.c文件

关于你的最后一个问题,我不完全知道你究竟意味着什么。你可以请你澄清这多一点点?你是什​​么意思与“是不需要的SPS时未连接设备上,以便将deinitialized这个时间。”?我的建议是尝试运行固件与连接调试帽子调试模式,并设法找到了固件卡。

谢谢,PM_Dialog