SPI连续传输 - 快速数据传输

8个帖子/ 0新
最后一篇
silasvalera
离线
最后一次露面:4年3个月前
加入:2016-06-12 21:55
SPI连续传输 - 快速数据传输

你好

我正在使用DA14580 - SPI时钟运行的SPI上的小型TFT LCD显示器@ 8MHz,我试图在SPI上发送数据以显示。我观察到,在持续写入SPI端口的流中,在通过SPI上发送的两个8位数据之间仍有4.8USEC的差距。8位的实际数据约为1USEC,但两个数据字节之间的间隙为4.8 usec,因此完整的数据传输比预期的5次(我已附加显示示波器图像的图像)

如何减少这个差距?此时代码中没有其他例程,禁用SPI中断。我需要尽快运行这个数据trasnfer,我的估计是大约40毫秒,但有了这个差距,它需要大约200毫秒或更多。有人可以帮我吗?

提前致谢:)
撒拉斯

附件:
设备:
mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨silasvalera,

嗨silasvalera,

请看看这篇文章https://support.dialog-semicondiondiondumenton.com/spi-master-better-performance.

谢谢mt_dialog.

silasvalera
离线
最后一次露面:4年3个月前
加入:2016-06-12 21:55
嗨mt_dialog.

嗨mt_dialog.

谢谢你的链接和信息:)我用这种方法,它完全良好!

目前我正在使用这种方法测试外围设备,同时拥有I2C和GPIO端口上的设备。我的下一个问题是:系统如何使用睡眠模式和与智能手机(或其他应用程序)的BLE连接时如何表现如何,因为SPI数据传输没有延迟,因为处理器在SPI上忙于SPI?还有当中断启用了吗?

提前致谢
Silas Valera.

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨silasvalera,

嗨silasvalera,

我没有得到你的观点,问题是非常通用的,SPI没有延迟的事实不会影响BLE,我的系统的BLE行为我认为将与SPI延迟,4.8USEC保持不变您的系统停滞不前,以便处理器执行BLE命令。也是在启用中断时的意思?

谢谢mt_dialog.

silasvalera
离线
最后一次露面:4年3个月前
加入:2016-06-12 21:55
嗨mt_dialog.

嗨mt_dialog.
感谢您的回复。我的意思是,由于这种方法不允许延迟,系统对任何其他重要功能的响应不会受到影响,正确?也没有延迟服务中断?

谢谢
Silas Valera.

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨silasvalera,

嗨silasvalera,

SPI实现有一些延迟并不意味着在那里延迟,以便允许出现的事件发生,如果这是您的担忧。在任何情况下,您都必须确保SPI交易不会花费太多时间,以便系统安排越来越多的事件,但这与SPI延迟不一定,理论上您的系统应留下的响应应该保持同样,我没有看到任何可能受到影响的东西。

谢谢mt_dialog.

silasvalera
离线
最后一次露面:4年3个月前
加入:2016-06-12 21:55
嗨mt_dialog.

嗨mt_dialog.

感谢您的回复。很高兴地了解这种方法不会影响任何其他系统功能或响应时间到BLE事件。此时我的猜测是SPI上的任何LCD刷新/写入Toutine不会超过50ms。

再次感谢您的帮助和正确的方法.. :)

Silas Valera.

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨silasvalera,

嗨silasvalera,

只是为了清楚,如果您的例程持续50 ms,那么580和SPI接口之间的交互需要足够长,您必须计划下一个BLE连接事件(如我之前的帖子中所述)出现的情况发生。您必须确保您的连接间隔(成功连接事件之间的时间)超过SPI交互,以便为580完成SPI交互并计划下一个BLE事件。

谢谢mt_dialog.