Python驱动树莓派SPI接口

目的

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

树莓派SPI接口

物理接口

树莓派硬件接口

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

速度
125.0 MHz 125000000
62.5 MHz 62500000
31.2 MHz 31200000
15.6 MHz 15600000
7.8 MHz 7800000
3.9 MHz 3900000
1953 kHz 1953000
976 kHz 976000
488 kHz 488000
244 kHz 244000
122 kHz 122000
61 kHz 61000
30.5 kHz 30500
15.2 kHz 15200
7629 Hz 7629

开启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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容