目的
進(jìn)行IC測試,需要使用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工作不正常
問題描述:使用邏輯分析儀測試輸出,發(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