嗨对话框,
我目前正在开发利用与自定义板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+字节的脚?
任何帮助,感谢您的时间
嗨AO,
让我检查一下你的问题,我会尽快回复您。
谢谢,PM_Dialog
嗨AO,
正如你所说,你可以根据自己的应用程序的需要修改了DSPS参考应用程序代码,所以它是有点困难Ø复制您的问题。能否请你让我知道代码卡?
能否请您启用WDOG,运行与热调试器附加固件?这是WDOG到期的原因是什么?
你如何重新配置在运行时的销?你叫periph_init()?
我不太清楚你的意思这个问题,所以能不能请你解释这多一点点?
谢谢,PM_Dialog
我没有一直对这个特定问题最近,但很快就会又回到了它。让我迅速什么,我现在就可以回答:
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中。
何鳌,
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