Python驱动树莓派SPI接口

目的

进行IC测试,需要使用SPI输入数据并采集数据,考虑使用树莓派可以直接将数据采集和数据处理结合成一体,避免易出错的数据采集部分(单片机或FPGA实现)

树莓派SPI接口

物理接口

《Python驱动树莓派SPI接口》 树莓派硬件接口

由上图中可以看出,树莓派的19,21,23构成了一个SPI接口,片选信号使用GPIO控制,本次并不使用自动的片选信号。速度方面,树莓派的接口有以下速度可以选择

速度
125.0 MHz125000000
62.5 MHz62500000
31.2 MHz31200000
15.6 MHz15600000
7.8 MHz7800000
3.9 MHz3900000
1953 kHz1953000
976 kHz976000
488 kHz488000
244 kHz244000
122 kHz122000
61 kHz61000
30.5 kHz30500
15.2 kHz15200
7629 Hz7629

开启SPI接口

使用sudo raspi-config命令进入配置选项后选择SPI接口,打开后重启即可

Python驱动

Python使用spidev库驱动SPI

启动并配置SPI接口

spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 15600000

发送数据

def write_pot(input):
    msb = input >> 8
    lsb = input & 0xFF
    spi.xfer([msb, lsb])

故障排除

MOSI工作不正常

问题描述:使用逻辑分析仪测试输出,发现有SCK信号和CS信号,MOSI信号一直为高
解决方法:使用raspi-config关闭SPI后重启,再打开SPI,重启,故障排除(重启debug大法)

参考教程

python-spidev网站
Controlling an SPI device with the Raspberry Pi

    原文作者:月见樽
    原文地址: https://www.jianshu.com/p/f4ad9f5e2e84
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞