RaspberryPi 和外围 SPI 接口使用 python

RaspberryPi and peripheral SPI interface using python

这是我的第一个涉及并行编程的项目,如果我使用的术语不正确,请原谅我。

我想使用 SPI 串行接口将 RaspberryPi 4 与外围板连接起来。为了完全理解串行通信,我想在不使用外部库的情况下编写 SPI 通信代码。 该程序的目的是向外围设备发送数据并从中读取数据,同时“实时”绘制接收到的数据。 为了轻松管理通信,我需要 运行 一个将生成 sclk 和芯片 select 信号的线程,以及另一个将 read/write 数据并绘制它们的线程。

我的问题是:考虑到我将使用大约 1MHz 的 sclk 频率,我对函数进行线程处理而不是使它们真正并行(使用多处理)是否有问题?

我会说 Rpi4 的时钟频率比 sclk 频率高得多,所以由于“假”并行性导致的时间延迟不是问题(考虑到所有线程都是由一些说明),但我想知道是否还有其他因素需要考虑。谢谢!

您绝对想要单独的线程生成时钟和数据。这是一个串行协议,所以这两件事必须是同步的。 1MHz 的数字只是一个最大限制。时钟不必精确,也不必有规律。作为主人,您可以完全控制它。一切都基于过渡。按照这个顺序,您设置输出引脚、断言时钟、读取输入引脚、取消断言时钟、冲洗和重复。一个功能,简单易行。如果该过程花费的时间少于一微秒,您可能需要添加一些停顿。