RaspberryでSPIする必要がでてきてその方法を調べたのでメモ。
しかもPythonじゃないといけない。
python好きじゃないけど
pi@raspberrypi:~ $ cat /proc/version Linux version 4.14.66-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1137 SMP Fri Aug 24 16:36:53 BST 2018
raspi-configとかそんなコマンドを打てばSPIを有効にできたりした気がする。
または,/boot/config.txt
に以下追記
#!/usr/bin/env python import time import sys import spidev import RPi.GPIO as GPIO spi = spidev.SpiDev() spi.open(0,0) spi.no_cs = True spi.max_speed_hz = SS_list = [4,18,17,8] GPIO.setmode(GPIO.BCM) GPIO.setup(SS_list, GPIO.OUT) if __name__ == '__main__': try: while True: GPIO.output(4, GPIO.LOW) spi.xfer2([0x55,xAA]) GPIO.output(4, GPIO.HIGH) print("hello") time.sleep(1) except KeyboardInterrupt: GPIO.cleanup(); spi.close() sys.exit(0)
テストコード一秒ごとにSPI通信する。
Slave Selectを複数使いたかったのでGPIO moduleもインポートしている。
CE0をマニュアルで操作したかった。
www.raspberrypi.org
SPI_CPOL - Clock polarity SPI_CPHA - Clock phase SPI_CS_HIGH - Chip Select active high SPI_NO_CS - 1 device per bus, no Chip Select SPI_3WIRE - Bidirectional mode, data in and out pin shared
SPI_NO_CSを指定すればいいらしい
のでspidevでそのように設定している。
Raspberry Pi 3 Model B+ スターターセット BASIC
- 出版社/メーカー: RASPBERRY-PI
- メディア: エレクトロニクス
- この商品を含むブログを見る