嗨
我正在DA14580的SPI上运行一个小TFT LCD显示器-运行@8MHz的SPI时钟,我试图通过SPI发送数据来显示。我观察到在SPI端口的连续写流中,通过SPI发送的两个8位数据之间仍然有4.8uSec的差距。8位的实际数据大约需要1uSec,但两个数据字节之间的差距是4.8uSec,因此完整的数据传输是预期的5倍长(我附上了显示示波器图像的图像)
我该如何缩小这个差距呢?此时代码中没有其他例程,SPI中断被禁用。我需要尽快运行这个数据传输,我的估计是大约40mSec,但有了这个差距,它需要大约200mSec或更多。有人能帮帮我吗? ?
提前谢谢:)
西拉
设备:
嗨SilasValera,
请看这篇文章https://support.dialog-semiconductor.com/spi-master-better-performance
由于MT_dialog
嗨MT_dialog
谢谢链接和信息在那里:)我用了那个方法,它工作得很好!
现在我正在用这种方法测试外设,我也有I2C和GPIO端口上的设备。我的下一个问题是:在睡眠模式打开和BLE连接到智能手机(或其他应用程序)的情况下,现在没有SPI数据传输的延迟,因为处理器正在忙SPI,系统将如何表现?当中断被启用时呢?
谢谢提前
西拉瓦勒拉
嗨SilasValera,
我不明白你的问题是非常通用的,这一事实SPI没有延迟并不影响祝福,祝福您的系统的行为我认为将保持相同的有或没有SPI延迟4.8浓缩系统停滞不前没有为了让处理器执行BLE命令。当中断被启用是什么意思?
由于MT_dialog
嗨MT_dialog
谢谢你的回复。我的意思是,由于这种方法不允许延迟,系统对任何其他重要功能的响应都不会受到影响,对吗?也没有延迟服务中断?
谢谢
西拉瓦勒拉
嗨SilasValera,
SPI实现有一些延迟的事实并不意味着延迟是为了允许BLE事件发生,如果这是您所关心的。在任何情况下你必须确保SPI事务不花太多时间在订单系统安排upcomming事件,但这并不与SPI的延迟后,理论上系统的响应应该是相同的,我不该看到的东西可能会受到影响。
由于MT_dialog
嗨MT_dialog
谢谢你的回复。很高兴知道这种方法不会影响任何其他系统功能或BLE事件的响应时间。此时,我的猜测是,SPI上的任何LCD刷新/写入例程都不会超过50ms。
再次感谢您的帮助和正确的方法。:)
西拉瓦勒拉
嗨SilasValera,
要清楚的是,如果你的例程持续50毫秒,那么580和SPI接口之间的交互将花费足够长的时间,你将不得不计划下一个BLE连接事件(正如我在上一篇文章中提到的),以使BLE事件发生。您必须确保您的连接间隔(连续连接事件之间的时间)大于您的SPI交互,以便580完成SPI交互并安排下一个BLE事件。
由于MT_dialog