你好
我正在使用DA14580 - SPI时钟运行的SPI上的小型TFT LCD显示器@ 8MHz,我试图在SPI上发送数据以显示。我观察到,在持续写入SPI端口的流中,在通过SPI上发送的两个8位数据之间仍有4.8USEC的差距。8位的实际数据约为1USEC,但两个数据字节之间的间隙为4.8 usec,因此完整的数据传输比预期的5次(我已附加显示示波器图像的图像)
如何减少这个差距?此时代码中没有其他例程,禁用SPI中断。我需要尽快运行这个数据trasnfer,我的估计是大约40毫秒,但有了这个差距,它需要大约200毫秒或更多。有人可以帮我吗?
提前致谢:)
撒拉斯
设备:
嗨silasvalera,
请看看这篇文章https://support.dialog-semicondiondiondumenton.com/spi-master-better-performance.
谢谢mt_dialog.
嗨mt_dialog.
谢谢你的链接和信息:)我用这种方法,它完全良好!
目前我正在使用这种方法测试外围设备,同时拥有I2C和GPIO端口上的设备。我的下一个问题是:系统如何使用睡眠模式和与智能手机(或其他应用程序)的BLE连接时如何表现如何,因为SPI数据传输没有延迟,因为处理器在SPI上忙于SPI?还有当中断启用了吗?
提前致谢
Silas Valera.
嗨silasvalera,
我没有得到你的观点,问题是非常通用的,SPI没有延迟的事实不会影响BLE,我的系统的BLE行为我认为将与SPI延迟,4.8USEC保持不变您的系统停滞不前,以便处理器执行BLE命令。也是在启用中断时的意思?
谢谢mt_dialog.
嗨mt_dialog.
感谢您的回复。我的意思是,由于这种方法不允许延迟,系统对任何其他重要功能的响应不会受到影响,正确?也没有延迟服务中断?
谢谢
Silas Valera.
嗨silasvalera,
SPI实现有一些延迟并不意味着在那里延迟,以便允许出现的事件发生,如果这是您的担忧。在任何情况下,您都必须确保SPI交易不会花费太多时间,以便系统安排越来越多的事件,但这与SPI延迟不一定,理论上您的系统应留下的响应应该保持同样,我没有看到任何可能受到影响的东西。
谢谢mt_dialog.
嗨mt_dialog.
感谢您的回复。很高兴地了解这种方法不会影响任何其他系统功能或响应时间到BLE事件。此时我的猜测是SPI上的任何LCD刷新/写入Toutine不会超过50ms。
再次感谢您的帮助和正确的方法.. :)
Silas Valera.
嗨silasvalera,
只是为了清楚,如果您的例程持续50 ms,那么580和SPI接口之间的交互需要足够长,您必须计划下一个BLE连接事件(如我之前的帖子中所述)出现的情况发生。您必须确保您的连接间隔(成功连接事件之间的时间)超过SPI交互,以便为580完成SPI交互并计划下一个BLE事件。
谢谢mt_dialog.