【Raspberry Pi Pico w】MicroPython SPIテスト:MCP3002(ADコンバータ)

ESP32でやった内容をMicroPythonでやってみました。

RaspberryPI Pico W MCP3002
SPI通信のGPIOピン  
・SCK:18 CLK
・MISO:16 Dout
・MOSI:19 Din
・CS:17 CS/SHDN
・3.3V(OUT) VDD
・GND VSS
〜
from machine import SPI, Pin
import time

Read_buf=bytearray(2)
Write_buf=bytearray(2)
#
# SPIの設定
#
spi = SPI( 0,
           baudrate = 100000,
           sck  = Pin(18),
           mosi = Pin(19),
           miso = Pin(16))
#
# チップセレクト(スレーブセレクト)用の出力ピンを設定。
cs = Pin(17, mode=Pin.OUT, value=1)

while True:
    cs(0)# ペリフェラルを選択
    Write_buf[0]=0x68
    Write_buf[1]=0x00
    spi.write_readinto(Write_buf,Read_buf)
    cs(1)#ペリフェラルを選択解除。
    # 上位ビットと下位ビットを連結し、10ビット分取り出す
    ulCh0 = (( Read_buf[0] << 8 ) + Read_buf[1] ) & 0x03ff
    value =  ulCh0 * 3.3/1023.0
    print(value,"v")
    time.sleep(1)
〜

【実行結果】

MicroPython用のSPIライブラリ

上記サイトを見て、SPI通信の使い方を参考にしました。

感想:pythonは型の指定などがないので、バイナリ使う時は、不便な感じですね。