您好!
我在SPI上运行一个小型TFT LCD显示器,DA14580-SPI时钟运行@8MHz,我正在尝试通过SPI向显示器发送数据。我观察到,在连续写入SPI端口的流中,通过SPI发送的两个8位数据之间仍然有4.8uSec的间隔。8位的实际数据大约需要1sec,但两个数据字节之间的间隔是4.8uSec,因此完整的数据传输比预期的长5倍(我附上了显示示波器图像的图像)
我怎样才能缩小这个差距?此时代码中没有其他例程,SPI中断被禁用。我需要尽快运行这个数据传输,我估计大约是40秒,但有了这个间隔,大约需要200秒或更多。有人能帮我吗。。?
提前感谢:)
塞拉斯
设备:
你好,SilasValera,
请看这个帖子https://support.dialog-semiconductor.com/spi-master-better-performance
谢谢你的对话
Hi MT\u对话框
感谢链接和那里的信息:)我用了那种方法,效果非常好!
目前,我正在用这种方法测试SPI的外围设备,我还在I2C和GPIO端口上安装了设备。我的下一个问题是:既然SPI上的处理器很忙,所以SPI数据传输没有延迟,那么在睡眠模式打开并与智能手机(或其他应用程序)建立BLE连接的情况下,系统最终将如何运行?当中断被启用时?
提前谢谢
西拉斯瓦莱拉
你好,SilasValera,
我不明白你的意思,这个问题是非常普遍的,事实上,SPI没有延迟并不影响BLE,BLE的行为,你的系统,我想这将保持不变,无论有没有SPI延迟,4.8usec,你的系统暂停是不存在的处理器执行BLE命令。当中断被启用时,你的意思是什么?
谢谢你的对话
Hi MT\u对话框
谢谢你的回复。我的意思是,由于这种方法不允许延迟,系统对任何其他重要功能的响应都不会受到影响,对吗?也没有延迟服务中断?
谢谢
西拉斯瓦莱拉
你好,SilasValera,
SPI实现有一些延迟的事实并不意味着延迟是为了允许BLE事件发生而存在的,如果这是您关心的问题的话。在任何情况下,您都必须确保SPI事务不会花费太多时间,以便系统安排上传事件,但这与SPI延迟无关,理论上您的系统的响应应该保持不变,我看不到任何可能受到影响的内容。
谢谢你的对话
Hi MT\u对话框
谢谢你的回复。很高兴了解到这种方法不会影响任何其他系统功能或对可编程事件的响应时间。在这个时候,我的猜测是,任何LCD刷新/写入时间超过SPI预计不会超过50ms。
再次感谢您的帮助和正确的方法……)
西拉斯瓦莱拉
你好,SilasValera,
要清楚的是,如果您的例程持续50毫秒,那么580和SPI接口之间的交互将需要足够长的时间,您将不得不安排下一个BLE连接事件(如我在上一篇文章中提到的)以便发生BLE事件。您必须确保您的连接间隔(连续连接事件之间的时间间隔)大于SPI交互,以便580完成SPI交互并安排下一个BLE事件。
谢谢你的对话