SPIDevice selects an active-high device as soon as it is created
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 73/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- embedded-iot
Direzione di ricerca
Leggi shared-bindings/adafruit_bus_device/spi_device/SPIDevice.c, concentrandoti sulla chiamata a switch_to_output e su come usa cs_active_value. Riproduci l’esempio fornito e verifica che la costruzione lasci non selezionato un dispositivo attivo a livello alto, mentre una transazione lo selezioni e l’uscita dalla transazione lo deselezioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
SPIDevice() sets the chip select pin high as soon as it is created.
That is wrong for a device with cs_active_value=True: it selects the device before any transaction.
The Python BusDevice library sets the pin to not cs_active_value instead.
import board, busio, digitalio
from adafruit_bus_device.spi_device import SPIDevice
spi = busio.SPI(board.GP18, MOSI=board.GP19, MISO=board.GP16)
cs = digitalio.DigitalInOut(board.GP17)
print("fresh", cs.direction, cs.value)
d = SPIDevice(spi, cs, cs_active_value=True)
print("constructed", cs.direction, cs.value)
with d:
print("in transaction", cs.value)
print("after transaction", cs.value)
fresh digitalio.Direction.INPUT False
constructed digitalio.Direction.OUTPUT True
in transaction True
after transaction False
constructed should be False.
| Board | Raspberry Pi Pico (RP2040) |
| Version | 11.0.0-alpha.3-7-g95f9ddb95b, also seen on the desktop port |
| Cause | shared-bindings/adafruit_bus_device/spi_device/SPIDevice.c calls switch_to_output(..., true, ...) regardless of cs_active_value |
| Also on | 10.3.x (same line) |
Found with Claude while testing #11865; I ran the code above on the Pico myself.
- Lingua principale
- C
- Stelle
- 4.6k
- Fork
- 1.4k
- Merge medio
- 1g 1h
- PR unite (30g)
- 208
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di adafruit/circuitpython
-
documentation rp2
Difficoltà 1/5 1-3 ore Idoneità per principianti 67/100
adafruit/circuitpython#11779 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
documentation enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
adafruit/circuitpython#11689 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement network
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
adafruit/circuitpython#11845 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
adafruit/circuitpython#11834 ·
I maintainer di solito rispondono entro 1 giorno
-
audio bug crash esp32-s3 needs retest
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
adafruit/circuitpython#11822 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di adafruit/circuitpython
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
gnif/LookingGlass#1352 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
bazel-contrib/rules_go#4784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Bug: settings::init() silently continues when neutralino.config.json is missingForse già presa @mishradwaterlaw l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
neutralinojs/neutralinojs#1882 ·
I maintainer di solito rispondono entro 1 giorno