你好,
在我们的应用程序中,我们有一个通过SPI接口连接到DA14580的外设。它每秒产生250个中断,在每个中断中我们必须读取19字节的数据。大概有5KB的数据。我们必须添加一些错误处理字节到这个数据,并将其传输到android设备。所以最终的数据大小大概是6KB / s。现在我们在项目中使用through_eval_periph示例。但是我们看到有数据丢失,同时也观察到数据传输停止1到2秒,然后继续。
我们观察到BLE和SPI的正确工作,直到数据是5KB的1/3,也就是说,如果我们只从SPI读取1/3的数据,在添加1KB的headers后发送它。
我们需要澄清,
1)处理器是否能够处理这个速度的处理?如果不是,解决方案是什么?
2)为什么我们会看到数据丢失?是BLE的吞吐量还是SPI的通信吞吐量?
3) DA14580中可以使用一些多任务吗?如何?
4)还有其他例子可以用来获得更好的性能吗?
谢谢,
Bharath
设备:
嗨Bharath,
1)没有简单的答案:“如果能够处理的处理器处理”这取决于处理,想做和实现代码的M0运行在一个16 mhz时钟,如果处理器有能力完成你的任务,取决于您的应用程序。在传感器将每4ms产生一个中断的场景中,我不知道你将如何服务BLE事件和服务你的SPI中断,最有可能的是你将从SPI丢失中断,因此数据。
2)我不能够肯定地告诉如果你丢失的数据从SPI或祝福,最有可能如果580获得数据并将保佑通道我不认为保佑负责丢失的数据,我胡乱猜想你不中断的传感器。你检查过SPI的数据都转到580了吗?
3) 580使用一个简单的内核来服务消息,消息的执行是串行的,在580中没有多任务的可能性。
4)关于另一个推入BLE连接的数据量的例子是DSPS的例子。
由于MT_dialog