【问题标题】:RaspberryPi and peripheral SPI interface using pythonRaspberryPi 和使用 python 的外围 SPI 接口
【发布时间】:2021-03-01 18:50:12
【问题描述】:

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

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

我的问题是:考虑到我将使用 1MHz 左右的 sclk 频率,我将函数线程化而不是使它们真正并行(使用多处理)是否存在问题?

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

【问题讨论】:

    标签: python raspberry-pi spi


    【解决方案1】:

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

    【讨论】:

    • 谢谢!通过阅读您的回答,我意识到这是一个问题,这完全是由于我的设计不太聪明啊哈哈。我没有考虑到 sclk 不需要正好是 1MHz 的事实。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2019-01-12
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多