Python驅(qū)動(dòng)樹莓派SPI接口

目的

進(jìn)行IC測(cè)試,需要使用SPI輸入數(shù)據(jù)并采集數(shù)據(jù),考慮使用樹莓派可以直接將數(shù)據(jù)采集和數(shù)據(jù)處理結(jié)合成一體,避免易出錯(cuò)的數(shù)據(jù)采集部分(單片機(jī)或FPGA實(shí)現(xiàn))

樹莓派SPI接口

物理接口

樹莓派硬件接口

由上圖中可以看出,樹莓派的19,21,23構(gòu)成了一個(gè)SPI接口,片選信號(hào)使用GPIO控制,本次并不使用自動(dòng)的片選信號(hào)。速度方面,樹莓派的接口有以下速度可以選擇

速度
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命令進(jìn)入配置選項(xiàng)后選擇SPI接口,打開后重啟即可

Python驅(qū)動(dòng)

Python使用spidev庫驅(qū)動(dòng)SPI

啟動(dòng)并配置SPI接口

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

發(fā)送數(shù)據(jù)

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

故障排除

MOSI工作不正常

問題描述:使用邏輯分析儀測(cè)試輸出,發(fā)現(xiàn)有SCK信號(hào)和CS信號(hào),MOSI信號(hào)一直為高
解決方法:使用raspi-config關(guān)閉SPI后重啟,再打開SPI,重啟,故障排除(重啟debug大法)

參考教程

python-spidev網(wǎng)站
Controlling an SPI device with the Raspberry Pi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容